你建议用哪个Ruby解析器来解析Ruby源代码?

3
我正在寻找的解析器应该具备以下特点:
  • 友好地支持 Ruby 解析
  • 通过规则设计优雅美观
  • 提供用户友好的解析错误提示
  • 用户文档应该比计算器示例更加丰富
  • 更新:允许在语法中省略可选空格
快速解析不是重要的特性。
我尝试过 Citrus,但缺乏文档并需要在规则中指定每个空格使我望而却步。

你需要支持哪个版本的 Ruby 语法? - Phrogz
如果你愿意花时间学习,Ragel 可能是你最好的选择。 - rmk
Ruby的版本对我的项目并不是很重要,因为只有语言的一个子集将被实现 - 例如1.8或1.9。谢谢,rmk。 - Pavel Vlasov
1个回答

4
  • Treetop:Treetop是一个解析器生成器,用于创建解析Ruby语言的应用程序。
  • Ragel:Ragel是一种编译器构建工具,用于生成高效的解析器和词法分析器。

或者,如果您想解析Ruby本身:

parse_tree 和 ruby_parser

编辑:

我刚刚看到您关于需要项目的Ruby子集的最后一条评论,在这种情况下,我还建议您查看tinyrb


然而,由于需要在每个元素之后指定可选的空格,因此编写treetop/citrus语法很困难。Ragel仅建议在官方网站上进行词法分析工作;但我会考虑使用它。 - Pavel Vlasov
谢谢Michael!Treetop是一个相当快速的工具;我需要手动指定每个空格,但这并不是很痛苦。 - Pavel Vlasov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接