首页 > 其他 > 详细

编译原理 - 实验四 - yacc基本使用(bison)

时间:2015-05-31 18:10:23      阅读:303      评论:0      收藏:0      [点我收藏+]

一、介绍

只要在Unix环境中写过程序,必定会邂逅神秘的Lex&YACC,就如GNU/Linux用户所熟知的Flex&Bison,这里的Flex就是由Vern Paxon实现的一个Lex,Bison则是GNU版本的YACC,在此我们将统一称呼这些程序为Lex和YACC,所以我们将用Flex和Bison来尝试下我们的实例。

二、准备工作(win7)

①  下载flex和bison并安装到D:\GnuWin32(尽量是根目录)

②    由于我们使用的flex和bison都是GNU的工具,所以为了方便,采用的C/C++

编译器也 采用GNU的编译器GCC,当然我们需要的也是Windows版本的GCC了。所以选用了CodeBlocks编译器

三、课本实例

①  按课本代码输入,并保存为yac1.y,并将其放到bison所在目录

②  打开cmd命令行,然后进入D盘中bison所在目录下,然后输入命令行bison yac1.y对文件进行解析,生成yac1.tab.c文件

③  用CodeBlocks编译器打开yac1.tab.c文件,进行编译运行

④  测试结果:

 技术分享  技术分享

四、遇到问题

①int yylex(void)函数中改为int yylex(),因为后面需要返回数值,void为空,则得不到结果

②void yyerror(char *s)改为int yyerror(char *s),必须和前面的类型统一

③mian()中的if(i=0)改为if(i!=1),不然无论对错都一直会是提示错误

编译原理 - 实验四 - yacc基本使用(bison)

原文:http://www.cnblogs.com/zzhili/p/4542354.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!