Stamon 文档站

回到首页
回到上一级

2025/06/07 工作日志

本次更新不会修改版本。

修改了AstNode的getType()的底层运作方式

无论是DataType,还是AstNode,抑或是Token,都需要调用方法来获取他们的具体类型,以进行详细的辨认。

但是,用现在的眼光看,AstNode的getType()在设计时是欠缺更多思考的——利用虚函数重载的方式来实现。

这样做有两点问题: 1. 调用虚函数需要一定的开销 2. 在初始化语法树时需要一个一个类型判断过去并new出对应的节点,即使对应的节点没有任何特有的数据。即每个节点都需要特判

理想的解决方法应该是:在父类设立一个整数变量id,子类在创建时初始化这个id。在初始化语法树时,对于没有任何特有数据的节点,可以直接创建父类,然后修改id。

目前,我已经把这种理想的解决方法应用到了Ast中。

删除了AstLeftPostfix节点

用现在的眼光看,该节点是设计之初过度思考的产物。AstLeftPostfixAstPostfix别无二致,因此我删去了他。


查看该文件的提交记录