Package com.googlecode.aviator.code
Class BaseEvalCodeGenerator
- java.lang.Object
-
- com.googlecode.aviator.code.BaseEvalCodeGenerator
-
- All Implemented Interfaces:
CodeGenerator
,EvalCodeGenerator
- Direct Known Subclasses:
ASMCodeGenerator
,InterpretCodeGenerator
public abstract class BaseEvalCodeGenerator extends java.lang.Object implements EvalCodeGenerator
-
-
Field Summary
Fields Modifier and Type Field Description protected AviatorClassLoader
classLoader
protected Env
compileEnv
Compile environment only has the *instance*.private int
funcInvocationId
protected java.util.Map<java.lang.Integer,java.util.List<FunctionArgument>>
funcsArgs
function params info.protected AviatorEvaluatorInstance
instance
protected java.util.Map<java.lang.String,LambdaFunctionBootstrap>
lambdaBootstraps
Compiled lambda functions.protected LambdaGenerator
lambdaGenerator
protected java.util.ArrayDeque<ASMCodeGenerator.MethodMetaData>
methodMetaDataStack
protected java.util.Map<java.lang.String,java.lang.Integer>
methodTokens
protected CodeGenerator
parentCodeGenerator
parent code generator when compiling lambda.protected Parser
parser
protected java.lang.String
sourceFile
protected SymbolTable
symbolTable
protected java.util.Map<java.lang.String,VariableMeta>
variables
-
Constructor Summary
Constructors Constructor Description BaseEvalCodeGenerator(AviatorEvaluatorInstance instance, java.lang.String sourceFile, AviatorClassLoader classLoader)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description AviatorClassLoader
getClassLoader()
protected java.util.Map<java.lang.Integer,java.util.List<FunctionArgument>>
getFuncsArgs()
protected int
getNextFuncInvocationId()
void
initMethods(java.util.Map<java.lang.String,java.lang.Integer> methods)
void
setLambdaBootstraps(java.util.Map<java.lang.String,LambdaFunctionBootstrap> lambdaBootstraps)
void
setParser(Parser parser)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.googlecode.aviator.code.CodeGenerator
getResult, onAdd, onAndLeft, onAndRight, onArray, onArrayIndexEnd, onArrayIndexStart, onAssignment, onBitAnd, onBitNot, onBitOr, onBitXor, onConstant, onDiv, onEq, onExponent, onGe, onGt, onJoinLeft, onJoinRight, onLambdaArgument, onLambdaBodyEnd, onLambdaBodyStart, onLambdaDefineStart, onLe, onLt, onMatch, onMethodInvoke, onMethodName, onMethodParameter, onMod, onMult, onNeg, onNeq, onNot, onShiftLeft, onShiftRight, onSub, onTernaryBoolean, onTernaryEnd, onTernaryLeft, onTernaryRight, onUnsignedShiftRight
-
Methods inherited from interface com.googlecode.aviator.code.EvalCodeGenerator
genNewLambdaCode, initConstants, initVariables, start
-
-
-
-
Field Detail
-
instance
protected final AviatorEvaluatorInstance instance
-
variables
protected java.util.Map<java.lang.String,VariableMeta> variables
-
sourceFile
protected final java.lang.String sourceFile
-
lambdaGenerator
protected LambdaGenerator lambdaGenerator
-
classLoader
protected final AviatorClassLoader classLoader
-
parser
protected Parser parser
-
symbolTable
protected SymbolTable symbolTable
-
parentCodeGenerator
protected CodeGenerator parentCodeGenerator
parent code generator when compiling lambda.
-
lambdaBootstraps
protected java.util.Map<java.lang.String,LambdaFunctionBootstrap> lambdaBootstraps
Compiled lambda functions.
-
methodMetaDataStack
protected final java.util.ArrayDeque<ASMCodeGenerator.MethodMetaData> methodMetaDataStack
-
funcsArgs
protected java.util.Map<java.lang.Integer,java.util.List<FunctionArgument>> funcsArgs
function params info.
-
funcInvocationId
private int funcInvocationId
-
compileEnv
protected final Env compileEnv
Compile environment only has the *instance*.
-
methodTokens
protected java.util.Map<java.lang.String,java.lang.Integer> methodTokens
-
-
Constructor Detail
-
BaseEvalCodeGenerator
public BaseEvalCodeGenerator(AviatorEvaluatorInstance instance, java.lang.String sourceFile, AviatorClassLoader classLoader)
-
-
Method Detail
-
getFuncsArgs
protected java.util.Map<java.lang.Integer,java.util.List<FunctionArgument>> getFuncsArgs()
-
getNextFuncInvocationId
protected int getNextFuncInvocationId()
-
initMethods
public void initMethods(java.util.Map<java.lang.String,java.lang.Integer> methods)
- Specified by:
initMethods
in interfaceEvalCodeGenerator
-
setParser
public void setParser(Parser parser)
- Specified by:
setParser
in interfaceCodeGenerator
-
setLambdaBootstraps
public void setLambdaBootstraps(java.util.Map<java.lang.String,LambdaFunctionBootstrap> lambdaBootstraps)
- Specified by:
setLambdaBootstraps
in interfaceEvalCodeGenerator
-
getClassLoader
public AviatorClassLoader getClassLoader()
- Specified by:
getClassLoader
in interfaceEvalCodeGenerator
-
-