Skip to content

callmewindow/C0-compiler

Repository files navigation

基于简化版C0文法的C0编译器

可利用visual studio,vscode,Clion等工具打开直接编译运行,此前请注意3rd_party下的依赖库是否正确安装。

本编译器包括的功能有:所有的基础功能(具体可见指导书),选择的扩展有:注释、字面量、循环跳转语句、switch。

使用的文法可见“基础+部分扩展C0文法.md”

更多的文法以及语义介绍请见指导书

此外要说明的是目前在switch和for循环的实现上有些小错误,其他涉及的部分已经经过验证是正确的。

文件结构介绍:

核心部分:

3rd_party:外部库,其中argparse为命令行处理,catch2位异常处理,fmt为输出处理

analyser:语法制导翻译,语法分析、语义分析、中间代码生成均在此处完成

error:错误处理部分,错误的定义

instruction:指令定义部分,格式和指导书中虚拟机部分所匹配

tokenizer:词法分析部分

main.cpp:核心函数调用部分,包括命令行的处理,文件的相关处理

其余部分:

sample:测试例子

tests:基于测试框架的测试文件

除此之外所有内容均为为了将.s文件转化为.o文件而添加的,具体功能还未深入研究

About

编译原理实验课第二部分,简化版C0编译器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published