@stackpress/idea-parser
Version:
Parses ideas to AST and readable JSON.
30 lines (29 loc) • 706 B
JavaScript
import Lexer from '../Lexer.js';
import definitions from '../definitions.js';
export default class AbstractTree {
static definitions(lexer) {
Object.keys(definitions).forEach((key) => {
lexer.define(key, definitions[key]);
});
return lexer;
}
_lexer;
constructor(lexer) {
this._lexer = lexer || this.constructor.definitions(new Lexer());
}
noncode() {
while (this._lexer.optional(['whitespace', 'comment', 'note']))
;
}
dotry(callback) {
do {
try {
callback();
}
catch (error) {
break;
}
} while (true);
}
}
;