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 class
Class used to represnt an AST verification errorstatic enum
(package private) static class
private static enum
Defines the context in which a variable occurs. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate List
<ASMSetupVisitor.ErrorReport> private ASMSetupVisitor.Mode
private ASMSetupVisitor.SlotAllocator
private ASMSetupVisitor.VariableContext
Fields 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 void
allocateLocalVariable
(Variable param) void
void
void
boolean
void
void
private void
compareEmitter
(String nodeType, Node arg, EmitterFactory.Emitter expected, EmitterFactory.Emitter actual) private void
boolean
private void
finishVariableDefinition
(Variable param) private void
handleEmitter
(Node arg, EmitterFactory.Emitter em) private void
private void
private void
private void
void
boolean
void
void
void
void
void
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
private boolean
boolean
boolean
boolean
preVariable
(Variable arg) void
tryStatementBeforeBlock
(TryStatement arg, Type type, Variable var, BlockStatement block) boolean
private void
verificationError
(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:
preClassGenerator
in classTreeWalker
-
preMethodGenerator
- Overrides:
preMethodGenerator
in classTreeWalker
-
methodGeneratorBeforeArguments
- Overrides:
methodGeneratorBeforeArguments
in classTreeWalker
-
methodGeneratorAfterArguments
- Overrides:
methodGeneratorAfterArguments
in classTreeWalker
-
postMethodGenerator
- Overrides:
postMethodGenerator
in classTreeWalker
-
classGeneratorBeforeFields
- Overrides:
classGeneratorBeforeFields
in classTreeWalker
-
classGeneratorBeforeInitializer
- Overrides:
classGeneratorBeforeInitializer
in classTreeWalker
-
classGeneratorBeforeMethod
- Overrides:
classGeneratorBeforeMethod
in classTreeWalker
-
classGeneratorBeforeConstructor
- Overrides:
classGeneratorBeforeConstructor
in classTreeWalker
-
postClassGenerator
- Overrides:
postClassGenerator
in classTreeWalker
-
preBlockStatement
- Overrides:
preBlockStatement
in classTreeWalker
-
blockStatementBeforeBodyStatement
- Overrides:
blockStatementBeforeBodyStatement
in classTreeWalker
-
postBlockStatement
- Overrides:
postBlockStatement
in classTreeWalker
-
preDefinitionStatement
- Overrides:
preDefinitionStatement
in classTreeWalker
-
definitionStatementBeforeExpr
- Overrides:
definitionStatementBeforeExpr
in classTreeWalker
-
preTryStatement
- Overrides:
preTryStatement
in classTreeWalker
-
tryStatementBeforeBlock
public void tryStatementBeforeBlock(TryStatement arg, Type type, Variable var, BlockStatement block) - Overrides:
tryStatementBeforeBlock
in classTreeWalker
-
tryStatementBeforeFinalPart
- Overrides:
tryStatementBeforeFinalPart
in classTreeWalker
-
postTryStatement
- Overrides:
postTryStatement
in classTreeWalker
-
preAssignmentStatement
- Overrides:
preAssignmentStatement
in classTreeWalker
-
preNonStaticFieldAccessExpression
public boolean preNonStaticFieldAccessExpression(ExpressionFactory.NonStaticFieldAccessExpression arg) - Overrides:
preNonStaticFieldAccessExpression
in classTreeWalker
-
preStaticFieldAccessExpression
- Overrides:
preStaticFieldAccessExpression
in classTreeWalker
-
preArrayIndexExpression
- Overrides:
preArrayIndexExpression
in 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:
preVariable
in classTreeWalker
-
preBinaryOperatorExpression
- Overrides:
preBinaryOperatorExpression
in classTreeWalker
-
binaryOperatorExpressionBeforeRight
- Overrides:
binaryOperatorExpressionBeforeRight
in classTreeWalker
-
postBinaryOperatorExpression
- Overrides:
postBinaryOperatorExpression
in classTreeWalker
-