2011-06-02 58 views
35

我已经看到了一些JavaScript解析器生成:JavaScript分析器发电机

  1. Jison(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

+6

此问题不应该被视为“不具有建设性”。询问模块和编程工具的利弊绝不是主观的。 – 2014-06-08 05:36:32

+0

我同意这不应该被标记为“不具有建设性”。例如,JavaScript Parser生成器的性能可以使用[benchmark](http://sap.github.io/chevrotain/performance/)进行度量,基准不是主观的... – bd82 2017-04-28 10:52:06

回答

2

运行不同的语言我不知道,如果你想有一个解析器生成,将吐出一个JavaScript写的分析器或将使用的解析器生成用于构建JavaScript解析器的JavaScript语法。

无论如何,我只使用ANTLR和JavaCC。 ANTLR允许你用不同的语言(C,C#,Java)生成你的解析器,它很酷地检查你的上下文无关语法表达式在他们的GUI树状表单上。尽管如此,从来没有为它找到JavaScript语法。

JavaCC有一个缺点。仅在Java中生成解析器。另一方面,我发现学习起来更容易,并且从构建解析器的部分开始 - 我发现它是最好的部分 - 围绕它创建任何你想要的东西,比如代码翻译器,修改器等等。

+0

我想解析并运行一个不同的javascript中的语言。 – Atomble 2011-06-03 02:59:47

+0

@Atomble Jison有一个在线演示,所以它很容易开始使用它:http://zaach.github.io/jison/try/ – 2013-12-05 01:35:51

+0

JavaCC可以与GWT一起使用来生成基于JavaScript的解析器,以下博客:http://consoliii.blogspot.co.uk/2014/04/creating-gwt-compatible-parser-using.html – Chris 2014-04-17 17:27:53

9

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