【发布时间】:2013-06-25 16:25:29
【问题描述】:
一旦我从 ANTLR 语法生成了 AST,我正在尝试了解如何应用访问者模式。它与遍历树的方法不同吗?
例如,假设我有以下 AST (From this question):
如果我想将 FUNDEF id 添加到其所有 VARDECL id,我的方法是进行树遍历以查找 BLOCK 内的所有 VARDECL 并添加一个具有 (FUNDEF id + old_name) 的新子级并删除旧的子级。
这是正确的方法还是访问者模式最有效?如果是访问者模式,那么在这种特定情况下的示例代码是什么?
提前致谢!
【问题讨论】:
标签: antlr antlr3 visitor-pattern