语法写作工具

cop*_*pro 11 grammar parsing ebnf

我试图在EBNF中写一个语法(除非有一个很好的理由,它必须是EBNF)并且我正在为它寻找一些实用程序 - 如果有一个可以制作一个的GUI界面,那将会很棒,但是我最需要的东西是可以检查语法的东西,例如看它是否是LALR(n),如果是,那么n的值是什么.这样的工具存在吗?有没有其他有用的语法编写工具我应该知道(我不是在寻找解析器生成器).

Rob*_*cks 9

使用TinyPG!它是一个令人惊叹的一体化编译器编译器,具有轻量级GUI,您可以使用RegEx,EBNF和编写C#/ VB代码构建解析器,以便对解析树执行某些操作!

这是我之前做过的简短而翔实的总结,它也将您链接到下载.


我对TinyPG的理解:

TinyPG允许您编写和开发:

它有一个内置的IDE,Windows Only (在C#.NET中创建,开源).

它允许您使用内置的RegEx工具试用和预览正则表达式..NET支持RegEx语法,这意味着即使输出的解析器代码也使用.NET的正则表达式.

您编写EBNF来描述您选择语言(以下是一些免费提供的BNF Grammer,它们描述了现代编程语言(C,Java,JavaScript,C#,VB.NET,SQL-89)

使用TinyPG,您的RegEx和您的EBNF输出一个解析树 (参见此图).

那么你用解析树做什么?您为编译器/解释器/转换器编写C#/ VB代码 (在TinyPG中,根据BNF语法规则). (在TinyPG内部,打开提供的示例中的"simple expression2.tpg"文件,以查看计算器 '编译器' 的演示)

TinyPG允许您在TinyPG IDE中编译和测试您的tokenizer +解析器+编译器,它最终输出C#.NET或VB.NET (您选择)中解析器源代码,并带有现成的类.

适用于大众的优秀的一体化编译器编译器.请享用!

PS:如果我错了,请纠正我.


joe*_*ely 3

进一步采纳 Steven Dee 的建议,您可能需要查看ANTLRWorks,这是一种用于 ANTLR 语法的交互式 GUI 开发工具。