我正在寻找一个解析器生成器,它给出一个LL(k)语言的EBNF将给我一个C#解析器并生成EBNF中定义的类型的类。
答案 0 :(得分:23)
ANTLR(没什么可说的)
答案 1 :(得分:6)
Gold对于解析器生成器来说是可以的。
答案 2 :(得分:4)
答案 3 :(得分:4)
PROS:很简单 缺点: - 缺少文件 - 慢慢地
答案 4 :(得分:4)
在名为LLLPG的块上有一个新的解析器生成器,它支持LL(k)语法和零宽度断言。它可以在没有运行时库的情况下使用(基类就足够了)。文档现在相当详细,我使用LLLPG来解析大多数被称为Enhanced C#的C#方言(事实上,它是LLLPG的主要输入语言)。输入语法不是EBNF(它是C#+ ANTLR样式代码的混搭)。
完全披露:我写了。欢迎提问。
答案 5 :(得分:2)
Grammatica支持LL(k)。 http://grammatica.percederberg.net/
答案 6 :(得分:1)
Coco/R(来自SSW - “约翰内斯·开普勒”林茨大学)