当不绑定到仅限 Java 时,您可以使用另一种语言的 PEG 解析器或 Rebol(它具有与 PEG 等效的解析“方言”)——或者返回 WAY 以获取 Icon 或 Unicon 甚至现在在 code.google 上的 Object Icon .com/p/objecticon
当我意识到 MIT Curl 网络内容语言 (www.curl.com) 为用户选择了正则表达式时,这是一个遗憾的时刻,尽管 Curl 具有宏并提供对 AST 的访问。
一般主题:解析器表达式语法 (PEG) 和 Packrat 解析。
Perl 的使用给我们留下了 PCRE,所以我们能做些什么,但在不需要时避免它(有 antlr 和 bison ......毫无疑问,它们也有适合它们的地方)
注意:Rebol、Icon 和 Curl 是基于表达式的语言(Icon 具有有限的回溯)。
其他的方式选项包括 Oz 和 Mercury (后者可以输出 erlang )
我没有使用 pyPEG,因为我仅限于 Python 2.6.6;不再支持 python 解析 Lepl - 但将为 2.6 安装
Python 中的解析选项包括http://theory.stanford.edu/~amitp/yapps/上的 YAPPS和其他各种;注意:pyparsing 无法在某些 python 环境中安装
对于 Scala/Java,有这个 PEG 项目:https ://github.com/sirthias/parboiled/wiki
您可以根据http://piumarta.com/software/peg/找到一个 Java 等同于 peg and leg
CiteSeer 有关于 Packrat 解析和 Mercury 的 Ralph Becket 文章(谷歌 PEG 解析水星网站:psu.edu)
AdventuresInMercury 博客中还有一系列 3 篇博文。