2020年南开大学软件学院编译原理大作业
- 进入项目目录在终端输入
make
指令 - 在linux系统下,
make
之后会得到可执行文件scanner_parser_test
在mac下则会出现问题,此时需要在parser.tab.h
文件的前两行输入一下代码:
#include "abstract_syntax_tree/AstNode.h
#include "symbol_table/symbol.h
#include "intermidiate_code/interCode.h
#include "asm/AsmCode.h
#include "asm/AsmGenerate.cpp"
保存后在终端输入命令:
g++ -o scanner_parser_test AstNode.o symbol.o interCode.o AsmGenerate.o parser.tab.c scanner.lex.c
- 执行
scanner_parser_test
,若没有参数则会读取标准终端输入;
或者提供文件路径来读取文件的内容,对文件进行词法、语法分析,以及中间代码、汇编语言的生成; - 注意
make clean
后再进行编译执行; - 注意,数组名和变量名不应该冲突;
- 已经完成词法分析、语法分析的基础部分以及加分项中的:函数调用、一维数组和一维指针;
- 完成语法树的建立
- 完成中间代码基础部分的生成,以及符号表对已声明变量的关键信息的存储
- 完成基本四则运算的汇编生成,并可以正确执行;
- 完成一维数组和一维指针的基本操作;
- 完成了检查,并得到了满分
🈵️💯🈵️