@lahmatiy/jison
Version:
A parser generator with Bison's API
22 lines (15 loc) • 627 B
JavaScript
const { generateModuleBody, generateModule } = require('./generate');
const { processGrammar } = require('./process-grammar');
function Lexer(dict, tokens) {
const grammar = processGrammar(dict, tokens);
const source = generateModuleBody(grammar);
const lexer = Function('return' + source)();
lexer.generateModule = format => generateModule(grammar, format);
return lexer;
}
// generate lexer source from a grammar
Lexer.generateModule = function generate(dict, tokens, format) {
const grammar = processGrammar(dict, tokens);
return generateModule(grammar, format);
};
module.exports = Lexer;