关于编译器的概念、工作流程、算法和设计方案,可参考这里(http://www.cnblogs.com/bitzhuwei/archive/2013/06/05/CompilerDesignAndImp4Context-freeGrammar.html)。阅读本文须理解“上下文无关文法(Context-free Grammar)”是什么。
本文以加减乘除表达式和一个3D坦克游戏模型为例,说明如何自动生成解析器以及如何使用自动生成的代码。
文末附源代码。
加减乘除表达式
运行编译器代码生成器(bitzhuwei.CGCompiler.Winform.exe),默认配置文件中已经有加减乘除表达式(Expression)的文法了。
设置好编译器名字、命名空间和代码存放的位置,点击“开始!”。
若文法没有错误,会在指定位置生成Expression解析器的代码。