A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pugjs/token-stream below:

pugjs/token-stream: Take an array of token and produce a more useful API to give to a parser

Take an array of token and produce a more useful API to give to a parser.

var TokenStream = require('token-stream');

var stream = new TokenStream([
  'a',
  'b',
  'c',
  'd'
]);
assert(stream.peek() === 'a');
assert(stream.lookahead(0) == 'a');
assert(stream.lookahead(1) == 'b');

assert(stream.advance() === 'a');
assert(stream.peek() === 'b');
assert(stream.lookahead(0) == 'b');
assert(stream.lookahead(1) == 'c');

stream.defer('z');
assert(stream.peek() === 'z');
assert(stream.lookahead(0) == 'z');
assert(stream.lookahead(1) == 'b');
assert(stream.advance() === 'z');
assert(stream.advance() === 'b');
assert(stream.advance() === 'c');
assert(stream.advance() === 'd');

// an error is thrown if you try and advance beyond the end of the stream
assert.throws(function () {
  stream.advance();
});

Gets and returns the next item in the stream without advancing the stream's position.

Returns the next item in the stream and advances the stream by one item.

Put a token on the start of the stream (useful if you need to back track after calling advance).

Return the item at index position from the start of the stream, but don't advance the stream. stream.lookahead(0) is equivalent to stream.peek().

MIT


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4