
C Compiler:使用Lex和Yacc进行词法和语法分析,并通过C++实现语法树解析以生成中间代码... 改动幅度约为5%。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本项目利用Lex和Yacc工具完成C语言编译器的词法与语法分析,采用C++构建语法树并生成中间代码。
C语言编译器Lex和Yacc用于编写C语言的词法分析与语法分析的原始文件扩展可以在相关文档中找到(例如:ANSI-C-grammar-l-1998.html)。这些工具实现了除了结构体(struct)和指针之外几乎所有的C语言语法。运行环境需要安装Flex、Bison、g++ 11 和 Python3。
在Windows命令行下,编译过程如下:
```
flex compiler.l
bison -vdty compiler.y
g++ -std=c++11 -o compiler tree.cpp Parser.cpp innerCode.cpp tools.cpp codeOptimize.cpp lex.yy.c y.tab.c
compiler.exe test/test.c
```
或者使用Makefile.bat进行自动化构建。
生成的目标代码位于objectcode文件夹中,可以通过命令行输入python objectcode.py来执行。该脚本读取的源文件为inter.txt,并在当前目录下生成mips汇编编码(result.asm)。
中间代码格式定义如下:
- 语法描述标签1:定义标签label1
- 功能f:
以上步骤和工具能够帮助构建一个基本的C语言到MIPS汇编的转换器。
全部评论 (0)
还没有任何评论哟~


