作者: 胡彦 本框架是一个lex/yacc完整的示例,用于学习lex/yacc程序基本的搭建方法,在linux/cygwin下敲入make就可以编译和执行。 本例子虽小却演示了lex/yacc程序最常见和重要的特征: * lex/yacc文件格式、程序结构。 * 如何在lex/yacc中使用C++和STL库,用extern "C"声明那些lex/yacc生成的、要链接的C函数,如yylex(), yywrap(), yyerror()。 * 重定义YYSTYPE/yylval为复杂类型。 * 用%token方式声明yacc记号。 * 用%type方式声明非终结符的类型。 * lex里正则表达式的定义、识别方式。 * lex里用yylval向yacc返回属性值。 * 在yacc嵌入的C代码动作里,对记号属性($1, $2等)、和非终结符属性($$)的正确引用方法。 * 对yyin/yyout重赋值,以改变yacc默认的输入/输出目标。 * 如何开始解析(yyparse函数),结束或继续解析(yywrap函数)。 本例子功能是,对当前目录下的file.txt文件,解析出其中的标识符、数字、其它符号,显示在屏幕上。linux调试环境是Ubuntu 10.04。 总之,大部分框架已经搭好了,你只要稍加扩展就可以成为一个计算器之类的程序,用于《编译原理》的课程设计。 文件列表: lex.l: lex程序文件。 yacc.y: yacc程序文件。 main.hpp: 共同使用的头文件。 Makefile: makefile文件。 file.txt: 给程序解析的文本文件。 使用方法: 1-把lex_yacc_example.rar解压到linux/cygwin下。 2-命令行进入lex_yacc_example目录。 3-敲入make,这时会自动执行以下操作: (1) 自动调用flex编译.l文件,生成lex.yy.c文件。 (2) 自动调用bison编译.y文件,生成yacc.tab.c和yacc.tab.h文件。 (3) 自动调用g++编译、链接出可执行文件main。 (4) 自动执行main,得到如下结果:。 bison -d yacc.y g++ -c lex.yy.c g++ -c yacc.tab.c g++ lex.yy.o yacc.tab.o -o main id: abc id: defghi int: 123 int: 45678 op: ! op: @ op: # op: $ AllId: abc defghi 参考资料:《Lex和Yacc从入门到精通(6)-解析C-C++包含文件》, http://blog.csdn.net/pandaxcl/article/details/1321552 其它文章和代码请留意我的blog: http://blog.csdn.net/huyansoft 2013-4-27
2020-12-10 21:03:45 52KB Lex_Yacc 编译原理 课程设计 代码_例子
1
微信小程序教程资料和开发工具大全,文档、代码、例子、工具 微信小程序开发者文档官网地址 https://mp.weixin.qq.com/debug/wxadoc/dev/index.html
2020-01-03 11:42:01 63.11MB 小程序开发
1
C#网络编程实作教程 ,里面又各种例子和原码,方便学习。
2020-01-03 11:35:04 1.71MB c#网络编程 代码 例子
1
Android下载文件与上传文件的代码例子。用于演示在app中进行文件下载、文件上传的功能。
2020-01-03 11:16:46 2.17MB android
1
对初学者PID算法的理解大有帮助 原作者:pang123hui的博客: 请尊重原作者的劳动,转载请注明出处
2019-12-21 22:24:20 174KB 飞思卡尔 智能车 PID PID代码例子
1
嵌入式Linux应用程序开发详解教程,适用于初学者,共十二章,知识点很全,每章一个知识点都有例子加解析,知识点写的很透彻,很好学习资料
2019-12-21 22:21:58 10.81MB linux 嵌入式 应用开发
1
学习一下吧,初级者理解一下API的重要途径
2019-12-21 22:21:22 7.19MB cocos2dx 捕鱼游戏
1
演示如何用FFmpeg读取内存的PS/TS流,分离出视频和音频,用VC2008编译的,支持读取TS文件或PS文件到内存,支持分离、解码
2019-12-21 22:21:09 12.98MB ffmpeg TS
1
本人在网上找的一些用MATLAB实现HHT变换的程序,还附加了一些仿真的测试程序。
2019-12-21 22:04:17 7.5MB MATLAB HHT变换 代码+例子
1
飞思卡尔的FXTH87 Xtrinsic系列胎压监测传感器的规格书,低频和高频结合的编程例子,高频测量例子
2019-12-21 21:26:13 6.28MB Freescale FXTH87
1