这次实验只需要完成一部分 cool 语言的语义分析功能。我准备对 cool 语言中类的循环继承进行判断,顺便判断代码中有无主类 Main
和对应的 main()
函数
- 判断类名的合法性(不允许定义
IO
,Str
,Bool
等基本类) - 判断继承的合法性
- 不允许继承
Bool
,Int
,SELF_TYPE
,Str
等类 - 循环继承判断
- 不允许继承
- 判断是否继承未定义的类
- 判断主类
Main
是否存在- 判断主类
Main
中是否有main()
方法
- 判断主类
⭐ 所有需要修改的文件有 semant.cc
,semant.h
和 cool-tree.handcode.h