如何在Ruby中使用S-expression构建AST?

时间:2011-12-16 08:49:44

标签: ruby abstract-syntax-tree s-expression

我不知道如何构建S-exp。 我想这样做,因为我需要为我的语言建立AST。 一开始我使用RubyParser将其解析为sexp然后代码gen。 但我认为它必须是ruby的子集。我无法定义我想要的语言。 现在我需要为我的语言实现解析器 所以任何人都可以推荐任何为S-expression构建AST的ruby工具?

谢谢!

3 个答案:

答案 0 :(得分:1)

从您的问题中不太清楚您需要什么,但简单的Google搜索会提供一些有趣的链接来检查。也许在检查这些链接后,如果它们不是您问题的答案,您可以编辑问题并使其更加精确和具体。

http://thingsaaronmade.com/blog/writing-an-s-expression-parser-in-ruby.html https://github.com/aarongough/sexpistol

答案 1 :(得分:1)

您可以在http://github.com/bendiken/sxp-ruby尝试sxp-ruby gem。我将它用于SPARQL S-Expressions(SSE)和类似的方法来管理Ruby中的抽象语法树。

答案 2 :(得分:0)

也许你可以看看这个名为Astrapi的宝石。

这只是一个实验:

  • 在" mm"中描述您的语言元素(概念)。文件(抽象语法)
  • 在此档案上运行astrapi
  • astrapi生成一个解析器,它能够用你在s-expression中表达的输入源填充你的AST(概念的具体语法)。

我已经提供了适度的文档here