esther-medina-quintero-parser-nearley
Version:
28 lines (26 loc) • 1.22 kB
JavaScript
// 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;
}
})();