-
Notifications
You must be signed in to change notification settings - Fork 0
Khoray/CompilerLab
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
重庆大学 2022 编译原理教改项目 目录结构: /bin 可执行文件 + 库文件 /build 构建项目的文件 /include 头文件 /src 源代码 /src/... 子模块: IR, frontend, backend, opt third_party: 第三方库, 目前使用了 jsoncpp 用于生成和读取 json /lib 我们提供的库文件, 你需要根据你使用的 linux 或 windows 平台将对应的库文件重命名为 libIR.a 才能通过编译 /test 测试框架, 可以用于自测 /CMakeList.txt /readme.txt 编译: 首先进入 /build 若CMakeList修改后应执行 cmake 命令 1. cd /build 2. cmake .. 如果一切正常没有报错 执行make命令 3. make 执行: 1. cd /bin 2. compiler <src_filename> [-step] -o <output_filename> [-O1] -step: 支持以下几种输入 s0: 词法结果 token 串 s1: 语法分析结果语法树, 以 json 格式输出 s2: 语义分析结果, 以 IR 程序形式输出 e : 执行 IR 测评机,从 xx.sy 读入源文件,重定向 xx.in 作为 IR 程序的标准输入,并将 IR 的标准输出输出到 <output_filename> 中 S : RISC-v 汇编 ### TODO 测试: 1. cd /test 2. python [files]: build.py: 进入到 build 目录, 执行 cmake .. & make run.py: 运行可执行文件 compiler 编译所有测试用例, 打印 compiler 返回值和报错, 输出编译结果至 /test/output 执行方法: python run.py [s0/s1/s2/S] score.py: 将 run.py 生成的编译结果与标准结果进行对比并打分 执行方法: python score.py [s0/s1/s2/S] test.py 编译生成 compiler 可执行文件,执行并生成结果,最后对结果进行判断并打分 执行方法: python test.py [s0/s1/s2/S]
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published