编译器工具 Flex Bison for Windows 简单入门例子
最近从事一个系统仿真软件的开发,里面定义了自己的描述性语言MSL,MSL语言经FlexBison转换成C语言,然后用C编译器来编译并计算仿真。 现在领域驱动开发比较热门,有机会定义自己的语言对程序员来说是比较有成就感的,免不了要去学习编译原理和flex,bison,antlr等工具的使用, 在控制仿真语言,数控编程,还有股票程序化交易系统,游戏脚本中都可以看到领域驱动开发的影子。 借此机会,重新阅读了编译原理的教程,并学习一下自动控制原理(用于控制仿真),以前一直觉得大学里学的东西没有用,但是后来证明都用上了, 比如说微积分,线性代数,数值分析,甚至大学物理,还有那个以前不知所云数学物理方法,我努力回忆这些老师的面容,但已渐渐模糊。 ? 有关Flex和Bison的资料可以在http://ishare.iask.sina.com.cn里面找到很多,也可以从其他博客找到例子, 这里我从?http://sourceforge.net/projects/winflexbison/ 下载了 win_flex,win_bison 版本。 然后解压到某个目录下,注意里面有个data目录也要一起解压。 网上找了个博客参考一下:http://blog.csdn.net/pikaxuji/article/details/7678135 hello.l %{ int main(void) int yywrap(void) int yyerror(void) hello.y %token HI BYE program: 经过尝试,我使用了以下命令生成代码: win_flex --nounistd hello.l 执行后会生成lex.yy.c 和 y.tab.h y.tab.c 用 visual studio 2008 创建一个新的Visual c++ empty project,比如叫hello.vcproj,然后把上面三个文件添加进去,直接编译成功。 运行时候在控制台运行,? d:FlexBisonhello>hello.exe 很简单吧。flex bison 工具后面有很多选项,满足不同需要,可以自己测试。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |