我想创建一个非常简单的翻译器,将该语言定义的一些源代码翻译成汇编。我已经创建了生成AST的词法分析器和解析器。我已经创建了一个遍历树的树语法,并使用动态范围跟踪声明变量之类的内容。
问题是我不能简单地使用一种树语法创建一个翻译器,因为我需要在多次传递中遍历树。第一遍将是语义分析,第二遍将翻译成汇编。每次传递都是不同的树语法。
我的问题是,如何从树中的语义分析传递中保留特定于节点的信息,以便我可以访问它以进行翻译传递?我如何注释树?有没有办法可以将信息分配给树中的各个节点?我是否需要为此创建自定义树节点类?
答案 0 :(得分:1)
我是否需要为此创建自定义树节点类?
是
请参阅: