我一直在寻找 Javascript 的解析器生成器,并找到了一些(即 PEG.js)。
不过,尚不清楚这些与 Google Closure Compiler 之类的东西配合得如何。
例如,它看起来像在 PEG.js 中,我可以给它代码作为规则的一部分执行,但是我如何将函数(可能被编译器重命名)绑定到规则?
此外,我不清楚哪些解析器支持传入符号表。例如,我想定义一个接受像“A 或 B”这样的表达式的语法,其中“A”和“B”的值是在运行时定义的,例如,作为用户正在查看的记录的属性。
PEG.js 当然不是必需的,它只是似乎出现在搜索结果中并且看起来可用的唯一解析器生成器。