我最近是 Ruby 中 s-exp 表达式的粉丝。例如,我发现了 Sexpistol 解析器。
您是否在使用其他专用工具(模式等)?
你可以看看 Lispy:https ://github.com/ryan-allen/lispy
它不是完全的 s 表达式,但在概念上相似..
我一直在为 Ruby 中的 s 表达式滚动我自己的处理程序,但我喜欢它们相对容易被操纵。
如果您还没有看过 Ruby 的内置 Ripper 库,那么值得一试:
> require 'ripper'
> Ripper.sexp("1 + 1")
=> [:program, [[:binary, [:@int, "1", [1, 0]], :+, [:@int, "1", [1, 4]]]]]
最快的可用库是sfsexp(小型、快速的 s 表达式库)。它是用 C 语言编写的,带有 Ruby 绑定,您可以在API Doc中看到这些绑定。