Use TinyPG!这是一款令人惊叹的一体化产品编译器 编译器使用轻量级 GUI,您可以在其中构建解析器RegEx, EBNF, 和写C#/VB代码来做一些事情解析树!
这是我之前所做的简短而内容丰富的摘要,其中还提供了下载链接。
我对TinyPG的理解:
TinyPG http://www.codeproject.com/KB/recipes/TinyPG.aspx允许您编写和开发:
- Define 终端 using 常用表达. http://www.codeproject.com/KB/dotnet/regextutorial.aspx
- Define 非终结符和解析器规则扩展BNF元语法。 http://en.wikipedia.org/wiki/EBNF
- Write Compiler代码在C# or VB,在 TinyPG 内。
它有一个内置 IDE,仅限 Windows(用C#.NET创建,开源).
它允许您尝试和预览常用表达使用内置的正则表达式工具。.NET 支持正则表达式语法,这意味着即使您的输出解析器代码使用.NET 的正则表达式。
你写 EBNF 来描述您选择的语言 (这里有一些免费的描述现代编程语言的 BNF 语法 http://www.devincook.com/GOLDParser/grammars/index.htm(C、Java、JavaScript、C#、VB.NET、SQL-89)
使用 TinyPG,您的RegEx和你的EBNF输出一个解析树 (参见此图) http://upload.wikimedia.org/wikipedia/en/a/a9/Parser_Flow.gif.
现在你如何处理解析树?你写C#/VB 代码 (在 TinyPNG 中,根据 BNF 语法规则)为您编译器/解释器/翻译器。 (在 TinyPG 中,打开提供的示例中的“simple expression2.tpg”文件以查看计算器‘编译器’)
TinyPG 允许您编译和测试 your 分词器+解析器+编译器,在TinyPG IDE中,它最终输出解析器源代码在 C#.NET 或 VB.NET 中(你的选择), with 可以使用类。
一个优秀的多合一编译器 编译器为大众。享受!
PS:如果我在这方面有任何错误,请纠正我。