minidecaf教学实验文档 实验简介 零:前置准备 配环境、跑测试 环境配置 运行测试样例 RISC-V 的工具链使用 常见问题 参考实现 说明 TypeScript-ANTLR Python-ANTLR Java-ANTLR 第一个编译器 step1:仅一个 return 的 main 函数 从零开始的 lexer、parser 以及汇编生成 词法语法分析工具 使用中间码 其他 ANTLR 使用 Visitor 模式 IR 简明介绍 手写简单 parser 规范 常量表达式 step2:一元操作 任务概述 实验指导 其他 手写简单 parser 规范 step3:加减乘除模 任务概述 实验指导 其他 优先级和结合性 手写简单 parser 规范 step4:比较和逻辑表达式 任务概述 实验指导 规范 变量和语句 step5:局部变量和赋值 任务概述 实验指导 其他 栈帧 手写简单 parser 规范 step6:if 语句和条件表达式 任务概述 实验指导 其他 手写简单 parser 规范 块语句和作用域和更多语句 step7:作用域和块语句 任务概述 实验指导 其他 手写简单 parser 规范 step8:循环语句 任务概述 实验指导 规范 函数和全局变量 step9:函数 任务概述 实验指导 其他 函数调用 手写简单 parser 规范 step10:全局变量 任务概述 实验指导 其他 手写简单 parser 规范 数组和指针 step11:数组 任务概述 实验指导 其他 手写简单 parser 规范 step12:指针 任务概述 实验指导 其他 左值 类型检查 手写简单 parser 规范 参考资料 参考资料