这是一个将 MiniC 语言 编译到 Minisys 体系(类 MIPS)汇编的编译器。包括自己设计的 Lex 和 Yacc 工具、中间代码(IR)生成、目标代码生成,以及代码优化相关工作。100% TypeScript。
$ npm install # just once
$ node ./dist/cli.js <path_to_c_code> [options]
可用的选项(options)有:
参数 | 作用 |
---|---|
-o <output_path> | 指定输出路径,默认与 C 代码同路径 |
-i | 一并输出中间代码 |
-v | 显示编译过程详细信息 |
来自 syntax/MiniC.l
的词法分析 DFA 以及 syntax/MiniC.y
的 LALR 语法分析表会被序列化保存为 MiniC-Lex.json
和 MiniC-LALRParse.json
。执行下面命令可以重新生成它们:
$ cd script
$ chmod 755 *
$ ./generate-minic.sh
-
安装
$ git clone git@github.com:seu-cs-class2/minisys-minicc-ts.git $ cd minisys-minicc-ts $ npm install
-
增量监视编译
$ npm run tsc:watch
-
构建
$ npm run build