x=1; y=x+2; x*y+1; 5-3*2+(1+2);
root | prog _____________|______________ | | | | = = + + _|__ _|__ _|__ ___|___ | | | | | | | | x 1 y + * 1 - + _|__ _|__ _|__ _|__ | | | | | | | | x 2 x y 5 * 1 2 _|__ | | 3 2 num: 24 cur node: root op: root cur node: prog cur node: = op is = op: prog, op child: =, eval op child: = =========================== root | prog _____________|______________ | | | | = = + + _|__ _|__ _|__ ___|___ | | | | | | | | x 1 y + * 1 - + _|__ _|__ _|__ _|__ | | | | | | | | x 2 x y 5 * 1 2 _|__ | | 3 2 --------------------------- cur node: = op is = cur node: + eval name n: 1 xx cur: + c1: 1 c2: 2 eval: 1 + 2 = 3 ~ASTNode: 8: + ~ASTNode: 7: x ~ASTNode: 9: 2 =========================== root | prog ____________|____________ | | | | = = + + _|__ _|__ _|__ ___|___ | | | | | | | | x 1 y 3 * 1 - + _|__ _|__ _|__ | | | | | | x y 5 * 1 2 _|__ | | 3 2 --------------------------- op: prog, op child: =, eval op child: = =========================== root | prog ____________|____________ | | | | = = + + _|__ _|__ _|__ ___|___ | | | | | | | | x 1 y 3 * 1 - + _|__ _|__ _|__ | | | | | | x y 5 * 1 2 _|__ | | 3 2 --------------------------- cur node: + cur node: * eval name n: 1 xx cur: * c1: 1 eval name n: 3 c2: 3 eval: 1 * 3 = 3 xx cur: + c1: 3 c2: 1 ~ASTNode: 11: * ~ASTNode: 10: x ~ASTNode: 12: y =========================== root | prog ____________|____________ | | | | = = + + _|__ _|__ _|__ ___|___ | | | | | | | | x 1 y 3 3 1 - + _|__ _|__ | | | | 5 * 1 2 _|__ | | 3 2 --------------------------- eval: 3 + 1 = 4 op: prog, op child: +, eval op child: 4 ~ASTNode: 13: + ~ASTNode: 25: 3 ~ASTNode: 14: 1 =========================== root | prog _________|_________ | | | | = = 4 + _|__ _|__ ___|___ | | | | | | x 1 y 3 - + _|__ _|__ | | | | 5 * 1 2 _|__ | | 3 2 --------------------------- cur node: + cur node: - xx cur: - c1: 5 cur node: * xx cur: * c1: 3 c2: 2 eval: 3 * 2 = 6 c2: 6 ~ASTNode: 18: * ~ASTNode: 17: 3 ~ASTNode: 19: 2 =========================== root | prog _________|_________ | | | | = = 4 + _|__ _|__ ___|___ | | | | | | x 1 y 3 - + _|__ _|__ | | | | 5 6 1 2 --------------------------- eval: 5 - 6 = -1 xx cur: + c1: -1 cur node: + xx cur: + c1: 1 c2: 2 eval: 1 + 2 = 3 c2: 3 ~ASTNode: 16: - ~ASTNode: 15: 5 ~ASTNode: 27: 6 =========================== root | prog _________|_________ | | | | = = 4 + _|__ _|__ __|__ | | | | | | x 1 y 3 -1 + _|__ | | 1 2 --------------------------- ~ASTNode: 22: + ~ASTNode: 21: 1 ~ASTNode: 23: 2 =========================== root | prog _________|_________ | | | | = = 4 + _|__ _|__ __|__ | | | | | | x 1 y 3 -1 3 --------------------------- eval: -1 + 3 = 2 op: prog, op child: +, eval op child: 2 ~ASTNode: 20: + ~ASTNode: 28: -1 ~ASTNode: 29: 3 =========================== root | prog _________|_________ | | | | = = 4 2 _|__ _|__ | | | | x 1 y 3 --------------------------- xx n: prog yy op: root =========================== root | prog _________|_________ | | | | = = 4 2 _|__ _|__ | | | | x 1 y 3 --------------------------- ~ASTNode: 0: root ~ASTNode: 1: prog ~ASTNode: 3: = ~ASTNode: 2: x ~ASTNode: 4: 1 ~ASTNode: 6: = ~ASTNode: 5: y ~ASTNode: 24: 3 ~ASTNode: 26: 4 ~ASTNode: 30: 2
沒有留言:
張貼留言