我目前正在尝试创建一个 TypeChecker,它将成功地对 MiniJava 程序进行类型检查。在过去的 10 个小时里,我一直在研究它,盯着它看,但我什至不知道从哪里开始。我已经放弃按时完成项目,但我仍然想了解它是如何完成的。我们得到了完整的 MiniJava 解析器和一组用于遍历抽象语法树的类以及两个不同的默认访问者,DepthFirstVisitor 和 GJDepthFirst。我们应该扩展这些访问者以完成项目。
我了解需要完成的非常基本的概念:我们需要捕获解析器无法捕获的代码中的错误。我们需要在 2 遍中运行代码。第一遍是构建符号表(?),第二遍是使用符号表来检查。这个对吗?但是后来我不知道从哪里或如何开始在代码中实现它。
我意识到这不是一个真正的问题.......但是任何形式的指导或帮助将不胜感激。我班上有几个朋友和我在同一条船上。
谢谢!