CodeGeneratorpublic class ASMCodeGenerator extends Object implements CodeGenerator
| Modifier and Type | Field | Description |
|---|---|---|
static String |
FUNC_ARGS_INNER_VAR |
| Constructor | Description |
|---|---|
ASMCodeGenerator(AviatorEvaluatorInstance instance,
AviatorClassLoader classLoader,
OutputStream traceOut) |
| Modifier and Type | Method | Description |
|---|---|---|
void |
genNewLambdaCode(LambdaFunctionBootstrap bootstrap) |
|
AviatorClassLoader |
getClassLoader() |
|
int |
getLocalIndex() |
|
Expression |
getResult(boolean unboxObject) |
|
void |
initConstants(Set<Token<?>> constants) |
Initial constant pool.
|
void |
initMethods(Map<String,Integer> methods) |
|
void |
initVariables(Map<String,Integer> varTokens) |
|
void |
onAdd(Token<?> lookhead) |
|
void |
onAndLeft(Token<?> lookhead) |
Do logic operation "&&" left operand
|
void |
onAndRight(Token<?> lookhead) |
Do logic operation "&&" right operand
|
void |
onArray(Token<?> lookhead) |
|
void |
onArrayIndexEnd(Token<?> lookhead) |
|
void |
onArrayIndexStart(Token<?> token) |
|
void |
onAssignment(Token<?> lookhead) |
|
void |
onBitAnd(Token<?> lookhead) |
|
void |
onBitNot(Token<?> lookhead) |
Bit operation '~'
|
void |
onBitOr(Token<?> lookhead) |
|
void |
onBitXor(Token<?> lookhead) |
|
void |
onConstant(Token<?> lookhead) |
|
void |
onDiv(Token<?> lookhead) |
|
void |
onEq(Token<?> lookhead) |
|
void |
onExponent(Token<?> lookhead) |
|
void |
onGe(Token<?> lookhead) |
|
void |
onGt(Token<?> lookhead) |
|
void |
onJoinLeft(Token<?> lookhead) |
Do logic operation "||" left operand
|
void |
onJoinRight(Token<?> lookhead) |
Do logic operation "||" right operand
|
void |
onLambdaArgument(Token<?> lookhead) |
|
void |
onLambdaBodyEnd(Token<?> lookhead) |
|
void |
onLambdaBodyStart(Token<?> lookhead) |
|
void |
onLambdaDefineStart(Token<?> lookhead) |
|
void |
onLe(Token<?> lookhead) |
|
void |
onLt(Token<?> lookhead) |
|
void |
onMatch(Token<?> lookhead) |
|
void |
onMethodInvoke(Token<?> lookhead) |
|
void |
onMethodName(Token<?> lookhead) |
|
void |
onMethodParameter(Token<?> lookhead) |
|
void |
onMod(Token<?> lookhead) |
|
void |
onMult(Token<?> lookhead) |
|
void |
onNeg(Token<?> lookhead) |
|
void |
onNeq(Token<?> lookhead) |
|
void |
onNot(Token<?> lookhead) |
Logic operation '!'
|
void |
onShiftLeft(Token<?> lookhead) |
|
void |
onShiftRight(Token<?> lookhead) |
|
void |
onSub(Token<?> lookhead) |
|
void |
onTernaryBoolean(Token<?> lookhead) |
|
void |
onTernaryEnd(Token<?> lookhead) |
|
void |
onTernaryLeft(Token<?> lookhead) |
|
void |
onTernaryRight(Token<?> lookhead) |
|
void |
onUnsignedShiftRight(Token<?> lookhead) |
|
void |
pushOperand(int delta) |
|
void |
setLambdaBootstraps(Map<String,LambdaFunctionBootstrap> lambdaBootstraps) |
|
void |
setParser(Parser parser) |
|
void |
start() |
public static final String FUNC_ARGS_INNER_VAR
public ASMCodeGenerator(AviatorEvaluatorInstance instance, AviatorClassLoader classLoader, OutputStream traceOut)
public void setParser(Parser parser)
setParser in interface CodeGeneratorpublic AviatorClassLoader getClassLoader()
public void start()
public void onAdd(Token<?> lookhead)
onAdd in interface CodeGeneratorpublic void onSub(Token<?> lookhead)
onSub in interface CodeGeneratorpublic void onMult(Token<?> lookhead)
onMult in interface CodeGeneratorpublic void onExponent(Token<?> lookhead)
onExponent in interface CodeGeneratorpublic void onAssignment(Token<?> lookhead)
onAssignment in interface CodeGeneratorpublic void onDiv(Token<?> lookhead)
onDiv in interface CodeGeneratorpublic void onMod(Token<?> lookhead)
onMod in interface CodeGeneratorpublic void onAndLeft(Token<?> lookhead)
onAndLeft in interface CodeGeneratorpublic void onAndRight(Token<?> lookhead)
onAndRight in interface CodeGeneratorpublic void onTernaryBoolean(Token<?> lookhead)
onTernaryBoolean in interface CodeGeneratorpublic void onTernaryLeft(Token<?> lookhead)
onTernaryLeft in interface CodeGeneratorpublic void onTernaryRight(Token<?> lookhead)
onTernaryRight in interface CodeGeneratorpublic void onTernaryEnd(Token<?> lookhead)
onTernaryEnd in interface CodeGeneratorpublic void onJoinRight(Token<?> lookhead)
onJoinRight in interface CodeGeneratorpublic void onJoinLeft(Token<?> lookhead)
onJoinLeft in interface CodeGeneratorpublic void onEq(Token<?> lookhead)
onEq in interface CodeGeneratorpublic void onMatch(Token<?> lookhead)
onMatch in interface CodeGeneratorpublic void onNeq(Token<?> lookhead)
onNeq in interface CodeGeneratorpublic void onGe(Token<?> lookhead)
onGe in interface CodeGeneratorpublic void onGt(Token<?> lookhead)
onGt in interface CodeGeneratorpublic void onLe(Token<?> lookhead)
onLe in interface CodeGeneratorpublic void onLt(Token<?> lookhead)
onLt in interface CodeGeneratorpublic void pushOperand(int delta)
public void onNot(Token<?> lookhead)
onNot in interface CodeGeneratorpublic void onBitNot(Token<?> lookhead)
onBitNot in interface CodeGeneratorpublic void onNeg(Token<?> lookhead)
onNeg in interface CodeGeneratorpublic Expression getResult(boolean unboxObject)
getResult in interface CodeGeneratorpublic void onConstant(Token<?> lookhead)
onConstant in interface CodeGeneratorpublic void setLambdaBootstraps(Map<String,LambdaFunctionBootstrap> lambdaBootstraps)
public void initConstants(Set<Token<?>> constants)
constants - public void onMethodInvoke(Token<?> lookhead)
onMethodInvoke in interface CodeGeneratorpublic void onMethodParameter(Token<?> lookhead)
onMethodParameter in interface CodeGeneratorpublic void onArray(Token<?> lookhead)
onArray in interface CodeGeneratorpublic void onArrayIndexStart(Token<?> token)
onArrayIndexStart in interface CodeGeneratorpublic void onArrayIndexEnd(Token<?> lookhead)
onArrayIndexEnd in interface CodeGeneratorpublic int getLocalIndex()
public void onLambdaDefineStart(Token<?> lookhead)
onLambdaDefineStart in interface CodeGeneratorpublic void onLambdaArgument(Token<?> lookhead)
onLambdaArgument in interface CodeGeneratorpublic void onLambdaBodyStart(Token<?> lookhead)
onLambdaBodyStart in interface CodeGeneratorpublic void onLambdaBodyEnd(Token<?> lookhead)
onLambdaBodyEnd in interface CodeGeneratorpublic void genNewLambdaCode(LambdaFunctionBootstrap bootstrap)
public void onMethodName(Token<?> lookhead)
onMethodName in interface CodeGeneratorpublic void onBitAnd(Token<?> lookhead)
onBitAnd in interface CodeGeneratorpublic void onBitOr(Token<?> lookhead)
onBitOr in interface CodeGeneratorpublic void onBitXor(Token<?> lookhead)
onBitXor in interface CodeGeneratorpublic void onShiftLeft(Token<?> lookhead)
onShiftLeft in interface CodeGeneratorpublic void onShiftRight(Token<?> lookhead)
onShiftRight in interface CodeGeneratorpublic void onUnsignedShiftRight(Token<?> lookhead)
onUnsignedShiftRight in interface CodeGeneratorCopyright © 2022–2023. All rights reserved.