编写解析器(用于标记语言):理论与实践

Isa*_*aac 14 parsing clojure

我想为像Markdown这样的标记语言编写一个惯用的解析器.我的版本会略有不同,但我认为在Clojure中至少需要一些这样的东西,而且我想加入它.

我不想使用一堆乱七八糟的RegExes(虽然我意识到可能需要一些),而且我想要制作既强大又适用于Ciojure的东西.

我已经开始了一些不同的尝试(主要是在纸面上),但我对它们非常满意,因为我觉得我只是即兴创作.那没关系,但在过去的一两个月里,我已经用Clojure的语言进行了大量的探索,并希望至少部分地遵循巨人的路径.

我想要一些指示,建议或资源(来自O'Reilly的书很棒 - 爱我一些电子书 - 但亚马逊或其他地方也很棒).无论你能提供什么.

编辑 Brian Carper有一篇关于使用Clojure的ANTLR的有趣帖子.

还有clojure-pgfnparse,它们是Clojure解析器生成器.fnparse甚至看起来它有一些像样的文档.

还在寻找资源等!我以为我会用自己的一些调查结果来更新这些内容.

Ste*_*per 6

我能想到的最好的是Terrence Parr--领导ANTLR解析器生成器的人 - 编写了一个记录在这里的标记语言.无论如何,那里有源代码可供查看.


Ale*_*Ott 5

还有clj-peg项目,它允许指定用于解析数据的PEG语法