at.dms.kjc
Class ReplacingVisitor

java.lang.Object
  extended by at.dms.kjc.EmptyAttributeVisitor
      extended by at.dms.kjc.ReplacingVisitor
All Implemented Interfaces:
Constants, AttributeVisitor<Object>
Direct Known Subclasses:
SLIRReplacingVisitor

public class ReplacingVisitor
extends EmptyAttributeVisitor

This class descends through the tree, and tests if any of the returned STATEMENTS or EXPRESSIONS are different from old ones in the tree. If a difference is detected, then the new statement is substituted for the original. It would be desirable to extend this class so that it's a complete replacing visitor--i.e., it also replaces everything else that is modified in the tree. However, this would be kind of tedious and we haven't had need for it yet--but it you end up needing that code, let's put it in here instead of in a class that's specific to some compiler pass.


Field Summary
 
Fields inherited from class at.dms.kjc.EmptyAttributeVisitor
forwards
 
Fields inherited from interface at.dms.kjc.Constants
CMP_VERSION, JAV_CLASS, JAV_CLONE, JAV_CLONEABLE, JAV_CONSTRUCTOR, JAV_ERROR, JAV_EXCEPTION, JAV_INIT, JAV_LENGTH, JAV_NAME_SEPARATOR, JAV_OBJECT, JAV_OUTER_THIS, JAV_RUNTIME, JAV_RUNTIME_EXCEPTION, JAV_STATIC_INIT, JAV_STRING, JAV_STRINGBUFFER, JAV_THIS, JAV_THROWABLE, OPE_BAND, OPE_BNOT, OPE_BOR, OPE_BSR, OPE_BXOR, OPE_EQ, OPE_GE, OPE_GT, OPE_LE, OPE_LNOT, OPE_LT, OPE_MINUS, OPE_NE, OPE_PERCENT, OPE_PLUS, OPE_POSTDEC, OPE_POSTINC, OPE_PREDEC, OPE_PREINC, OPE_SIMPLE, OPE_SL, OPE_SLASH, OPE_SR, OPE_STAR, TID_ARRAY, TID_BIT, TID_BOOLEAN, TID_BYTE, TID_CHAR, TID_CLASS, TID_DOUBLE, TID_FLOAT, TID_INT, TID_LONG, TID_SHORT, TID_VECTOR, TID_VOID, VECTOR_EMPTY
 
Fields inherited from interface at.dms.classfile.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INLINE, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ATT_CODE, ATT_CONSTANTVALUE, ATT_DEPRECATED, ATT_EXCEPTIONS, ATT_GENERIC, ATT_INNERCLASSES, ATT_LINENUMBERTABLE, ATT_LOCALVARIABLETABLE, ATT_SOURCEFILE, ATT_SYNTHETIC, CST_CLASS, CST_DOUBLE, CST_FIELD, CST_FLOAT, CST_INTEGER, CST_INTERFACEMETHOD, CST_LONG, CST_METHOD, CST_NAMEANDTYPE, CST_STRING, CST_UTF8, ENV_DEBUG_MODE, ENV_USE_CACHE, JAVA_MAGIC, JAVA_MAJOR, JAVA_MINOR, MAX_CODE_PER_METHOD, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, POO_ASCII_CONSTANT, POO_CLASS_CONSTANT, POO_DOUBLE_CONSTANT, POO_FLOAT_CONSTANT, POO_INTEGER_CONSTANT, POO_LONG_CONSTANT, POO_NAT_CONSTANT, POO_REF_CONSTANT, POO_STRING_CONSTANT, TYP_ADDRESS, TYP_DOUBLE, TYP_FLOAT, TYP_INT, TYP_LONG, TYP_REFERENCE, TYP_VOID
 
Constructor Summary
ReplacingVisitor()
          Creates a new one of these.
 
Method Summary
 Object visitArgs(JExpression[] args)
          prints an array length expression
 Object visitArrayAccessExpression(JArrayAccessExpression self, JExpression prefix, JExpression accessor)
          prints an array length expression
 Object visitArrayLengthExpression(JArrayLengthExpression self, JExpression prefix)
          prints an array length expression
 Object visitAssignmentExpression(JAssignmentExpression self, JExpression left, JExpression right)
          prints an assignment expression
 Object visitBinaryExpression(JBinaryExpression self, String oper, JExpression left, JExpression right)
          prints an array allocator expression
 Object visitBitwiseComplementExpression(JUnaryExpression self, JExpression expr)
          prints a bitwise complement expression
 Object visitBitwiseExpression(JBitwiseExpression self, int oper, JExpression left, JExpression right)
          prints a compound assignment expression
 Object visitBlockStatement(JBlock self, JavaStyleComment[] comments)
          prints an expression statement
 Object visitCastExpression(JCastExpression self, JExpression expr, CType type)
          prints a cast expression
 Object visitCompoundAssignmentExpression(JCompoundAssignmentExpression self, int oper, JExpression left, JExpression right)
          prints a compound expression
 Object visitCompoundStatement(JCompoundStatement self, JStatement[] body)
          prints a compound statement
 Object visitConditionalExpression(JConditionalExpression self, JExpression cond, JExpression left, JExpression right)
          prints a conditional expression
 Object visitDoStatement(JDoStatement self, JExpression cond, JStatement body)
          prints a do statement
 Object visitEmittedTextExpression(JEmittedTextExpression self, Object[] parts)
          Replaces all replacable subexpressions of expression contaiing uninterpretable text
 Object visitEqualityExpression(JEqualityExpression self, boolean equal, JExpression left, JExpression right)
          prints an equality expression
 Object visitExpressionListStatement(JExpressionListStatement self, JExpression[] expr)
          prints an expression list statement
 Object visitExpressionStatement(JExpressionStatement self, JExpression expr)
          prints an expression statement
 Object visitFieldDeclaration(JFieldDeclaration self, int modifiers, CType type, String ident, JExpression expr)
          prints a field declaration
 Object visitFieldExpression(JFieldAccessExpression self, JExpression left, String ident)
          prints a field expression
 Object visitFormalParameters(JFormalParameter self, boolean isFinal, CType type, String ident)
          prints an array length expression
 Object visitForStatement(JForStatement self, JStatement init, JExpression cond, JStatement incr, JStatement body)
          visits a for statement
 Object visitIfStatement(JIfStatement self, JExpression cond, JStatement thenClause, JStatement elseClause)
          prints a if statement
 Object visitInstanceofExpression(JInstanceofExpression self, JExpression expr, CType dest)
          prints an instanceof expression
 Object visitLabeledStatement(JLabeledStatement self, String label, JStatement stmt)
          prints a labeled statement
 Object visitLogicalComplementExpression(JUnaryExpression self, JExpression expr)
          prints a logical complement expression
 Object visitMethodCallExpression(JMethodCallExpression self, JExpression prefix, String ident, JExpression[] args)
          prints a method call expression
 Object visitNameExpression(JNameExpression self, JExpression prefix, String ident)
          prints a name expression
 Object visitNewArrayExpression(JNewArrayExpression self, CType type, JExpression[] dims, JArrayInitializer init)
          prints an array allocator expression
 Object visitParenthesedExpression(JParenthesedExpression self, JExpression expr)
          prints a parenthesed expression
 Object visitPostfixExpression(JPostfixExpression self, int oper, JExpression expr)
          prints a postfix expression
 Object visitPrefixExpression(JPrefixExpression self, int oper, JExpression expr)
          prints a prefix expression
 Object visitQualifiedAnonymousCreation(JQualifiedAnonymousCreation self, JExpression prefix, String ident, JExpression[] params, JClassDeclaration decl)
          Prints an unqualified anonymous class instance creation expression.
 Object visitQualifiedInstanceCreation(JQualifiedInstanceCreation self, JExpression prefix, String ident, JExpression[] params)
          Prints an unqualified instance creation expression.
 Object visitRelationalExpression(JRelationalExpression self, int oper, JExpression left, JExpression right)
          prints a shift expressiona
 Object visitReturnStatement(JReturnStatement self, JExpression expr)
          prints a return statement
 Object visitShiftExpression(JShiftExpression self, int oper, JExpression left, JExpression right)
          prints a shift expression
 Object visitSwitchGroup(JSwitchGroup self, JSwitchLabel[] labels, JStatement[] stmts)
          prints an array length expression
 Object visitSwitchLabel(JSwitchLabel self, JExpression expr)
          prints an array length expression
 Object visitSwitchStatement(JSwitchStatement self, JExpression expr, JSwitchGroup[] body)
          prints a switch statement
 Object visitSynchronizedStatement(JSynchronizedStatement self, JExpression cond, JStatement body)
          prints a synchronized statement
 Object visitThisExpression(JThisExpression self, JExpression prefix)
          prints a this expression
 Object visitThrowStatement(JThrowStatement self, JExpression expr)
          prints a throw statement
 Object visitUnaryMinusExpression(JUnaryExpression self, JExpression expr)
          prints an unary minus expression
 Object visitUnaryPlusExpression(JUnaryExpression self, JExpression expr)
          prints an unary plus expression
 Object visitUnaryPromoteExpression(JUnaryPromote self, JExpression expr, CType type)
          prints a cast expression
 Object visitVariableDeclarationStatement(JVariableDeclarationStatement self, JVariableDefinition[] vars)
          prints a variable declaration statement
 Object visitVariableDefinition(JVariableDefinition self, int modifiers, CType type, String ident, JExpression expr)
          prints a variable declaration statement
 Object visitWhileStatement(JWhileStatement self, JExpression cond, JStatement body)
          prints a while statement
 
Methods inherited from class at.dms.kjc.EmptyAttributeVisitor
visitArrayInitializer, visitBooleanLiteral, visitBreakStatement, visitByteLiteral, visitCatchClause, visitCharLiteral, visitClassBody, visitClassDeclaration, visitClassExpression, visitClassImport, visitComment, visitComments, visitCompilationUnit, visitConstructorCall, visitConstructorDeclaration, visitContinueStatement, visitDoubleLiteral, visitEmptyStatement, visitFloatLiteral, visitInnerClassDeclaration, visitInterfaceDeclaration, visitIntLiteral, visitJavadoc, visitLocalVariableExpression, visitLongLiteral, visitMethodDeclaration, visitNullLiteral, visitPackageImport, visitPackageName, visitShortLiteral, visitStringLiteral, visitSuperExpression, visitTryCatchStatement, visitTryFinallyStatement, visitTypeDeclarationStatement, visitTypeNameExpression, visitUnqualifiedAnonymousCreation, visitUnqualifiedInstanceCreation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReplacingVisitor

public ReplacingVisitor()
Creates a new one of these.

Method Detail

visitLabeledStatement

public Object visitLabeledStatement(JLabeledStatement self,
                                    String label,
                                    JStatement stmt)
prints a labeled statement

Specified by:
visitLabeledStatement in interface AttributeVisitor<Object>
Overrides:
visitLabeledStatement in class EmptyAttributeVisitor

visitIfStatement

public Object visitIfStatement(JIfStatement self,
                               JExpression cond,
                               JStatement thenClause,
                               JStatement elseClause)
prints a if statement

Specified by:
visitIfStatement in interface AttributeVisitor<Object>
Overrides:
visitIfStatement in class EmptyAttributeVisitor

visitCompoundStatement

public Object visitCompoundStatement(JCompoundStatement self,
                                     JStatement[] body)
prints a compound statement

Specified by:
visitCompoundStatement in interface AttributeVisitor<Object>
Overrides:
visitCompoundStatement in class EmptyAttributeVisitor

visitDoStatement

public Object visitDoStatement(JDoStatement self,
                               JExpression cond,
                               JStatement body)
prints a do statement

Specified by:
visitDoStatement in interface AttributeVisitor<Object>
Overrides:
visitDoStatement in class EmptyAttributeVisitor

visitBlockStatement

public Object visitBlockStatement(JBlock self,
                                  JavaStyleComment[] comments)
prints an expression statement

Specified by:
visitBlockStatement in interface AttributeVisitor<Object>
Overrides:
visitBlockStatement in class EmptyAttributeVisitor

visitSwitchGroup

public Object visitSwitchGroup(JSwitchGroup self,
                               JSwitchLabel[] labels,
                               JStatement[] stmts)
prints an array length expression

Specified by:
visitSwitchGroup in interface AttributeVisitor<Object>
Overrides:
visitSwitchGroup in class EmptyAttributeVisitor

visitForStatement

public Object visitForStatement(JForStatement self,
                                JStatement init,
                                JExpression cond,
                                JStatement incr,
                                JStatement body)
visits a for statement

Specified by:
visitForStatement in interface AttributeVisitor<Object>
Overrides:
visitForStatement in class EmptyAttributeVisitor

visitFieldDeclaration

public Object visitFieldDeclaration(JFieldDeclaration self,
                                    int modifiers,
                                    CType type,
                                    String ident,
                                    JExpression expr)
prints a field declaration

Specified by:
visitFieldDeclaration in interface AttributeVisitor<Object>
Overrides:
visitFieldDeclaration in class EmptyAttributeVisitor

visitWhileStatement

public Object visitWhileStatement(JWhileStatement self,
                                  JExpression cond,
                                  JStatement body)
prints a while statement

Specified by:
visitWhileStatement in interface AttributeVisitor<Object>
Overrides:
visitWhileStatement in class EmptyAttributeVisitor

visitVariableDeclarationStatement

public Object visitVariableDeclarationStatement(JVariableDeclarationStatement self,
                                                JVariableDefinition[] vars)
prints a variable declaration statement

Specified by:
visitVariableDeclarationStatement in interface AttributeVisitor<Object>
Overrides:
visitVariableDeclarationStatement in class EmptyAttributeVisitor

visitVariableDefinition

public Object visitVariableDefinition(JVariableDefinition self,
                                      int modifiers,
                                      CType type,
                                      String ident,
                                      JExpression expr)
prints a variable declaration statement

Specified by:
visitVariableDefinition in interface AttributeVisitor<Object>
Overrides:
visitVariableDefinition in class EmptyAttributeVisitor

visitThrowStatement

public Object visitThrowStatement(JThrowStatement self,
                                  JExpression expr)
prints a throw statement

Specified by:
visitThrowStatement in interface AttributeVisitor<Object>
Overrides:
visitThrowStatement in class EmptyAttributeVisitor

visitSynchronizedStatement

public Object visitSynchronizedStatement(JSynchronizedStatement self,
                                         JExpression cond,
                                         JStatement body)
prints a synchronized statement

Specified by:
visitSynchronizedStatement in interface AttributeVisitor<Object>
Overrides:
visitSynchronizedStatement in class EmptyAttributeVisitor

visitSwitchStatement

public Object visitSwitchStatement(JSwitchStatement self,
                                   JExpression expr,
                                   JSwitchGroup[] body)
prints a switch statement

Specified by:
visitSwitchStatement in interface AttributeVisitor<Object>
Overrides:
visitSwitchStatement in class EmptyAttributeVisitor

visitReturnStatement

public Object visitReturnStatement(JReturnStatement self,
                                   JExpression expr)
prints a return statement

Specified by:
visitReturnStatement in interface AttributeVisitor<Object>
Overrides:
visitReturnStatement in class EmptyAttributeVisitor

visitExpressionStatement

public Object visitExpressionStatement(JExpressionStatement self,
                                       JExpression expr)
prints an expression statement

Specified by:
visitExpressionStatement in interface AttributeVisitor<Object>
Overrides:
visitExpressionStatement in class EmptyAttributeVisitor

visitExpressionListStatement

public Object visitExpressionListStatement(JExpressionListStatement self,
                                           JExpression[] expr)
prints an expression list statement

Specified by:
visitExpressionListStatement in interface AttributeVisitor<Object>
Overrides:
visitExpressionListStatement in class EmptyAttributeVisitor

visitUnaryPlusExpression

public Object visitUnaryPlusExpression(JUnaryExpression self,
                                       JExpression expr)
prints an unary plus expression

Specified by:
visitUnaryPlusExpression in interface AttributeVisitor<Object>
Overrides:
visitUnaryPlusExpression in class EmptyAttributeVisitor

visitUnaryMinusExpression

public Object visitUnaryMinusExpression(JUnaryExpression self,
                                        JExpression expr)
prints an unary minus expression

Specified by:
visitUnaryMinusExpression in interface AttributeVisitor<Object>
Overrides:
visitUnaryMinusExpression in class EmptyAttributeVisitor

visitBitwiseComplementExpression

public Object visitBitwiseComplementExpression(JUnaryExpression self,
                                               JExpression expr)
prints a bitwise complement expression

Specified by:
visitBitwiseComplementExpression in interface AttributeVisitor<Object>
Overrides:
visitBitwiseComplementExpression in class EmptyAttributeVisitor

visitLogicalComplementExpression

public Object visitLogicalComplementExpression(JUnaryExpression self,
                                               JExpression expr)
prints a logical complement expression

Specified by:
visitLogicalComplementExpression in interface AttributeVisitor<Object>
Overrides:
visitLogicalComplementExpression in class EmptyAttributeVisitor

visitThisExpression

public Object visitThisExpression(JThisExpression self,
                                  JExpression prefix)
prints a this expression

Specified by:
visitThisExpression in interface AttributeVisitor<Object>
Overrides:
visitThisExpression in class EmptyAttributeVisitor

visitShiftExpression

public Object visitShiftExpression(JShiftExpression self,
                                   int oper,
                                   JExpression left,
                                   JExpression right)
prints a shift expression

Specified by:
visitShiftExpression in interface AttributeVisitor<Object>
Overrides:
visitShiftExpression in class EmptyAttributeVisitor

visitRelationalExpression

public Object visitRelationalExpression(JRelationalExpression self,
                                        int oper,
                                        JExpression left,
                                        JExpression right)
prints a shift expressiona

Specified by:
visitRelationalExpression in interface AttributeVisitor<Object>
Overrides:
visitRelationalExpression in class EmptyAttributeVisitor

visitPrefixExpression

public Object visitPrefixExpression(JPrefixExpression self,
                                    int oper,
                                    JExpression expr)
prints a prefix expression

Specified by:
visitPrefixExpression in interface AttributeVisitor<Object>
Overrides:
visitPrefixExpression in class EmptyAttributeVisitor

visitPostfixExpression

public Object visitPostfixExpression(JPostfixExpression self,
                                     int oper,
                                     JExpression expr)
prints a postfix expression

Specified by:
visitPostfixExpression in interface AttributeVisitor<Object>
Overrides:
visitPostfixExpression in class EmptyAttributeVisitor

visitParenthesedExpression

public Object visitParenthesedExpression(JParenthesedExpression self,
                                         JExpression expr)
prints a parenthesed expression

Specified by:
visitParenthesedExpression in interface AttributeVisitor<Object>
Overrides:
visitParenthesedExpression in class EmptyAttributeVisitor

visitQualifiedAnonymousCreation

public Object visitQualifiedAnonymousCreation(JQualifiedAnonymousCreation self,
                                              JExpression prefix,
                                              String ident,
                                              JExpression[] params,
                                              JClassDeclaration decl)
Prints an unqualified anonymous class instance creation expression.

Specified by:
visitQualifiedAnonymousCreation in interface AttributeVisitor<Object>
Overrides:
visitQualifiedAnonymousCreation in class EmptyAttributeVisitor

visitQualifiedInstanceCreation

public Object visitQualifiedInstanceCreation(JQualifiedInstanceCreation self,
                                             JExpression prefix,
                                             String ident,
                                             JExpression[] params)
Prints an unqualified instance creation expression.

Specified by:
visitQualifiedInstanceCreation in interface AttributeVisitor<Object>
Overrides:
visitQualifiedInstanceCreation in class EmptyAttributeVisitor

visitFormalParameters

public Object visitFormalParameters(JFormalParameter self,
                                    boolean isFinal,
                                    CType type,
                                    String ident)
prints an array length expression

Specified by:
visitFormalParameters in interface AttributeVisitor<Object>
Overrides:
visitFormalParameters in class EmptyAttributeVisitor

visitArgs

public Object visitArgs(JExpression[] args)
prints an array length expression

Overrides:
visitArgs in class EmptyAttributeVisitor

visitNewArrayExpression

public Object visitNewArrayExpression(JNewArrayExpression self,
                                      CType type,
                                      JExpression[] dims,
                                      JArrayInitializer init)
prints an array allocator expression

Specified by:
visitNewArrayExpression in interface AttributeVisitor<Object>
Overrides:
visitNewArrayExpression in class EmptyAttributeVisitor

visitNameExpression

public Object visitNameExpression(JNameExpression self,
                                  JExpression prefix,
                                  String ident)
prints a name expression

Specified by:
visitNameExpression in interface AttributeVisitor<Object>
Overrides:
visitNameExpression in class EmptyAttributeVisitor

visitBinaryExpression

public Object visitBinaryExpression(JBinaryExpression self,
                                    String oper,
                                    JExpression left,
                                    JExpression right)
prints an array allocator expression

Specified by:
visitBinaryExpression in interface AttributeVisitor<Object>
Overrides:
visitBinaryExpression in class EmptyAttributeVisitor

visitMethodCallExpression

public Object visitMethodCallExpression(JMethodCallExpression self,
                                        JExpression prefix,
                                        String ident,
                                        JExpression[] args)
prints a method call expression

Specified by:
visitMethodCallExpression in interface AttributeVisitor<Object>
Overrides:
visitMethodCallExpression in class EmptyAttributeVisitor

visitInstanceofExpression

public Object visitInstanceofExpression(JInstanceofExpression self,
                                        JExpression expr,
                                        CType dest)
prints an instanceof expression

Specified by:
visitInstanceofExpression in interface AttributeVisitor<Object>
Overrides:
visitInstanceofExpression in class EmptyAttributeVisitor

visitEqualityExpression

public Object visitEqualityExpression(JEqualityExpression self,
                                      boolean equal,
                                      JExpression left,
                                      JExpression right)
prints an equality expression

Specified by:
visitEqualityExpression in interface AttributeVisitor<Object>
Overrides:
visitEqualityExpression in class EmptyAttributeVisitor

visitConditionalExpression

public Object visitConditionalExpression(JConditionalExpression self,
                                         JExpression cond,
                                         JExpression left,
                                         JExpression right)
prints a conditional expression

Specified by:
visitConditionalExpression in interface AttributeVisitor<Object>
Overrides:
visitConditionalExpression in class EmptyAttributeVisitor

visitCompoundAssignmentExpression

public Object visitCompoundAssignmentExpression(JCompoundAssignmentExpression self,
                                                int oper,
                                                JExpression left,
                                                JExpression right)
prints a compound expression

Specified by:
visitCompoundAssignmentExpression in interface AttributeVisitor<Object>
Overrides:
visitCompoundAssignmentExpression in class EmptyAttributeVisitor

visitFieldExpression

public Object visitFieldExpression(JFieldAccessExpression self,
                                   JExpression left,
                                   String ident)
prints a field expression

Specified by:
visitFieldExpression in interface AttributeVisitor<Object>
Overrides:
visitFieldExpression in class EmptyAttributeVisitor

visitCastExpression

public Object visitCastExpression(JCastExpression self,
                                  JExpression expr,
                                  CType type)
prints a cast expression

Specified by:
visitCastExpression in interface AttributeVisitor<Object>
Overrides:
visitCastExpression in class EmptyAttributeVisitor

visitUnaryPromoteExpression

public Object visitUnaryPromoteExpression(JUnaryPromote self,
                                          JExpression expr,
                                          CType type)
prints a cast expression

Specified by:
visitUnaryPromoteExpression in interface AttributeVisitor<Object>
Overrides:
visitUnaryPromoteExpression in class EmptyAttributeVisitor

visitBitwiseExpression

public Object visitBitwiseExpression(JBitwiseExpression self,
                                     int oper,
                                     JExpression left,
                                     JExpression right)
prints a compound assignment expression

Specified by:
visitBitwiseExpression in interface AttributeVisitor<Object>
Overrides:
visitBitwiseExpression in class EmptyAttributeVisitor

visitAssignmentExpression

public Object visitAssignmentExpression(JAssignmentExpression self,
                                        JExpression left,
                                        JExpression right)
prints an assignment expression

Specified by:
visitAssignmentExpression in interface AttributeVisitor<Object>
Overrides:
visitAssignmentExpression in class EmptyAttributeVisitor

visitArrayLengthExpression

public Object visitArrayLengthExpression(JArrayLengthExpression self,
                                         JExpression prefix)
prints an array length expression

Specified by:
visitArrayLengthExpression in interface AttributeVisitor<Object>
Overrides:
visitArrayLengthExpression in class EmptyAttributeVisitor

visitArrayAccessExpression

public Object visitArrayAccessExpression(JArrayAccessExpression self,
                                         JExpression prefix,
                                         JExpression accessor)
prints an array length expression

Specified by:
visitArrayAccessExpression in interface AttributeVisitor<Object>
Overrides:
visitArrayAccessExpression in class EmptyAttributeVisitor

visitEmittedTextExpression

public Object visitEmittedTextExpression(JEmittedTextExpression self,
                                         Object[] parts)
Replaces all replacable subexpressions of expression contaiing uninterpretable text

Specified by:
visitEmittedTextExpression in interface AttributeVisitor<Object>
Overrides:
visitEmittedTextExpression in class EmptyAttributeVisitor
parts - a list of embedded objects which might include JExpressions.

visitSwitchLabel

public Object visitSwitchLabel(JSwitchLabel self,
                               JExpression expr)
prints an array length expression

Specified by:
visitSwitchLabel in interface AttributeVisitor<Object>
Overrides:
visitSwitchLabel in class EmptyAttributeVisitor