1 前言
在这个assignment中,我们将实现semantic check。通过AST树来检查程序是否符合Cool语言规范。对于有错误的代码,应该在这个阶段报错;而对于可以正确通过的代码,它必须收集某些信息供code generator使用。senmantic check阶段的输出是一棵annotated AST,通过这个AST,我们最终可以生成汇编代码。
本次Assignment的任务有以下3个
查看所有class并构建继承图。
检查继承图是否构造正确。
对每个类:
(a) 遍历AST,在符号表中收集所有可见的declaration。
(b) 检查每个表达式的类型是否正确。
(c) 用类型注释AST。
[Read More]