1、抽象语法树
抽象语法树,AST,Abstract syntax tree
AST节点表示像语句(Statements)和表达式(Expressions)这样的元素
2、语句类
3、表达式类
3.1 字面量
顶级父类Literal
代码示例 | 抽象整体 |
---|---|
true | BooleanLiteral |
23 | IntegerLiteral |
‘a’ | CharacterLiteral |
“Hello” | StringLiteral |
null | NullLiteral |
可以通过调用成员谓词getLiteral来获取字面量的值
string Literal::getLiteral()
3.2 一元表达式
3.3 二元表达式
3.4 赋值表达式
Assignment expression
3.5 访问
Access
代码示例 | 抽象整体 |
---|---|
x | VarAccess |
e.f | VarAccess |
a[i] | ArrayAccess |
f(…) | MethodAccess |
e.m(…) | MethodAccess |
杂项
代码样例 | 抽象整体 |
---|---|
(int) f | CastExpr |
new A() | ClassInstanceExpr |
@Annot(key=val) | Annotation |