2010-06-15 52 views
6

我已经使用antlr和javacc/freecc一段时间了。 现在我需要用antlr语法编写一堆解析器,但这些解析器需要用ruby语言编写。哪个是ANTLR在ruby中创建解析器的最佳对应方法?

我使用Google搜索,但没有找到。有没有任何ruby语法分析器生成器需要antlr语法并创建解析器?如果有很多,你认为哪一个最好?

TIA 保罗

回答

1

您也可以使用ANTLR for Java或C生成解析器,并使用JRuby或FFI从Ruby程序中调用它。

这应该也会给你提升性能,如果你有很多解析输入,这可能是一个很大的优势。

+0

ahe,这正是我选择做的。我启动了一个关于解析源代码的所有东西的新项目(http://github.com/thesp0nge/mirage)。我会用antlr写C语言,然后从Ruby中调用它。 对于任何有兴趣的人来说,这是对Owasp Orizon项目的一个重要改写,我正在写一个静态源代码分析器(http://github.com/thesp0nge/owasp-orizo​​n/) – 2010-06-17 07:17:18

3
+1

对我感到羞耻。我没有先检查适当的地方......宝石社区。非常感谢你:-) – 2010-06-15 08:20:46

+1

请注意,ANTLR 3.4附带的Ruby目标非常糟糕。如果这个宝石有任何问题,GitHub上的项目的头版修正似乎正常工作:https://github.com/ohboyohboyohboy/antlr3 – 2012-10-17 05:10:21

7
  1. 你可能会逃脱容易使用JRuby守信你的ANTLR解析器在java中。
  2. 如果PEGs已经足够您的工作,treetop和较新的citrus是rubyists使用的常用工具。
  3. 我在研究项目时挖的其他解析器有:peggy,Kanocc,Racc

对于我的项目,我选择了树梢(柑橘还没有诞生)。

+0

非常感谢您的建议:-) – 2010-06-17 07:17:40

+2

新酷儿是[Parslet](http://kschiess.github.com/parslet/index.html) – clyfe 2012-01-30 20:51:04

相关问题