mirror of
https://github.com/fooflington/selfdefined.git
synced 2025-06-10 21:01:41 +00:00
update
This commit is contained in:
30
node_modules/token-stream/index.js
generated
vendored
Normal file
30
node_modules/token-stream/index.js
generated
vendored
Normal file
@ -0,0 +1,30 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = TokenStream;
|
||||
function TokenStream(tokens) {
|
||||
if (!Array.isArray(tokens)) {
|
||||
throw new TypeError('tokens must be passed to TokenStream as an array.');
|
||||
}
|
||||
this._tokens = tokens;
|
||||
}
|
||||
TokenStream.prototype.lookahead = function (index) {
|
||||
if (this._tokens.length <= index) {
|
||||
throw new Error('Cannot read past the end of a stream');
|
||||
}
|
||||
return this._tokens[index];
|
||||
};
|
||||
TokenStream.prototype.peek = function () {
|
||||
if (this._tokens.length === 0) {
|
||||
throw new Error('Cannot read past the end of a stream');
|
||||
}
|
||||
return this._tokens[0];
|
||||
};
|
||||
TokenStream.prototype.advance = function () {
|
||||
if (this._tokens.length === 0) {
|
||||
throw new Error('Cannot read past the end of a stream');
|
||||
}
|
||||
return this._tokens.shift();
|
||||
};
|
||||
TokenStream.prototype.defer = function (token) {
|
||||
this._tokens.unshift(token);
|
||||
};
|
Reference in New Issue
Block a user