抽象语法树——菜鸟级(试着看懂)

Abstract Syntax Tree - Rookie level (Trying to understand)

所以我现在正在尝试学习 AST,并一直在练习一些简单的函数,例如

var a;
var b;
b = 666
a = b;
print a;

结局是这样的:

所以在试图理解它之后。我几乎开始理解它,但是当我尝试执行这样的功能时,问题就来了:

var a;
var b;
b = 666;
a = b+42*6;
print a;

我遇到麻烦的地方是 a=b+42*6 我不知道应该如何制作它的树。如果其中只有一个像 + 或 *,我知道该怎么办,但当它们都在一起时就不知道了。我一直在尝试查看 YouTube 剪辑、其他网站的教程等等,但找不到类似的内容。

所以我需要你们的帮助!

总之。我也有一个语法,但它看起来像图片中的样子:)

编辑:

我就这样结束了。感觉不对...?

编辑 2:

由于表达式是 a = b + 42 * 6,您必须首先考虑自己如何做。第一部分是 42 * 6 基于数学规则,所以你把它写成一个表达式(使用与你使用的相同的术语):

    expr
   /  | \
  42  *  6

这个结果将被添加到 b,所以这是下一个:

    expr
   /  | \
   b  +  \
        expr
       /  | \
      42  *  6

然后你想把它全部分配给a,所以加上:

  assign
 /  |   \
a   =    \
        expr
       /  | \
       b  +  \
            expr
           /  | \
          42  *  6