Skip to main content
 首页 » 编程设计

c#-4.0之F# 的 BNF 或 EBNF 解析器生成器中的 C# 语法

2024年08月06日23artech

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

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

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

请您参考如下方法:

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

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