Javascript 解析器生成器 [已关闭]

问题描述 投票:0回答:2

我见过一些 javascript 解析器生成器:

  1. 吉森(http://zaach.github.com/jison/

  2. PEG.js (http://pegjs.majda.cz/)

  3. ANTLR (http://www.antlr.org/)

  4. JS/CC (http://jscc.jmksf.com/)

有人有相关经验吗?

有什么优点和缺点?这些库准备好用于生产了吗?还有性能?

编辑
我想在 javascript 中解析并运行不同的语言

javascript parsing compiler-construction
2个回答
11
投票

我最近编写了一个名为 parsinator.js 的解析器组合器库,它支持状态和调试功能:

github.com/fresheneesz/parsinator.js

旧答案:

PEG.js 非常容易使用。它的“在线试用”功能对于快速学习如何使用系统非常有用。我目前正在 Rhino 环境中使用它来解析我正在编写的语言。我不是 Rhino 的忠实粉丝,但 PEG.js 确实不错。


2
投票

我不确定您是否想要一个能够生成 JavaScript 编写的解析器的解析器生成器,或者一个能够使用 JavaScript 语法来构建 JavaScript 解析器的解析器生成器。

反正我只用过ANTLR和JavaCC。 ANTLR 允许您用不同的语言(C、C#、Java)生成解析器,并且在 GUI 树状形式上检查上下文无关语法表达式非常酷。但从未找到过它的 JavaScript 语法。

JavaCC 有一个缺点。仅生成 Java 中的解析器。另一方面,我发现更容易学习并从构建解析器的部分迈向(我发现这是最好的部分)围绕它构建任何你想要的东西,例如代码翻译器、改写器等。

© www.soinside.com 2019 - 2024. All rights reserved.