抽象语法树的构造和遍历
|
我不清楚抽象语法树的结构。要在AST表示的程序的源代码中“向下(前进)”,您是直接在最顶层的节点上还是向下移动?例如,示例程序
a = 1
b = 2
c = 3
d = 4
e = 5
生成一个如下所示的AST:
或这个:
在第一个中,在main node
上向“右”前进将使您进入程序,但在第二个中,仅跟随每个节点上的next
指针将执行相同的操作。
似乎第二种方法会更正确,因为您不需要像特殊的节点类型之类的东西,因为第一个节点的指针数组可能非常长。虽然,当您进入for
循环和if
分支以及更复杂的事物时,我可以看到第二个比第一个更加复杂。
没有找到相关结果
已邀请:
5 个回复
臀博
考虑一下如何在语法树中表示它: 在这里,数组文字类型节点还具有多个相同类型的子节点,其顺序很重要。
呈辖玫割善
产生的AST如下:
佃蒜狗掂哥
变量作用域将是您称为“主节点”的属性。
埃输林桨铃
社攻取墟槽
干杯。