Class ASMSetupVisitor
java.lang.Object
org.glassfish.pfl.dynamic.codegen.impl.TreeWalker
org.glassfish.pfl.dynamic.codegen.impl.ASMSetupVisitor
- All Implemented Interfaces:
Visitor
Visitor that can prepare an AST for bytecode generation,
or verify that an AST has been correctly prepared.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classClass used to represnt an AST verification errorstatic enum(package private) static classprivate static enumDefines the context in which a variable occurs. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate List<ASMSetupVisitor.ErrorReport> private ASMSetupVisitor.Modeprivate ASMSetupVisitor.SlotAllocatorprivate ASMSetupVisitor.VariableContextFields inherited from class org.glassfish.pfl.dynamic.codegen.impl.TreeWalker
context -
Constructor Summary
ConstructorsConstructorDescriptionASMSetupVisitor(TreeWalkerContext context) ASMSetupVisitor(TreeWalkerContext context, ASMSetupVisitor.Mode mode) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidallocateLocalVariable(Variable param) voidvoidvoidbooleanvoidvoidprivate voidcompareEmitter(String nodeType, Node arg, EmitterFactory.Emitter expected, EmitterFactory.Emitter actual) private voidbooleanprivate voidfinishVariableDefinition(Variable param) private voidhandleEmitter(Node arg, EmitterFactory.Emitter em) private voidprivate voidprivate voidprivate voidvoidbooleanvoidvoidvoidvoidvoidbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanprivate booleanbooleanbooleanbooleanpreVariable(Variable arg) voidtryStatementBeforeBlock(TryStatement arg, Type type, Variable var, BlockStatement block) booleanprivate voidverificationError(Node node, String msg) Methods inherited from class org.glassfish.pfl.dynamic.codegen.impl.TreeWalker
arrayIndexExpressionBeforeExpr, assignmentStatementBeforeLeftSide, caseBranchBeforeBodyStatement, ifExpressionBeforeFalsePart, ifExpressionBeforeTruePart, ifStatementBeforeFalsePart, ifStatementBeforeTruePart, newArrExpressionAfterExpression, newArrExpressionAfterSize, newArrExpressionBeforeExpression, newObjExpressionBeforeArg, nonStaticCallExpressionBeforeArg, postArrayIndexExpression, postArrayLengthExpression, postAssignmentStatement, postBreakStatement, postCaseBranch, postCastExpression, postConstantExpression, postDefinitionStatement, postExpression, postFieldGenerator, postIfExpression, postIfStatement, postInstofExpression, postNewArrExpression, postNewObjExpression, postNode, postNonStaticCallExpression, postNonStaticFieldAccessExpression, postReturnStatement, postStatement, postStaticCallExpression, postStaticFieldAccessExpression, postSuperCallExpression, postSuperObjExpression, postSwitchStatement, postThisExpression, postThisObjExpression, postThrowStatement, postUnaryOperatorExpression, postVariable, postVoidExpression, postWhileStatement, preArrayLengthExpression, preBreakStatement, preCaseBranch, preCastExpression, preConstantExpression, preExpression, preFieldGenerator, preIfExpression, preIfStatement, preInstofExpression, preNewArrExpression, preNewObjExpression, preNode, preNonStaticCallExpression, preReturnStatement, preStatement, preStaticCallExpression, preSuperCallExpression, preSuperObjExpression, preSwitchStatement, preThisExpression, preThisObjExpression, preThrowStatement, preUnaryOperatorExpression, preVoidExpression, preWhileStatement, staticCallExpressionBeforeArg, superCallExpressionBeforeArg, superObjExpressionBeforeArg, switchStatementBeforeCaseBranches, switchStatementBeforeDefault, thisObjExpressionBeforeArg, visitArrayIndexExpression, visitArrayLengthExpression, visitAssignmentStatement, visitBinaryOperatorExpression, visitBlockStatement, visitBreakStatement, visitCaseBranch, visitCastExpression, visitClassGenerator, visitConstantExpression, visitDefinitionStatement, visitExpression, visitFieldGenerator, visitIfExpression, visitIfStatement, visitInstofExpression, visitMethodGenerator, visitNewArrExpression, visitNewObjExpression, visitNode, visitNonStaticCallExpression, visitNonStaticFieldAccessExpression, visitReturnStatement, visitStatement, visitStaticCallExpression, visitStaticFieldAccessExpression, visitSuperCallExpression, visitSuperObjExpression, visitSwitchStatement, visitThisExpression, visitThisObjExpression, visitThrowStatement, visitTryStatement, visitUnaryOperatorExpression, visitVariable, visitVoidExpression, visitWhileStatement, whileStatementBeforeBody
-
Field Details
-
variableDefiningContext
-
mode
-
slotAllocator
-
errors
-
-
Constructor Details
-
ASMSetupVisitor
-
ASMSetupVisitor
-
-
Method Details
-
getVerificationErrors
-
verificationError
-
preparing
private boolean preparing() -
preClassGenerator
- Overrides:
preClassGeneratorin classTreeWalker
-
preMethodGenerator
- Overrides:
preMethodGeneratorin classTreeWalker
-
methodGeneratorBeforeArguments
- Overrides:
methodGeneratorBeforeArgumentsin classTreeWalker
-
methodGeneratorAfterArguments
- Overrides:
methodGeneratorAfterArgumentsin classTreeWalker
-
postMethodGenerator
- Overrides:
postMethodGeneratorin classTreeWalker
-
classGeneratorBeforeFields
- Overrides:
classGeneratorBeforeFieldsin classTreeWalker
-
classGeneratorBeforeInitializer
- Overrides:
classGeneratorBeforeInitializerin classTreeWalker
-
classGeneratorBeforeMethod
- Overrides:
classGeneratorBeforeMethodin classTreeWalker
-
classGeneratorBeforeConstructor
- Overrides:
classGeneratorBeforeConstructorin classTreeWalker
-
postClassGenerator
- Overrides:
postClassGeneratorin classTreeWalker
-
preBlockStatement
- Overrides:
preBlockStatementin classTreeWalker
-
blockStatementBeforeBodyStatement
- Overrides:
blockStatementBeforeBodyStatementin classTreeWalker
-
postBlockStatement
- Overrides:
postBlockStatementin classTreeWalker
-
preDefinitionStatement
- Overrides:
preDefinitionStatementin classTreeWalker
-
definitionStatementBeforeExpr
- Overrides:
definitionStatementBeforeExprin classTreeWalker
-
preTryStatement
- Overrides:
preTryStatementin classTreeWalker
-
tryStatementBeforeBlock
public void tryStatementBeforeBlock(TryStatement arg, Type type, Variable var, BlockStatement block) - Overrides:
tryStatementBeforeBlockin classTreeWalker
-
tryStatementBeforeFinalPart
- Overrides:
tryStatementBeforeFinalPartin classTreeWalker
-
postTryStatement
- Overrides:
postTryStatementin classTreeWalker
-
preAssignmentStatement
- Overrides:
preAssignmentStatementin classTreeWalker
-
preNonStaticFieldAccessExpression
public boolean preNonStaticFieldAccessExpression(ExpressionFactory.NonStaticFieldAccessExpression arg) - Overrides:
preNonStaticFieldAccessExpressionin classTreeWalker
-
preStaticFieldAccessExpression
- Overrides:
preStaticFieldAccessExpressionin classTreeWalker
-
preArrayIndexExpression
- Overrides:
preArrayIndexExpressionin classTreeWalker
-
initializeEmitter
-
initializeEmitter
-
initializeEmitter
-
compareEmitter
private void compareEmitter(String nodeType, Node arg, EmitterFactory.Emitter expected, EmitterFactory.Emitter actual) -
handleEmitter
-
initializeVariableEmitter
-
defineLocalVariable
-
allocateLocalVariable
-
finishVariableDefinition
-
preVariable
- Overrides:
preVariablein classTreeWalker
-
preBinaryOperatorExpression
- Overrides:
preBinaryOperatorExpressionin classTreeWalker
-
binaryOperatorExpressionBeforeRight
- Overrides:
binaryOperatorExpressionBeforeRightin classTreeWalker
-
postBinaryOperatorExpression
- Overrides:
postBinaryOperatorExpressionin classTreeWalker
-