| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 | 'use strict';var assert = require('assert');var TokenStream = require('../');assert.throws(function () {  new TokenStream('foo,bar');});var stream = new TokenStream([  'a',  'b',  'c',  'd']);assert.throws(function () {  stream.lookahead(9);});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');assert.throws(function () {  stream.peek();});assert.throws(function () {  stream.lookahead(0);});assert.throws(function () {  stream.lookahead(1);});assert.throws(function () {  stream.advance();});
 |