Skip to content

Latest commit

 

History

History
25 lines (19 loc) · 758 Bytes

README.md

File metadata and controls

25 lines (19 loc) · 758 Bytes

计划寒假重新用纯C构造一个MiniC编译器

词法分析和语法分析通过ANSI转义实现代码高亮 通过代码高亮便于调试

语法分析思路 大概为划分Unit(函数声明,定义,全局变量声明) Unit内部划分Block(基本语句,循环Block,条件Block)递归完成语法分析 最后对各种语句中的表达式进行求值

语法树生成后进行语义分析 生成顺序为 表达式代码生成 基本语句代码生成 Block代码生成 Unit代码生成 生成RISC-V32代码

运行时环境采用RISCV模拟器,通过数组来完成内存和堆栈的模拟 运行时环境同样通过C代码实现。

支持RISCV32I指令用于计算 ecall配合寄存器参数进行printf输出 ebreak用于停机