【发布时间】:2009-07-28 14:42:20
【问题描述】:
我正在寻找一个解析器生成器,它为 LL(k) 语言提供 EBNF,它将为我提供 C# 解析器并生成 EBNF 中定义的类型的类。
【问题讨论】:
标签: c# parser-generator
我正在寻找一个解析器生成器,它为 LL(k) 语言提供 EBNF,它将为我提供 C# 解析器并生成 EBNF 中定义的类型的类。
【问题讨论】:
标签: c# parser-generator
ANTLR(没什么好说的)
【讨论】:
Gold 就解析器生成器而言是可以的。
【讨论】:
块上有一个名为LLLPG 的新解析器生成器,它支持LL(k) 语法和零宽度断言。运行时库是可选的(一个基类就足够了)。文档现在已经相当详细了,我已经使用 LLLPG 来解析 C# 的大部分方言,称为增强型 C#(实际上,它是 LLLPG 的主要输入语言)。不过,输入语法不是 EBNF(它是 C# + ANTLR 风格代码的混搭)。
完全披露:我写的。欢迎提问。
编辑:“C# 解析器生成器”的最高 Google 结果是由一个名叫“Tomassetti”的人编写的,他声称我的解析器生成器“不能真正独立使用”——这就像说 PC 是“不能真正用作独立的游戏平台”,因为它也可以进行网页浏览和电子表格。诚然,在安装 Visual Studio 扩展之后,您必须单独转到 NuGet 并获取运行时库 (Loyc.Syntax),但我不认为这就是他的意思,我认为他从未真正尝试过使用它。 LLLPG 的设计是一个特性,而不是一个错误。我只能说,请试一试,让我知道你的想法。
【讨论】:
【讨论】:
在http://irony.codeplex.com/ 中寻找讽刺
优点:很简单 缺点: - 缺乏文件 - 相当慢
【讨论】:
Grammatica 支持 LL(k)。 http://grammatica.percederberg.net/
【讨论】:
Coco/R(来自 SSW -“约翰内斯·开普勒”林茨大学)
【讨论】: