一棵简单的抽象语法树(AST)
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
表达式 (3+4)*5 在编译时期,会形成一棵语法树,一边在计算时,先计算 3+4 的值,最后与5相乘。
对应的脚本如下:
digraph ast{
fontname = "Microsoft YaHei";
fontsize = 10;
node [shape = circle, fontname = "Microsoft YaHei", fontsize = 10];
edge [fontname = "Microsoft YaHei", fontsize = 10];
node [shape="plaintext"];
mul [label="mul(*)"];
add [label="add(+)"];
add -> 3
add -> 4;
mul -> add;
mul -> 5;
}
在线练习
{$ activeFileHint $}