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();
- });
|