生成了抽象语法树, 接着就来进行语义分析...语义分析的任务如下图:
一个比较简单的类型检查算法可以是这样的 :
加上id之后可以是这样的:
这里就引出了符号表的概念 :
同时符号表还应该满足程序中作用域的概念, 实现作用域的方法如下:
同时符号表还应该解决名字空间的问题, 可以看到图中多次出现list, 但实际编译器仍然应该能够正常运行 :
实现方案可以如下:
生成了抽象语法树, 接着就来进行语义分析...语义分析的任务如下图:
一个比较简单的类型检查算法可以是这样的 :
加上id之后可以是这样的:
这里就引出了符号表的概念 :
同时符号表还应该满足程序中作用域的概念, 实现作用域的方法如下:
同时符号表还应该解决名字空间的问题, 可以看到图中多次出现list, 但实际编译器仍然应该能够正常运行 :
实现方案可以如下: