@parser-generator/grammar-interpreter
Version:
A Parser Generator that supports LL,SLR,LR1,LALR
26 lines (25 loc) • 1.01 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const interp_1 = require("../interp");
const core_1 = require("@parser-generator/core");
describe(`Test`, () => {
let g = `
#TOKEN_PROTOTYPES
STRING,NUMBER,BOOLEAN
#GRAMMAR
S -> json;
factor -> array | obj | STRING | NUMBER | BOOLEAN <% (e)=> new FactorNode(e) %>;
entry -> STRING ':' factor <% (e)=>new EntryNode(e) %>;
entries -> entry ',' entries | entry | entry ',' <% (e)=>new EntriesNode(e) %>;
obj -> '{' entries '}' | '{' entries '}' <% (e)=>new ObjectNode(e) %>;
items -> factor ',' items | factor | factor ',' <% (e)=>new ItemsNode(e) %>;
array -> '[' items ']' | '[' items ']' <% (e)=>new ArrayNode(e) %>;
json -> factor <% (e)=>new JSONNode(e) %>;
`;
let p = interp_1.parse(new interp_1.GrammarLexer(g));
let v = new interp_1.EvalVisitor({ parser: "LR1" });
p.accpet(v);
let grammar = v.grammar;
core_1.getLR1ParsingTable(grammar);
});
//# sourceMappingURL=intergration.test.js.map