UNPKG

@stackpress/idea-parser

Version:

Parses ideas to AST and readable JSON.

30 lines (29 loc) 706 B
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); } } ;