我正在研究一种新语言,在编写语法时,我希望能够测试语法的完整性、冲突和类似性。我并不真正关心底层解析器生成器(但最好使用一个用于 .NET 的解析器)
因此,简短的功能列表将是:
以预期的语法编写代码
以验证其正确性
语法定义)
一个名为 Irony 的 CodePlex 项目确实有一些与我要求的类似的东西,但不支持将语法编写为所需的 BNF。
最佳答案
我会推荐 ANTLR作为解析器生成器。它的功能非常完整,支持 C# 以及许多其他目标语言。
对于 IDE,有一个名为 ANTLR IDE 的 Eclipse 插件。和一个名为 ANTLRWorks 的独立 IDE ,两者都运行良好。
但是请注意,ANTLR 使用 LL(*) 算法而不是 LR(k) 算法。尽管如此,它还是非常好,ANTLRWorks 可以完成大部分必要的左分解。
关于.net - 任何具有测试功能的 BNF IDE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2045382/