Package com.googlecode.aviator.code
Class LambdaGenerator
java.lang.Object
com.googlecode.aviator.code.LambdaGenerator
- All Implemented Interfaces:
CodeGenerator
Lambda function generator
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final String
private final CodeGenerator
private final boolean
private static final AtomicLong
private final boolean
private final List
<FunctionParam> private final CodeGenerator
private ScopeInfo
-
Constructor Summary
ConstructorsConstructorDescriptionLambdaGenerator
(AviatorEvaluatorInstance instance, CodeGenerator parentCodeGenerator, Parser parser, AviatorClassLoader classLoader, String sourceFile, boolean newLexicalScope, boolean inheritEnv) -
Method Summary
Modifier and TypeMethodDescriptionvoid
addParam
(FunctionParam name) Compile a call method to invoke lambda compiled body expression.getResult
(boolean unboxObject) void
void
void
onAndRight
(Token<?> lookhead) void
void
onArrayIndexEnd
(Token<?> lookhead) void
onArrayIndexStart
(Token<?> token) void
onAssignment
(Token<?> lookhead) void
void
void
void
void
onConstant
(Token<?> lookhead) void
void
void
onExponent
(Token<?> lookhead) void
void
void
onJoinLeft
(Token<?> lookhead) void
onJoinRight
(Token<?> lookhead) void
onLambdaArgument
(Token<?> lookhead, FunctionParam param) void
onLambdaBodyEnd
(Token<?> lookhead) void
onLambdaBodyStart
(Token<?> lookhead) void
onLambdaDefineStart
(Token<?> lookhead) void
void
void
void
onMethodInvoke
(Token<?> lookhead) void
onMethodName
(Token<?> lookhead) void
onMethodParameter
(Token<?> lookhead) void
void
void
void
void
void
onShiftLeft
(Token<?> lookhead) void
onShiftRight
(Token<?> lookhead) void
void
onTernaryBoolean
(Token<?> lookhead) void
onTernaryEnd
(Token<?> lookhead) void
onTernaryLeft
(Token<?> lookhead) void
onTernaryRight
(Token<?> lookhead) void
onUnsignedShiftRight
(Token<?> lookhead) void
void
setScopeInfo
(ScopeInfo scopeInfo)
-
Field Details
-
params
-
codeGenerator
-
parentCodeGenerator
-
className
-
LAMBDA_COUNTER
-
scopeInfo
-
newLexicalScope
private final boolean newLexicalScope -
inheritEnv
private final boolean inheritEnv
-
-
Constructor Details
-
LambdaGenerator
public LambdaGenerator(AviatorEvaluatorInstance instance, CodeGenerator parentCodeGenerator, Parser parser, AviatorClassLoader classLoader, String sourceFile, boolean newLexicalScope, boolean inheritEnv)
-
-
Method Details
-
getScopeInfo
-
setScopeInfo
-
setParser
- Specified by:
setParser
in interfaceCodeGenerator
-
getLmabdaBootstrap
Compile a call method to invoke lambda compiled body expression. -
addParam
-
onShiftRight
- Specified by:
onShiftRight
in interfaceCodeGenerator
-
onShiftLeft
- Specified by:
onShiftLeft
in interfaceCodeGenerator
-
onUnsignedShiftRight
- Specified by:
onUnsignedShiftRight
in interfaceCodeGenerator
-
onAssignment
- Specified by:
onAssignment
in interfaceCodeGenerator
-
onBitOr
- Specified by:
onBitOr
in interfaceCodeGenerator
-
onBitAnd
- Specified by:
onBitAnd
in interfaceCodeGenerator
-
onBitXor
- Specified by:
onBitXor
in interfaceCodeGenerator
-
onBitNot
- Specified by:
onBitNot
in interfaceCodeGenerator
-
onAdd
- Specified by:
onAdd
in interfaceCodeGenerator
-
onSub
- Specified by:
onSub
in interfaceCodeGenerator
-
onMult
- Specified by:
onMult
in interfaceCodeGenerator
-
onExponent
- Specified by:
onExponent
in interfaceCodeGenerator
-
onDiv
- Specified by:
onDiv
in interfaceCodeGenerator
-
onAndLeft
- Specified by:
onAndLeft
in interfaceCodeGenerator
-
onAndRight
- Specified by:
onAndRight
in interfaceCodeGenerator
-
onTernaryBoolean
- Specified by:
onTernaryBoolean
in interfaceCodeGenerator
-
onTernaryLeft
- Specified by:
onTernaryLeft
in interfaceCodeGenerator
-
onTernaryRight
- Specified by:
onTernaryRight
in interfaceCodeGenerator
-
onTernaryEnd
- Specified by:
onTernaryEnd
in interfaceCodeGenerator
-
onJoinLeft
- Specified by:
onJoinLeft
in interfaceCodeGenerator
-
onJoinRight
- Specified by:
onJoinRight
in interfaceCodeGenerator
-
onEq
- Specified by:
onEq
in interfaceCodeGenerator
-
onMatch
- Specified by:
onMatch
in interfaceCodeGenerator
-
onNeq
- Specified by:
onNeq
in interfaceCodeGenerator
-
onLt
- Specified by:
onLt
in interfaceCodeGenerator
-
onLe
- Specified by:
onLe
in interfaceCodeGenerator
-
onGt
- Specified by:
onGt
in interfaceCodeGenerator
-
onGe
- Specified by:
onGe
in interfaceCodeGenerator
-
onMod
- Specified by:
onMod
in interfaceCodeGenerator
-
onNot
- Specified by:
onNot
in interfaceCodeGenerator
-
onNeg
- Specified by:
onNeg
in interfaceCodeGenerator
-
getResult
- Specified by:
getResult
in interfaceCodeGenerator
-
onConstant
- Specified by:
onConstant
in interfaceCodeGenerator
-
onMethodName
- Specified by:
onMethodName
in interfaceCodeGenerator
-
onMethodParameter
- Specified by:
onMethodParameter
in interfaceCodeGenerator
-
onMethodInvoke
- Specified by:
onMethodInvoke
in interfaceCodeGenerator
-
onLambdaDefineStart
- Specified by:
onLambdaDefineStart
in interfaceCodeGenerator
-
onLambdaArgument
- Specified by:
onLambdaArgument
in interfaceCodeGenerator
-
onLambdaBodyStart
- Specified by:
onLambdaBodyStart
in interfaceCodeGenerator
-
onLambdaBodyEnd
- Specified by:
onLambdaBodyEnd
in interfaceCodeGenerator
-
onArray
- Specified by:
onArray
in interfaceCodeGenerator
-
onArrayIndexStart
- Specified by:
onArrayIndexStart
in interfaceCodeGenerator
-
onArrayIndexEnd
- Specified by:
onArrayIndexEnd
in interfaceCodeGenerator
-