4
如何精确创建抽象语法树?
我想我了解AST的目标,并且之前我已经构建了几个树结构,但从未构建过AST。由于节点是文本而不是数字,所以我很困惑,因此在解析某些代码时,我想不出一种输入令牌/字符串的好方法。 例如,当我查看AST的图表时,变量及其值是等号的叶节点。这对我来说很有意义,但是我将如何实施呢?我想我可以视情况而定,以便当我偶然遇到“ =”时,我将其用作节点,并将在“ =”之前解析的值添加为叶子。这似乎是错误的,因为根据语法的不同,我可能不得不为成千上万的东西辩护。 然后我遇到了另一个问题,那棵树是如何横穿的?我会一直下降到最低点吗,当我到达最低点时又返回一个节点,并对它的邻居也这样做吗? 我已经看到了大量关于AST的图表,但是我找不到一个简单的代码示例,这可能会有所帮助。