ZZY 172d72b0a0 feat(backend/riscv32): 实现基础的编译器功能
- 完成 RV32IMA 指令集的代码生成
- 添加整数运算、分支、调用等基本指令支持
- 实现从 IR 到机器码的转换
- 添加简单的测试用例和测试框架
2025-03-08 16:50:21 +08:00
..
2025-03-07 12:29:53 +08:00
2025-03-07 12:29:53 +08:00
2025-03-07 12:29:53 +08:00
2025-03-07 12:29:53 +08:00
2025-03-07 12:29:53 +08:00
2025-03-05 15:45:19 +08:00
2025-03-07 12:29:53 +08:00
2025-03-07 12:29:53 +08:00

  • ast.c 作为抽象语法树的定义

  • block.c 作为块的实现主要用于处理作用域,需要符号表

  • decl.c 作为声明的实现,其中主要携带变量声明,函数声明见 func.c ,需要符号表

  • func.c 作为函数的实现,其中主要携带函数声明,以及函数定义,需要符号表

  • expr.c 作为表达式的实现。需要符号表

  • stmt.c 作为语句的实现。需要表达式类型判断合法性

  • term.c 作为终结符的实现。需要表达式类型判断合法性

  • program.c 作为词法分析语义分析入口函数可以根据parser结构生成AST

其中stmt参考cppreference 其中expr参考AI以及CParser