org.glassfish.pfl.dynamic.codegen.impl
Class ASMSetupVisitor

java.lang.Object
  extended by org.glassfish.pfl.dynamic.codegen.impl.TreeWalker
      extended by 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
static class ASMSetupVisitor.ErrorReport
          Class used to represnt an AST verification error
static class ASMSetupVisitor.Mode
           
 
Field Summary
 
Fields inherited from class org.glassfish.pfl.dynamic.codegen.impl.TreeWalker
context
 
Constructor Summary
ASMSetupVisitor(TreeWalkerContext context)
           
ASMSetupVisitor(TreeWalkerContext context, ASMSetupVisitor.Mode mode)
           
 
Method Summary
 void binaryOperatorExpressionBeforeRight(ExpressionFactory.BinaryOperatorExpression arg)
           
 void blockStatementBeforeBodyStatement(BlockStatement arg, Statement stmt)
           
 void classGeneratorBeforeConstructor(ClassGeneratorImpl arg)
           
 boolean classGeneratorBeforeFields(ClassGeneratorImpl arg)
           
 void classGeneratorBeforeInitializer(ClassGeneratorImpl arg)
           
 void classGeneratorBeforeMethod(ClassGeneratorImpl arg)
           
 boolean definitionStatementBeforeExpr(DefinitionStatement arg)
           
 List<ASMSetupVisitor.ErrorReport> getVerificationErrors()
           
 void methodGeneratorAfterArguments(MethodGenerator arg)
           
 boolean methodGeneratorBeforeArguments(MethodGenerator arg)
           
 void postBinaryOperatorExpression(ExpressionFactory.BinaryOperatorExpression arg)
           
 void postBlockStatement(BlockStatement arg)
           
 void postClassGenerator(ClassGeneratorImpl arg)
           
 void postMethodGenerator(MethodGenerator arg)
           
 void postTryStatement(TryStatement arg)
           
 boolean preArrayIndexExpression(ExpressionFactory.ArrayIndexExpression arg)
           
 boolean preAssignmentStatement(AssignmentStatement arg)
           
 boolean preBinaryOperatorExpression(ExpressionFactory.BinaryOperatorExpression arg)
           
 boolean preBlockStatement(BlockStatement arg)
           
 boolean preClassGenerator(ClassGeneratorImpl arg)
           
 boolean preDefinitionStatement(DefinitionStatement arg)
           
 boolean preMethodGenerator(MethodGenerator arg)
           
 boolean preNonStaticFieldAccessExpression(ExpressionFactory.NonStaticFieldAccessExpression arg)
           
 boolean preStaticFieldAccessExpression(ExpressionFactory.StaticFieldAccessExpression arg)
           
 boolean preTryStatement(TryStatement arg)
           
 boolean preVariable(Variable arg)
           
 void tryStatementBeforeBlock(TryStatement arg, Type type, Variable var, BlockStatement block)
           
 boolean tryStatementBeforeFinalPart(TryStatement arg)
           
 
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ASMSetupVisitor

public ASMSetupVisitor(TreeWalkerContext context)

ASMSetupVisitor

public ASMSetupVisitor(TreeWalkerContext context,
                       ASMSetupVisitor.Mode mode)
Method Detail

getVerificationErrors

public List<ASMSetupVisitor.ErrorReport> getVerificationErrors()

preClassGenerator

public boolean preClassGenerator(ClassGeneratorImpl arg)
Overrides:
preClassGenerator in class TreeWalker

preMethodGenerator

public boolean preMethodGenerator(MethodGenerator arg)
Overrides:
preMethodGenerator in class TreeWalker

methodGeneratorBeforeArguments

public boolean methodGeneratorBeforeArguments(MethodGenerator arg)
Overrides:
methodGeneratorBeforeArguments in class TreeWalker

methodGeneratorAfterArguments

public void methodGeneratorAfterArguments(MethodGenerator arg)
Overrides:
methodGeneratorAfterArguments in class TreeWalker

postMethodGenerator

public void postMethodGenerator(MethodGenerator arg)
Overrides:
postMethodGenerator in class TreeWalker

classGeneratorBeforeFields

public boolean classGeneratorBeforeFields(ClassGeneratorImpl arg)
Overrides:
classGeneratorBeforeFields in class TreeWalker

classGeneratorBeforeInitializer

public void classGeneratorBeforeInitializer(ClassGeneratorImpl arg)
Overrides:
classGeneratorBeforeInitializer in class TreeWalker

classGeneratorBeforeMethod

public void classGeneratorBeforeMethod(ClassGeneratorImpl arg)
Overrides:
classGeneratorBeforeMethod in class TreeWalker

classGeneratorBeforeConstructor

public void classGeneratorBeforeConstructor(ClassGeneratorImpl arg)
Overrides:
classGeneratorBeforeConstructor in class TreeWalker

postClassGenerator

public void postClassGenerator(ClassGeneratorImpl arg)
Overrides:
postClassGenerator in class TreeWalker

preBlockStatement

public boolean preBlockStatement(BlockStatement arg)
Overrides:
preBlockStatement in class TreeWalker

blockStatementBeforeBodyStatement

public void blockStatementBeforeBodyStatement(BlockStatement arg,
                                              Statement stmt)
Overrides:
blockStatementBeforeBodyStatement in class TreeWalker

postBlockStatement

public void postBlockStatement(BlockStatement arg)
Overrides:
postBlockStatement in class TreeWalker

preDefinitionStatement

public boolean preDefinitionStatement(DefinitionStatement arg)
Overrides:
preDefinitionStatement in class TreeWalker

definitionStatementBeforeExpr

public boolean definitionStatementBeforeExpr(DefinitionStatement arg)
Overrides:
definitionStatementBeforeExpr in class TreeWalker

preTryStatement

public boolean preTryStatement(TryStatement arg)
Overrides:
preTryStatement in class TreeWalker

tryStatementBeforeBlock

public void tryStatementBeforeBlock(TryStatement arg,
                                    Type type,
                                    Variable var,
                                    BlockStatement block)
Overrides:
tryStatementBeforeBlock in class TreeWalker

tryStatementBeforeFinalPart

public boolean tryStatementBeforeFinalPart(TryStatement arg)
Overrides:
tryStatementBeforeFinalPart in class TreeWalker

postTryStatement

public void postTryStatement(TryStatement arg)
Overrides:
postTryStatement in class TreeWalker

preAssignmentStatement

public boolean preAssignmentStatement(AssignmentStatement arg)
Overrides:
preAssignmentStatement in class TreeWalker

preNonStaticFieldAccessExpression

public boolean preNonStaticFieldAccessExpression(ExpressionFactory.NonStaticFieldAccessExpression arg)
Overrides:
preNonStaticFieldAccessExpression in class TreeWalker

preStaticFieldAccessExpression

public boolean preStaticFieldAccessExpression(ExpressionFactory.StaticFieldAccessExpression arg)
Overrides:
preStaticFieldAccessExpression in class TreeWalker

preArrayIndexExpression

public boolean preArrayIndexExpression(ExpressionFactory.ArrayIndexExpression arg)
Overrides:
preArrayIndexExpression in class TreeWalker

preVariable

public boolean preVariable(Variable arg)
Overrides:
preVariable in class TreeWalker

preBinaryOperatorExpression

public boolean preBinaryOperatorExpression(ExpressionFactory.BinaryOperatorExpression arg)
Overrides:
preBinaryOperatorExpression in class TreeWalker

binaryOperatorExpressionBeforeRight

public void binaryOperatorExpressionBeforeRight(ExpressionFactory.BinaryOperatorExpression arg)
Overrides:
binaryOperatorExpressionBeforeRight in class TreeWalker

postBinaryOperatorExpression

public void postBinaryOperatorExpression(ExpressionFactory.BinaryOperatorExpression arg)
Overrides:
postBinaryOperatorExpression in class TreeWalker


Copyright © 2013 Oracle. All Rights Reserved.