UNPKG

esther-medina-quintero-parser-nearley

Version:
28 lines (26 loc) 1.22 kB
// Generated automatically by nearley, version 2.20.1 // http://github.com/Hardmath123/nearley (function () { function id(x) { return x[0]; } const { lexer } = require('./src/lex.js'); const { Tokens } = require('./src/lex.js'); /* let lexer = makeLexer(tokens); */ lexer.ignore("ws", "comment"); var grammar = { Lexer: lexer, ParserRules: [ {"name": "main", "symbols": ["e"], "postprocess": id}, {"name": "e", "symbols": ["e", (lexer.has("plus") ? {type: "plus"} : plus), "e"], "postprocess": ([f,_,s]) => { return f+s; }}, {"name": "e", "symbols": ["e", (lexer.has("minus") ? {type: "minus"} : minus), "e"], "postprocess": ([f,_,s]) => { return f-s; }}, {"name": "e", "symbols": ["e", (lexer.has("mul") ? {type: "mul"} : mul), "e"], "postprocess": ([f,_,s]) => { return f*s; }}, {"name": "e", "symbols": ["e", (lexer.has("div") ? {type: "div"} : div), "e"], "postprocess": ([f,_,s]) => { return f/s; }}, {"name": "e", "symbols": [(lexer.has("number") ? {type: "number"} : number)], "postprocess": id} ] , ParserStart: "main" } if (typeof module !== 'undefined'&& typeof module.exports !== 'undefined') { module.exports = grammar; } else { window.grammar = grammar; } })();