4

我正在寻找可以提供给 fsyacc 的 C# v4 的 BNF 语法,或者如果我找不到可以输出 F# 的基于 EBNF 的解析器生成器。

编辑: 我不想为 C# 编写解析器,而是为非常相似的语法编写实验性解析器,并且由于两种语法之间存在巨大的文字重叠,我发现从 C# 语法开始更容易,只需更改偏离的位. 然而,我发现的唯一 C#v4 语法是 EBNF

另一个答案是从 EBNF 到 BNF 的转换器

4

3 回答 3

1

我在这里找到了一些语法;它们似乎包含高达 C# 4.0。

于 2013-01-10T03:40:40.237 回答
1

根据维基百科,Coco/R 是一个基于 EBNF 的解析器生成器。根据他们的主页,Coco/R 有一个 F# 端口(不过,最后更新时间是 2007-07-23,所以我预计会有一些重大变化)。如果你最终检查出来,我会对你的经历感兴趣。

我确实找到了 C# v2 的 BNF 语法:http: //www.devincook.com/GOLDParser/grammars/index.htm

于 2011-09-16T05:26:03.530 回答
1

扩展我之前的评论 - 我认为 C# 没有任何可靠的语法可以直接使用。有一些示例,但它们可能不会涵盖所有新功能(如 LINQ),或者不会经过很好的测试。

我能想到的最佳选择是在 Mono 中使用 C# 编译器中的解析器。这是用 C# 编写的,开源的,包括所有最近的功能(并且也相当可靠)。有关详细信息,请参阅Mono C# 编译器。您应该能够从 F# 编译并使用它(或将其修改为对 F# 更友好)。

于 2011-12-08T22:22:37.900 回答