TODO
Tsumida opened this issue · comments
符号表:
- 增加两个域: mem_offset 和 size,对于Int, size = 1; 数组: size >= 1
- 虚拟机的数据区域Dmem的大小为 1024 * 32 Byte, 超出要报警。
- 搞一个 SymbolTable类,封装好三个表,对外提供类似insert_var(), insert_func(), delete_var(), lookup(..)等操作。
- 为符号表增加封装好函数alloc_mem(var_name: str, size: int),。insert变量时,自动为变量分配内存空间。
生成代码:
- 代码生成器可参考CGEN.c文件
- 建议为函数的形式参数分配空间,每次传入参数,就把入参覆盖掉形式参数的内存。(有更好的做法可以忽略这个)
- 赋值语句:a = b,
- 运算语句: +-*/<>!===<=>=
- 判断语句:if
- 循环语句:while
- 函数调用:先放一边
- 函数返回:未知
- 对数组的操作:未知
UI:
- 符号表UI界面
- 修改语法分析UI的代码
期末报告:
- 期中报告
- 语义分析
- 代码生成
- 测试用例
- 运行结果截图
- 源代码打包文件
- 可执行文件
- 虚拟机