public class ExprList extends Expr
Modifier and Type | Field and Description |
---|---|
static Expr |
NULL_EXPR |
static Expr[] |
NULL_EXPR_ARRAY |
static ExprList |
NULL_EXPR_LIST |
static Object[] |
NULL_OBJECT_ARRAY |
Modifier and Type | Method and Description |
---|---|
Object |
eval(Scope scope)
对所有表达式求值,只返回最后一个表达式的值
|
Object[] |
evalExprList(Scope scope)
对所有表达式求值,并返回所有表达式的值
|
Expr |
getActualExpr()
持有 ExprList 的指令可以通过此方法提升 AST 执行性能
1:当 exprArray.length == 1 时返回 exprArray[0]
2:当 exprArray.length == 0 时返回 NullExpr
3:其它情况返回 ExprList 自身
意义在于,当满足前面两个条件时,避免掉了 ExprList.eval(...) 方法中的判断与循环
|
Expr |
getExpr(int index) |
Expr[] |
getExprArray() |
Expr |
getFirstExpr() |
Expr |
getLastExpr() |
int |
length() |
public static final Expr NULL_EXPR
public static final Expr[] NULL_EXPR_ARRAY
public static final ExprList NULL_EXPR_LIST
public static final Object[] NULL_OBJECT_ARRAY
public Expr getActualExpr()
public Expr[] getExprArray()
public Expr getExpr(int index)
public Expr getFirstExpr()
public Expr getLastExpr()
public int length()
Copyright © 2018. All rights reserved.