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 AviatorClassLoaderclassLoaderprotected EnvcompileEnvCompile environment only has the *instance*.private intfuncInvocationIdprotected java.util.Map<java.lang.Integer,java.util.List<FunctionArgument>>funcsArgsfunction params info.protected AviatorEvaluatorInstanceinstanceprotected java.util.Map<java.lang.String,LambdaFunctionBootstrap>lambdaBootstrapsCompiled lambda functions.protected LambdaGeneratorlambdaGeneratorprotected java.util.ArrayDeque<ASMCodeGenerator.MethodMetaData>methodMetaDataStackprotected java.util.Map<java.lang.String,java.lang.Integer>methodTokensprotected CodeGeneratorparentCodeGeneratorparent code generator when compiling lambda.protected Parserparserprotected java.lang.StringsourceFileprotected SymbolTablesymbolTableprotected 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 AviatorClassLoadergetClassLoader()protected java.util.Map<java.lang.Integer,java.util.List<FunctionArgument>>getFuncsArgs()protected intgetNextFuncInvocationId()voidinitMethods(java.util.Map<java.lang.String,java.lang.Integer> methods)voidsetLambdaBootstraps(java.util.Map<java.lang.String,LambdaFunctionBootstrap> lambdaBootstraps)voidsetParser(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:
initMethodsin interfaceEvalCodeGenerator
-
setParser
public void setParser(Parser parser)
- Specified by:
setParserin interfaceCodeGenerator
-
setLambdaBootstraps
public void setLambdaBootstraps(java.util.Map<java.lang.String,LambdaFunctionBootstrap> lambdaBootstraps)
- Specified by:
setLambdaBootstrapsin interfaceEvalCodeGenerator
-
getClassLoader
public AviatorClassLoader getClassLoader()
- Specified by:
getClassLoaderin interfaceEvalCodeGenerator
-
-