lex & yacc 2nd 中文版
2021-02-16 20:07:09 5.28MB lex yacc
1
用lex和yacc写的tiny c编译 用lex和yacc写的tiny c编译 用lex和yacc写的tiny c编译
2020-12-10 21:05:52 18KB c语言 编译器 lex yacc
1
作者: 胡彦 本框架是一个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
Lex与Yacc第二版高清版,扫描版,有目录
2020-11-10 21:08:29 20.48MB Lex Flex Yacc
1
词法分析器,希望对大家有所帮助,。。。。
2020-04-08 03:06:15 1.1MB 词法分析器 词法,分析器,Lex
1
是使用C++书写的Lex工具,通过了基本的测试。
2020-03-14 03:14:14 12KB Lex c++
1
bison官方文档,lex yacc解析工具
2020-01-03 11:28:29 849KB bison lex yacc
1
只能实现斐波那契数列,没有实现pi.c,得分五分 上机大作业——简化C编译器实现 总体要求 一、要求实现的语言特性 1. 基本要求 1数据类型:int,char 2语句:赋值(=),if,while,for;赋值 循环 条件判断 3算术运算:+,-,*,/,%,++,--,&,|,^,~,<> 4关系运算:==,>,=,<=,!= 5逻辑运算:&&(与),||(或),!(非);构造与算数相同 6复合语句:{、}括起来的语句;要求识别 if、while中使用 7注释语句;识别注释 然后丢弃 8简单的输入输出 2. 选作功能 1数组,指针;数组怎么实现 第八章介绍数组的翻译 2函数 3其他特性(浮点运算、结构/类、连接C标准库等等) 生成的目标代码 生成x86汇编语言程序。;不要求二进制 由编译器编译成二进制 要求提交的内容 1C语言子集的描述:词法结构的正则表达式定义、语法结构的CFG定义。 ;简化子集的描述 2编译器源程序文本,包括Lex、Yacc等程序和C/C++程序。;两种语言工具 构造词法分和语法分析部分 passive generate 3编译器演示程序,可将C语言子集测试程序编译为目标代码——汇编程序,用汇编器转换为二进制程序后运行无误,如斐波那契数列程序,应能翻译为正确的汇编程序。
2020-01-03 11:23:02 1.09MB LEX YACC 南开 王刚
1
东南大学编译原理实验 lex&&yacc
2020-01-03 11:19:15 2.26MB 东南大学编译原理实验 lex&&yacc
1
C语言实现一个编译器-编译原理南开大学的编译原理期末大作业: 南开大学的编译原理期末大作业,C语言实现一个编译器,可以实现将程序源代码转换为汇编程序然后执行。
2019-12-25 11:33:31 1.99MB 编译器 南开大学 编译原理  lex
1