Skip to content

2020年南开大学软件学院编译原理大作业

Notifications You must be signed in to change notification settings

Camel-Prince/c_complier

Repository files navigation

c_complier

2020年南开大学软件学院编译原理大作业

运行方式

  1. 进入项目目录在终端输入make指令
  2. 在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
  3. 执行scanner_parser_test,若没有参数则会读取标准终端输入;
    或者提供文件路径来读取文件的内容,对文件进行词法、语法分析,以及中间代码、汇编语言的生成;
  4. 注意make clean后再进行编译执行;
  5. 注意,数组名和变量名不应该冲突;

目前的进度

  1. 已经完成词法分析、语法分析的基础部分以及加分项中的:函数调用、一维数组和一维指针;
  2. 完成语法树的建立
  3. 完成中间代码基础部分的生成,以及符号表对已声明变量的关键信息的存储
  4. 完成基本四则运算的汇编生成,并可以正确执行;
  5. 完成一维数组和一维指针的基本操作;
  6. 完成了检查,并得到了满分🈵️💯🈵️

安排

整一个编译器,冲!!!

Finished as a full-mark-course_project

To Be Continued...

About

2020年南开大学软件学院编译原理大作业

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published