public abstract class BaseExpression extends Object implements Expression
Modifier and Type | Field and Description |
---|---|
static String |
FUNC_PARAMS_VAR |
protected AviatorEvaluatorInstance |
instance |
protected Map<String,LambdaFunctionBootstrap> |
lambdaBootstraps |
protected String |
sourceFile |
protected SymbolTable |
symbolTable |
protected List<String> |
varFullNames |
protected List<String> |
varNames |
Constructor and Description |
---|
BaseExpression(AviatorEvaluatorInstance instance,
List<VariableMeta> vars,
SymbolTable symbolTable) |
Modifier and Type | Method and Description |
---|---|
String |
addSymbol(String name)
Adds the specified symbol to the symbol table and returns a reference to the unique symbol.
|
protected void |
afterPopulateFullNames(Map<String,VariableMeta> fullNames,
Set<String> parentVars) |
Object |
execute()
Execute expression with empty environment
|
Object |
execute(Map<String,Object> map)
Execute expression with environment
|
abstract Object |
executeDirectly(Map<String,Object> env) |
protected Env |
genTopEnv(Map<String,Object> map) |
Env |
getCompileEnv() |
String |
getExpression()
Returns the expression string when turn on
Options.TRACE_EVAL option, else returns
null. |
Map<String,VariableMeta> |
getFullNameMetas() |
Map<String,LambdaFunctionBootstrap> |
getLambdaBootstraps() |
String |
getSourceFile()
Returns the source file name.
|
AviatorEvaluatorInstance.StringSegments |
getStringSegements(String lexeme,
int lineNo) |
List<String> |
getVariableFullNames()
Returns this expression's all uninitialized global variable full names(contains dot) in order
when using AviatorEvaluator.EVAL mode,else returns empty set
|
List<String> |
getVariableNames()
Returns this expression's all uninitialized global variable names in order when using
AviatorEvaluator.EVAL mode,else returns empty set
|
List<VariableMeta> |
getVars() |
protected Env |
newEnv(Map<String,Object> map) |
protected Env |
newEnv(Map<String,Object> map,
boolean direct) |
Map<String,Object> |
newEnv(Object... args)
Created a faster env map(compare variable names by reference).The arguments should be a
sequence of pair
|
LambdaFunction |
newLambda(Env env,
String name) |
void |
setCompileEnv(Env compileEnv) |
void |
setExpression(String expression) |
void |
setFuncsArgs(Map<Integer,List<FunctionArgument>> funcsArgs) |
void |
setLambdaBootstraps(Map<String,LambdaFunctionBootstrap> lambdaBootstraps) |
void |
setSourceFile(String sourceFile) |
public static final String FUNC_PARAMS_VAR
protected AviatorEvaluatorInstance instance
protected SymbolTable symbolTable
protected String sourceFile
protected Map<String,LambdaFunctionBootstrap> lambdaBootstraps
public BaseExpression(AviatorEvaluatorInstance instance, List<VariableMeta> vars, SymbolTable symbolTable)
public String getSourceFile()
Expression
getSourceFile
in interface Expression
public void setSourceFile(String sourceFile)
protected void afterPopulateFullNames(Map<String,VariableMeta> fullNames, Set<String> parentVars)
public Map<String,VariableMeta> getFullNameMetas()
public AviatorEvaluatorInstance.StringSegments getStringSegements(String lexeme, int lineNo)
public Map<String,Object> newEnv(Object... args)
Expression
newEnv
in interface Expression
public Object execute(Map<String,Object> map)
Expression
execute
in interface Expression
map
- Binding variable environmentpublic void setFuncsArgs(Map<Integer,List<FunctionArgument>> funcsArgs)
public Env getCompileEnv()
public void setCompileEnv(Env compileEnv)
public String getExpression()
Options.TRACE_EVAL
option, else returns
null.public void setExpression(String expression)
public String addSymbol(String name)
Expression
addSymbol
in interface Expression
name
- The symbol name.public Object execute()
Expression
execute
in interface Expression
public List<String> getVariableFullNames()
Expression
getVariableFullNames
in interface Expression
public List<VariableMeta> getVars()
public List<String> getVariableNames()
Expression
getVariableNames
in interface Expression
AviatorEvaluator.EVAL
public Map<String,LambdaFunctionBootstrap> getLambdaBootstraps()
public void setLambdaBootstraps(Map<String,LambdaFunctionBootstrap> lambdaBootstraps)
public LambdaFunction newLambda(Env env, String name)
Copyright © 2010–2022. All rights reserved.