Class ASMSetupVisitor
- java.lang.Object
-
- org.glassfish.pfl.dynamic.codegen.impl.TreeWalker
-
- org.glassfish.pfl.dynamic.codegen.impl.ASMSetupVisitor
-
- All Implemented Interfaces:
Visitor
public class ASMSetupVisitor extends TreeWalker
Visitor that can prepare an AST for bytecode generation, or verify that an AST has been correctly prepared.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classASMSetupVisitor.ErrorReportClass used to represnt an AST verification errorstatic classASMSetupVisitor.Mode(package private) static classASMSetupVisitor.SlotAllocatorprivate static classASMSetupVisitor.VariableContextDefines the context in which a variable occurs.
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<ASMSetupVisitor.ErrorReport>errorsprivate ASMSetupVisitor.Modemodeprivate ASMSetupVisitor.SlotAllocatorslotAllocatorprivate ASMSetupVisitor.VariableContextvariableDefiningContext-
Fields inherited from class org.glassfish.pfl.dynamic.codegen.impl.TreeWalker
context
-
-
Constructor Summary
Constructors Constructor Description ASMSetupVisitor(TreeWalkerContext context)ASMSetupVisitor(TreeWalkerContext context, ASMSetupVisitor.Mode mode)
-
Method Summary
-
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 Detail
-
variableDefiningContext
private ASMSetupVisitor.VariableContext variableDefiningContext
-
mode
private ASMSetupVisitor.Mode mode
-
slotAllocator
private ASMSetupVisitor.SlotAllocator slotAllocator
-
errors
private java.util.List<ASMSetupVisitor.ErrorReport> errors
-
-
Constructor Detail
-
ASMSetupVisitor
public ASMSetupVisitor(TreeWalkerContext context)
-
ASMSetupVisitor
public ASMSetupVisitor(TreeWalkerContext context, ASMSetupVisitor.Mode mode)
-
-
Method Detail
-
getVerificationErrors
public java.util.List<ASMSetupVisitor.ErrorReport> getVerificationErrors()
-
verificationError
private void verificationError(Node node, java.lang.String msg)
-
preparing
private boolean preparing()
-
preClassGenerator
public boolean preClassGenerator(ClassGeneratorImpl arg)
- Overrides:
preClassGeneratorin classTreeWalker
-
preMethodGenerator
public boolean preMethodGenerator(MethodGenerator arg)
- Overrides:
preMethodGeneratorin classTreeWalker
-
methodGeneratorBeforeArguments
public boolean methodGeneratorBeforeArguments(MethodGenerator arg)
- Overrides:
methodGeneratorBeforeArgumentsin classTreeWalker
-
methodGeneratorAfterArguments
public void methodGeneratorAfterArguments(MethodGenerator arg)
- Overrides:
methodGeneratorAfterArgumentsin classTreeWalker
-
postMethodGenerator
public void postMethodGenerator(MethodGenerator arg)
- Overrides:
postMethodGeneratorin classTreeWalker
-
classGeneratorBeforeFields
public boolean classGeneratorBeforeFields(ClassGeneratorImpl arg)
- Overrides:
classGeneratorBeforeFieldsin classTreeWalker
-
classGeneratorBeforeInitializer
public void classGeneratorBeforeInitializer(ClassGeneratorImpl arg)
- Overrides:
classGeneratorBeforeInitializerin classTreeWalker
-
classGeneratorBeforeMethod
public void classGeneratorBeforeMethod(ClassGeneratorImpl arg)
- Overrides:
classGeneratorBeforeMethodin classTreeWalker
-
classGeneratorBeforeConstructor
public void classGeneratorBeforeConstructor(ClassGeneratorImpl arg)
- Overrides:
classGeneratorBeforeConstructorin classTreeWalker
-
postClassGenerator
public void postClassGenerator(ClassGeneratorImpl arg)
- Overrides:
postClassGeneratorin classTreeWalker
-
preBlockStatement
public boolean preBlockStatement(BlockStatement arg)
- Overrides:
preBlockStatementin classTreeWalker
-
blockStatementBeforeBodyStatement
public void blockStatementBeforeBodyStatement(BlockStatement arg, Statement stmt)
- Overrides:
blockStatementBeforeBodyStatementin classTreeWalker
-
postBlockStatement
public void postBlockStatement(BlockStatement arg)
- Overrides:
postBlockStatementin classTreeWalker
-
preDefinitionStatement
public boolean preDefinitionStatement(DefinitionStatement arg)
- Overrides:
preDefinitionStatementin classTreeWalker
-
definitionStatementBeforeExpr
public boolean definitionStatementBeforeExpr(DefinitionStatement arg)
- Overrides:
definitionStatementBeforeExprin classTreeWalker
-
preTryStatement
public boolean preTryStatement(TryStatement arg)
- Overrides:
preTryStatementin classTreeWalker
-
tryStatementBeforeBlock
public void tryStatementBeforeBlock(TryStatement arg, Type type, Variable var, BlockStatement block)
- Overrides:
tryStatementBeforeBlockin classTreeWalker
-
tryStatementBeforeFinalPart
public boolean tryStatementBeforeFinalPart(TryStatement arg)
- Overrides:
tryStatementBeforeFinalPartin classTreeWalker
-
postTryStatement
public void postTryStatement(TryStatement arg)
- Overrides:
postTryStatementin classTreeWalker
-
preAssignmentStatement
public boolean preAssignmentStatement(AssignmentStatement arg)
- Overrides:
preAssignmentStatementin classTreeWalker
-
preNonStaticFieldAccessExpression
public boolean preNonStaticFieldAccessExpression(ExpressionFactory.NonStaticFieldAccessExpression arg)
- Overrides:
preNonStaticFieldAccessExpressionin classTreeWalker
-
preStaticFieldAccessExpression
public boolean preStaticFieldAccessExpression(ExpressionFactory.StaticFieldAccessExpression arg)
- Overrides:
preStaticFieldAccessExpressionin classTreeWalker
-
preArrayIndexExpression
public boolean preArrayIndexExpression(ExpressionFactory.ArrayIndexExpression arg)
- Overrides:
preArrayIndexExpressionin classTreeWalker
-
initializeEmitter
private void initializeEmitter(ExpressionFactory.NonStaticFieldAccessExpression arg)
-
initializeEmitter
private void initializeEmitter(ExpressionFactory.StaticFieldAccessExpression arg)
-
initializeEmitter
private void initializeEmitter(ExpressionFactory.ArrayIndexExpression arg)
-
compareEmitter
private void compareEmitter(java.lang.String nodeType, Node arg, EmitterFactory.Emitter expected, EmitterFactory.Emitter actual)
-
handleEmitter
private void handleEmitter(Node arg, EmitterFactory.Emitter em)
-
initializeVariableEmitter
private void initializeVariableEmitter(Variable param)
-
defineLocalVariable
private void defineLocalVariable(Variable arg)
-
allocateLocalVariable
private void allocateLocalVariable(Variable param)
-
finishVariableDefinition
private void finishVariableDefinition(Variable param)
-
preVariable
public boolean preVariable(Variable arg)
- Overrides:
preVariablein classTreeWalker
-
preBinaryOperatorExpression
public boolean preBinaryOperatorExpression(ExpressionFactory.BinaryOperatorExpression arg)
- Overrides:
preBinaryOperatorExpressionin classTreeWalker
-
binaryOperatorExpressionBeforeRight
public void binaryOperatorExpressionBeforeRight(ExpressionFactory.BinaryOperatorExpression arg)
- Overrides:
binaryOperatorExpressionBeforeRightin classTreeWalker
-
postBinaryOperatorExpression
public void postBinaryOperatorExpression(ExpressionFactory.BinaryOperatorExpression arg)
- Overrides:
postBinaryOperatorExpressionin classTreeWalker
-
-