AST:给条件和分支留位置
本节阅读量:前两章已经有:
|
|
第三章新增:
|
|
ExprKind 增加两类
代码在:
|
|
表达式分类现在是:
|
|
解释器和 lowerer 仍然读取 kind,再用 switch 处理不同节点。第三章只是增加分类,没有改变前两章的分派方式。
EqExpr 保存左右两个表达式
|
|
例如:
|
|
对应:
|
|
IfExpr 明确保留三个位置
|
|
源码:
|
|
AST:
|
|
三个子表达式的位置不能混:
|
|
观察 AST
|
|
输出:
|
|
下一节看 parser 怎样生成这些节点。
本节目录