2010-06-15 76 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

相關問題