function Stream(tokens) {
    /** @type {!Array.<number>} */
    this.tokens = [].slice.call(tokens);
    // Reversed as push/pop is more efficient than shift/unshift.
    this.tokens.reverse();
  }
A stream represents an ordered sequence of tokens.

@constructor
@param {!(Array.<number>|Uint8Array)} tokens Array of tokens that provide
the stream.