at.dms.kjc
Class KjcPrettyPrinter

java.lang.Object
  |
  +--at.dms.util.Utils
        |
        +--at.dms.kjc.KjcPrettyPrinter
All Implemented Interfaces:
Constants, Constants, KjcVisitor

public class KjcPrettyPrinter
extends Utils
implements Constants, KjcVisitor

This class implements a Java pretty printer.


Field Summary
protected  boolean forInit
           
protected  boolean nl
           
protected  TabbedPrintWriter p
           
protected  int pos
           
protected  int TAB_SIZE
           
protected  int WIDTH
           
 
Fields inherited from class at.dms.util.Utils
DBG_LEVEL_HIGH, DBG_LEVEL_LOW, DBG_LEVEL_NO
 
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_BOOLEAN, TID_BYTE, TID_CHAR, TID_CLASS, TID_DOUBLE, TID_FLOAT, TID_INT, TID_LONG, TID_SHORT, TID_VOID
 
Fields inherited from interface at.dms.classfile.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_NBR_FLAGS, 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
KjcPrettyPrinter()
          Construct a pretty printer object for java code.
KjcPrettyPrinter(java.lang.String fileName)
          Construct a pretty printer object for java code.
KjcPrettyPrinter(TabbedPrintWriter p)
          construct a pretty printer object for java code
 
Method Summary
 void close()
          Close the stream at the end
protected  void newLine()
           
protected  void print(boolean s)
           
protected  void print(char s)
           
protected  void print(double s)
           
protected  void print(int s)
           
protected  void print(java.lang.Object s)
           
protected  void print(java.lang.String s)
           
 void setPos(int pos)
           
 void visitArgs(JExpression[] args)
          prints an argument list
 void visitArrayAccessExpression(JArrayAccessExpression self, JExpression prefix, JExpression accessor)
          prints an array length expression
 void visitArrayDimsAndInit(JArrayDimsAndInits self, JExpression[] dims, JArrayInitializer init)
          prints an array initializer expression
 void visitArrayInitializer(JArrayInitializer self, JExpression[] elems)
          prints an array initializer expression
 void visitArrayLengthExpression(JArrayLengthExpression self, JExpression prefix)
          prints an array length expression
 void visitAssignmentExpression(JAssignmentExpression self, JExpression left, JExpression right)
          prints an assignment expression
 void visitBinaryExpression(JBinaryExpression self, java.lang.String oper, JExpression left, JExpression right)
          prints an array allocator expression
 void visitBitwiseExpression(JBitwiseExpression self, int oper, JExpression left, JExpression right)
          prints a compound assignment expression
 void visitBlockStatement(JBlock self, JStatement[] body, JavaStyleComment[] comments)
          prints an expression statement
 void visitBooleanLiteral(boolean value)
          prints a boolean literal
 void visitBreakStatement(JBreakStatement self, java.lang.String label)
          prints a break statement
 void visitByteLiteral(byte value)
          prints a byte literal
 void visitCastExpression(JCastExpression self, JExpression expr, CType type)
          prints a cast expression
 void visitCatchClause(JCatchClause self, JFormalParameter exception, JBlock body)
          prints an array length expression
 void visitCharLiteral(char value)
          prints a character literal
 void visitClassBody(JTypeDeclaration[] decls, JMethodDeclaration[] methods, JPhylum[] body)
          visits a class body
 void visitClassDeclaration(JClassDeclaration self, int modifiers, java.lang.String ident, java.lang.String superName, CClassType[] interfaces, JPhylum[] body, JMethodDeclaration[] methods, JTypeDeclaration[] decls)
          prints a class declaration
 void visitClassExpression(JClassExpression self, CType type)
          prints a class expression
 void visitClassImport(java.lang.String name)
          prints a class import line.
 void visitComment(JavaStyleComment comment)
          prints an array length expression
 void visitComments(JavaStyleComment[] comments)
          prints an array length expression
 void visitCompilationUnit(JCompilationUnit self, JPackageName packageName, JPackageImport[] importedPackages, JClassImport[] importedClasses, JTypeDeclaration[] typeDeclarations)
          prints a compilation unit.
 void visitCompoundAssignmentExpression(JCompoundAssignmentExpression self, int oper, JExpression left, JExpression right)
          prints a compound expression
 void visitCompoundStatement(JCompoundStatement self, JStatement[] body)
          prints a compound statement
 void visitCompoundStatement(JStatement[] body)
          prints a compound statement
 void visitConditionalExpression(JConditionalExpression self, JExpression cond, JExpression left, JExpression right)
          prints a conditional expression
 void visitConstructorDeclaration(JConstructorDeclaration self, int modifiers, java.lang.String ident, JFormalParameter[] parameters, CClassType[] exceptions, JBlock body)
          prints a method declaration
 void visitContinueStatement(JContinueStatement self, java.lang.String label)
          prints a continue statement
 void visitDoStatement(JDoStatement self, JExpression cond, JStatement body)
          prints a do statement
 void visitDoubleLiteral(double value)
          prints a double literal
 void visitEmptyStatement(JEmptyStatement self)
          prints a empty statement
 void visitEqualityExpression(JEqualityExpression self, int oper, JExpression left, JExpression right)
          prints an equality expression
 void visitExplicitConstructorInvocation(JExplicitConstructorInvocation self, JExpression prefix, java.lang.String ident, JExpression[] params)
          prints an explicit constructor invocation
 void visitExpressionListStatement(JExpressionListStatement self, JExpression[] expr)
          prints an expression list statement
 void visitExpressionStatement(JExpressionStatement self, JExpression expr)
          prints an expression statement
 void visitFieldDeclaration(JFieldDeclaration self, int modifiers, CType type, java.lang.String ident, JExpression expr)
          prints a field declaration
 void visitFieldExpression(JClassFieldExpression self, JExpression left, java.lang.String ident)
          prints a field expression
 void visitFloatLiteral(float value)
          prints a float literal
 void visitFormalParameters(JFormalParameter self, boolean isFinal, CType type, java.lang.String ident)
          prints a list of formal parameters to a method
 void visitForStatement(JForStatement self, JStatement init, JExpression cond, JStatement incr, JStatement body)
          prints a for statement
 void visitIfStatement(JIfStatement self, JExpression cond, JStatement thenClause, JStatement elseClause)
          prints a if statement
 void visitInnerClassDeclaration(JClassDeclaration self, int modifiers, java.lang.String ident, java.lang.String superName, CClassType[] interfaces, JTypeDeclaration[] decls, JPhylum[] body, JMethodDeclaration[] methods)
          prints a class declaration
 void visitInstanceofExpression(JInstanceofExpression self, JExpression expr, CType dest)
          prints an instanceof expression
 void visitInterfaceDeclaration(JInterfaceDeclaration self, int modifiers, java.lang.String ident, CClassType[] interfaces, JPhylum[] body, JMethodDeclaration[] methods)
          prints an interface declaration
 void visitIntLiteral(int value)
          prints a int literal
 void visitJavadoc(JavadocComment comment)
          prints an array length expression
 void visitLabeledStatement(JLabeledStatement self, java.lang.String label, JStatement stmt)
          prints a labeled statement
 void visitLocalVariableExpression(JLocalVariableExpression self, java.lang.String ident)
          prints a local variable expression
 void visitLongLiteral(long value)
          prints a long literal
 void visitMethodCallExpression(JMethodCallExpression self, JExpression prefix, java.lang.String ident, JExpression[] args)
          prints a method call expression
 void visitMethodDeclaration(JMethodDeclaration self, int modifiers, CType returnType, java.lang.String ident, JFormalParameter[] parameters, CClassType[] exceptions, JBlock body)
          prints a method declaration
 void visitNameExpression(JNameExpression self, JExpression prefix, java.lang.String ident)
          prints a name expression
 void visitNewArrayExpression(JNewArrayExpression self, CType type, JArrayDimsAndInits dims)
          prints an array allocator expression
 void visitNewObjectExpression(JNewObjectExpression self, CClassType type, JExpression[] params, JClassDeclaration innerBody)
          prints an object allocator expression
 void visitNullLiteral()
          prints a null literal
 void visitPackageImport(java.lang.String name)
          prints a package import line
 void visitPackageName(java.lang.String name)
          prints a package name declaration
 void visitParenthesedExpression(JParenthesedExpression self, JExpression expr)
          prints a parenthesed expression
 void visitPostfixExpression(JPostfixExpression self, int oper, JExpression expr)
          prints a postfix expression
 void visitPrefixExpression(JPrefixExpression self, int oper, JExpression expr)
          prints a prefix expression
 void visitRelationalExpression(JRelationalExpression self, int oper, JExpression left, JExpression right)
          prints a shift expressiona
 void visitReturnStatement(JReturnStatement self, JExpression expr)
          prints a return statement
 void visitShiftExpression(JShiftExpression self, int oper, JExpression left, JExpression right)
          prints a shift expression
 void visitShortLiteral(short value)
          prints a short literal
 void visitStringLiteral(java.lang.String value)
          prints a string literal
 void visitSuperExpression(JSuperExpression self)
          prints a super expression
 void visitSwitchGroup(JSwitchGroup self, JSwitchLabel[] labels, JStatement[] stmts)
          prints an array length expression
 void visitSwitchLabel(JSwitchLabel self, JExpression expr)
          prints an array length expression
 void visitSwitchStatement(JSwitchStatement self, JExpression expr, JSwitchGroup[] body)
          prints a switch statement
 void visitSynchronizedStatement(JSynchronizedStatement self, JExpression cond, JStatement body)
          prints a synchronized statement
 void visitThisExpression(JThisExpression self, JExpression prefix)
          prints a this expression
 void visitThrowStatement(JThrowStatement self, JExpression expr)
          prints a throw statement
 void visitTryCatchStatement(JTryCatchStatement self, JBlock tryClause, JCatchClause[] catchClauses)
          prints a try-catch statement
 void visitTryFinallyStatement(JTryFinallyStatement self, JBlock tryClause, JBlock finallyClause)
          prints a try-finally statement
 void visitTypeDeclarationStatement(JTypeDeclarationStatement self, JTypeDeclaration decl)
          prints a type declaration statement
 void visitTypeNameExpression(JTypeNameExpression self, CType type)
          prints a type name expression
 void visitUnaryExpression(JUnaryExpression self, int oper, JExpression expr)
          prints an unary expression
 void visitUnaryPromoteExpression(JUnaryPromote self, JExpression expr, CType type)
          prints a cast expression
 void visitVariableDeclarationStatement(JVariableDeclarationStatement self, JVariableDefinition[] vars)
          prints a variable declaration statement
 void visitVariableDefinition(JVariableDefinition self, int modifiers, CType type, java.lang.String ident, JExpression expr)
          prints a variable declaration statement
 void visitWhileStatement(JWhileStatement self, JExpression cond, JStatement body)
          prints a while statement
 
Methods inherited from class at.dms.util.Utils
assert, assert, fail, fail, hasFlag, hasMoreThanOneFlag, hasOtherFlags, splitQualifiedName, splitQualifiedName, vectorToArray, vectorToIntArray
 
Methods inherited from class java.lang.Object
, clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

forInit

protected boolean forInit

TAB_SIZE

protected int TAB_SIZE

WIDTH

protected int WIDTH

pos

protected int pos

p

protected TabbedPrintWriter p

nl

protected boolean nl
Constructor Detail

KjcPrettyPrinter

public KjcPrettyPrinter()
Construct a pretty printer object for java code.

KjcPrettyPrinter

public KjcPrettyPrinter(java.lang.String fileName)
Construct a pretty printer object for java code.
Parameters:
fileName - the file into the code is generated

KjcPrettyPrinter

public KjcPrettyPrinter(TabbedPrintWriter p)
construct a pretty printer object for java code
Parameters:
fileName - the file into the code is generated
Method Detail

close

public void close()
Close the stream at the end

setPos

public void setPos(int pos)

visitCompilationUnit

public void visitCompilationUnit(JCompilationUnit self,
                                 JPackageName packageName,
                                 JPackageImport[] importedPackages,
                                 JClassImport[] importedClasses,
                                 JTypeDeclaration[] typeDeclarations)
prints a compilation unit.
Specified by:
visitCompilationUnit in interface KjcVisitor

visitClassDeclaration

public void visitClassDeclaration(JClassDeclaration self,
                                  int modifiers,
                                  java.lang.String ident,
                                  java.lang.String superName,
                                  CClassType[] interfaces,
                                  JPhylum[] body,
                                  JMethodDeclaration[] methods,
                                  JTypeDeclaration[] decls)
prints a class declaration
Specified by:
visitClassDeclaration in interface KjcVisitor

visitClassBody

public void visitClassBody(JTypeDeclaration[] decls,
                           JMethodDeclaration[] methods,
                           JPhylum[] body)
Description copied from interface: KjcVisitor
visits a class body
Specified by:
visitClassBody in interface KjcVisitor

visitInnerClassDeclaration

public void visitInnerClassDeclaration(JClassDeclaration self,
                                       int modifiers,
                                       java.lang.String ident,
                                       java.lang.String superName,
                                       CClassType[] interfaces,
                                       JTypeDeclaration[] decls,
                                       JPhylum[] body,
                                       JMethodDeclaration[] methods)
prints a class declaration
Specified by:
visitInnerClassDeclaration in interface KjcVisitor

visitInterfaceDeclaration

public void visitInterfaceDeclaration(JInterfaceDeclaration self,
                                      int modifiers,
                                      java.lang.String ident,
                                      CClassType[] interfaces,
                                      JPhylum[] body,
                                      JMethodDeclaration[] methods)
prints an interface declaration
Specified by:
visitInterfaceDeclaration in interface KjcVisitor

visitFieldDeclaration

public void visitFieldDeclaration(JFieldDeclaration self,
                                  int modifiers,
                                  CType type,
                                  java.lang.String ident,
                                  JExpression expr)
prints a field declaration
Specified by:
visitFieldDeclaration in interface KjcVisitor

visitMethodDeclaration

public void visitMethodDeclaration(JMethodDeclaration self,
                                   int modifiers,
                                   CType returnType,
                                   java.lang.String ident,
                                   JFormalParameter[] parameters,
                                   CClassType[] exceptions,
                                   JBlock body)
prints a method declaration
Specified by:
visitMethodDeclaration in interface KjcVisitor

visitConstructorDeclaration

public void visitConstructorDeclaration(JConstructorDeclaration self,
                                        int modifiers,
                                        java.lang.String ident,
                                        JFormalParameter[] parameters,
                                        CClassType[] exceptions,
                                        JBlock body)
prints a method declaration
Specified by:
visitConstructorDeclaration in interface KjcVisitor

visitWhileStatement

public void visitWhileStatement(JWhileStatement self,
                                JExpression cond,
                                JStatement body)
prints a while statement
Specified by:
visitWhileStatement in interface KjcVisitor

visitVariableDeclarationStatement

public void visitVariableDeclarationStatement(JVariableDeclarationStatement self,
                                              JVariableDefinition[] vars)
prints a variable declaration statement
Specified by:
visitVariableDeclarationStatement in interface KjcVisitor

visitVariableDefinition

public void visitVariableDefinition(JVariableDefinition self,
                                    int modifiers,
                                    CType type,
                                    java.lang.String ident,
                                    JExpression expr)
prints a variable declaration statement
Specified by:
visitVariableDefinition in interface KjcVisitor

visitTryCatchStatement

public void visitTryCatchStatement(JTryCatchStatement self,
                                   JBlock tryClause,
                                   JCatchClause[] catchClauses)
prints a try-catch statement
Specified by:
visitTryCatchStatement in interface KjcVisitor

visitTryFinallyStatement

public void visitTryFinallyStatement(JTryFinallyStatement self,
                                     JBlock tryClause,
                                     JBlock finallyClause)
prints a try-finally statement
Specified by:
visitTryFinallyStatement in interface KjcVisitor

visitThrowStatement

public void visitThrowStatement(JThrowStatement self,
                                JExpression expr)
prints a throw statement
Specified by:
visitThrowStatement in interface KjcVisitor

visitSynchronizedStatement

public void visitSynchronizedStatement(JSynchronizedStatement self,
                                       JExpression cond,
                                       JStatement body)
prints a synchronized statement
Specified by:
visitSynchronizedStatement in interface KjcVisitor

visitSwitchStatement

public void visitSwitchStatement(JSwitchStatement self,
                                 JExpression expr,
                                 JSwitchGroup[] body)
prints a switch statement
Specified by:
visitSwitchStatement in interface KjcVisitor

visitReturnStatement

public void visitReturnStatement(JReturnStatement self,
                                 JExpression expr)
prints a return statement
Specified by:
visitReturnStatement in interface KjcVisitor

visitLabeledStatement

public void visitLabeledStatement(JLabeledStatement self,
                                  java.lang.String label,
                                  JStatement stmt)
prints a labeled statement
Specified by:
visitLabeledStatement in interface KjcVisitor

visitIfStatement

public void visitIfStatement(JIfStatement self,
                             JExpression cond,
                             JStatement thenClause,
                             JStatement elseClause)
prints a if statement
Specified by:
visitIfStatement in interface KjcVisitor

visitForStatement

public void visitForStatement(JForStatement self,
                              JStatement init,
                              JExpression cond,
                              JStatement incr,
                              JStatement body)
prints a for statement
Specified by:
visitForStatement in interface KjcVisitor

visitCompoundStatement

public void visitCompoundStatement(JCompoundStatement self,
                                   JStatement[] body)
prints a compound statement
Specified by:
visitCompoundStatement in interface KjcVisitor

visitCompoundStatement

public void visitCompoundStatement(JStatement[] body)
prints a compound statement

visitExpressionStatement

public void visitExpressionStatement(JExpressionStatement self,
                                     JExpression expr)
prints an expression statement
Specified by:
visitExpressionStatement in interface KjcVisitor

visitExpressionListStatement

public void visitExpressionListStatement(JExpressionListStatement self,
                                         JExpression[] expr)
prints an expression list statement
Specified by:
visitExpressionListStatement in interface KjcVisitor

visitEmptyStatement

public void visitEmptyStatement(JEmptyStatement self)
prints a empty statement
Specified by:
visitEmptyStatement in interface KjcVisitor

visitDoStatement

public void visitDoStatement(JDoStatement self,
                             JExpression cond,
                             JStatement body)
prints a do statement
Specified by:
visitDoStatement in interface KjcVisitor

visitContinueStatement

public void visitContinueStatement(JContinueStatement self,
                                   java.lang.String label)
prints a continue statement
Specified by:
visitContinueStatement in interface KjcVisitor

visitBreakStatement

public void visitBreakStatement(JBreakStatement self,
                                java.lang.String label)
prints a break statement
Specified by:
visitBreakStatement in interface KjcVisitor

visitBlockStatement

public void visitBlockStatement(JBlock self,
                                JStatement[] body,
                                JavaStyleComment[] comments)
prints an expression statement
Specified by:
visitBlockStatement in interface KjcVisitor

visitTypeDeclarationStatement

public void visitTypeDeclarationStatement(JTypeDeclarationStatement self,
                                          JTypeDeclaration decl)
prints a type declaration statement
Specified by:
visitTypeDeclarationStatement in interface KjcVisitor

visitUnaryExpression

public void visitUnaryExpression(JUnaryExpression self,
                                 int oper,
                                 JExpression expr)
prints an unary expression
Specified by:
visitUnaryExpression in interface KjcVisitor

visitTypeNameExpression

public void visitTypeNameExpression(JTypeNameExpression self,
                                    CType type)
prints a type name expression
Specified by:
visitTypeNameExpression in interface KjcVisitor

visitThisExpression

public void visitThisExpression(JThisExpression self,
                                JExpression prefix)
prints a this expression
Specified by:
visitThisExpression in interface KjcVisitor

visitSuperExpression

public void visitSuperExpression(JSuperExpression self)
prints a super expression
Specified by:
visitSuperExpression in interface KjcVisitor

visitShiftExpression

public void visitShiftExpression(JShiftExpression self,
                                 int oper,
                                 JExpression left,
                                 JExpression right)
prints a shift expression
Specified by:
visitShiftExpression in interface KjcVisitor

visitRelationalExpression

public void visitRelationalExpression(JRelationalExpression self,
                                      int oper,
                                      JExpression left,
                                      JExpression right)
prints a shift expressiona
Specified by:
visitRelationalExpression in interface KjcVisitor

visitPrefixExpression

public void visitPrefixExpression(JPrefixExpression self,
                                  int oper,
                                  JExpression expr)
prints a prefix expression
Specified by:
visitPrefixExpression in interface KjcVisitor

visitPostfixExpression

public void visitPostfixExpression(JPostfixExpression self,
                                   int oper,
                                   JExpression expr)
prints a postfix expression
Specified by:
visitPostfixExpression in interface KjcVisitor

visitParenthesedExpression

public void visitParenthesedExpression(JParenthesedExpression self,
                                       JExpression expr)
prints a parenthesed expression
Specified by:
visitParenthesedExpression in interface KjcVisitor

visitNewObjectExpression

public void visitNewObjectExpression(JNewObjectExpression self,
                                     CClassType type,
                                     JExpression[] params,
                                     JClassDeclaration innerBody)
prints an object allocator expression
Specified by:
visitNewObjectExpression in interface KjcVisitor

visitNewArrayExpression

public void visitNewArrayExpression(JNewArrayExpression self,
                                    CType type,
                                    JArrayDimsAndInits dims)
prints an array allocator expression
Specified by:
visitNewArrayExpression in interface KjcVisitor

visitNameExpression

public void visitNameExpression(JNameExpression self,
                                JExpression prefix,
                                java.lang.String ident)
prints a name expression
Specified by:
visitNameExpression in interface KjcVisitor

visitBinaryExpression

public void visitBinaryExpression(JBinaryExpression self,
                                  java.lang.String oper,
                                  JExpression left,
                                  JExpression right)
prints an array allocator expression
Specified by:
visitBinaryExpression in interface KjcVisitor

visitMethodCallExpression

public void visitMethodCallExpression(JMethodCallExpression self,
                                      JExpression prefix,
                                      java.lang.String ident,
                                      JExpression[] args)
prints a method call expression
Specified by:
visitMethodCallExpression in interface KjcVisitor

visitLocalVariableExpression

public void visitLocalVariableExpression(JLocalVariableExpression self,
                                         java.lang.String ident)
prints a local variable expression
Specified by:
visitLocalVariableExpression in interface KjcVisitor

visitInstanceofExpression

public void visitInstanceofExpression(JInstanceofExpression self,
                                      JExpression expr,
                                      CType dest)
prints an instanceof expression
Specified by:
visitInstanceofExpression in interface KjcVisitor

visitEqualityExpression

public void visitEqualityExpression(JEqualityExpression self,
                                    int oper,
                                    JExpression left,
                                    JExpression right)
prints an equality expression
Specified by:
visitEqualityExpression in interface KjcVisitor

visitConditionalExpression

public void visitConditionalExpression(JConditionalExpression self,
                                       JExpression cond,
                                       JExpression left,
                                       JExpression right)
prints a conditional expression
Specified by:
visitConditionalExpression in interface KjcVisitor

visitCompoundAssignmentExpression

public void visitCompoundAssignmentExpression(JCompoundAssignmentExpression self,
                                              int oper,
                                              JExpression left,
                                              JExpression right)
prints a compound expression
Specified by:
visitCompoundAssignmentExpression in interface KjcVisitor

visitFieldExpression

public void visitFieldExpression(JClassFieldExpression self,
                                 JExpression left,
                                 java.lang.String ident)
prints a field expression
Specified by:
visitFieldExpression in interface KjcVisitor

visitClassExpression

public void visitClassExpression(JClassExpression self,
                                 CType type)
prints a class expression
Specified by:
visitClassExpression in interface KjcVisitor

visitCastExpression

public void visitCastExpression(JCastExpression self,
                                JExpression expr,
                                CType type)
prints a cast expression
Specified by:
visitCastExpression in interface KjcVisitor

visitUnaryPromoteExpression

public void visitUnaryPromoteExpression(JUnaryPromote self,
                                        JExpression expr,
                                        CType type)
prints a cast expression
Specified by:
visitUnaryPromoteExpression in interface KjcVisitor

visitBitwiseExpression

public void visitBitwiseExpression(JBitwiseExpression self,
                                   int oper,
                                   JExpression left,
                                   JExpression right)
prints a compound assignment expression
Specified by:
visitBitwiseExpression in interface KjcVisitor

visitAssignmentExpression

public void visitAssignmentExpression(JAssignmentExpression self,
                                      JExpression left,
                                      JExpression right)
prints an assignment expression
Specified by:
visitAssignmentExpression in interface KjcVisitor

visitArrayLengthExpression

public void visitArrayLengthExpression(JArrayLengthExpression self,
                                       JExpression prefix)
prints an array length expression
Specified by:
visitArrayLengthExpression in interface KjcVisitor

visitArrayAccessExpression

public void visitArrayAccessExpression(JArrayAccessExpression self,
                                       JExpression prefix,
                                       JExpression accessor)
prints an array length expression
Specified by:
visitArrayAccessExpression in interface KjcVisitor

visitComments

public void visitComments(JavaStyleComment[] comments)
prints an array length expression
Specified by:
visitComments in interface KjcVisitor

visitComment

public void visitComment(JavaStyleComment comment)
prints an array length expression
Specified by:
visitComment in interface KjcVisitor

visitJavadoc

public void visitJavadoc(JavadocComment comment)
prints an array length expression
Specified by:
visitJavadoc in interface KjcVisitor

visitSwitchLabel

public void visitSwitchLabel(JSwitchLabel self,
                             JExpression expr)
prints an array length expression
Specified by:
visitSwitchLabel in interface KjcVisitor

visitSwitchGroup

public void visitSwitchGroup(JSwitchGroup self,
                             JSwitchLabel[] labels,
                             JStatement[] stmts)
prints an array length expression
Specified by:
visitSwitchGroup in interface KjcVisitor

visitCatchClause

public void visitCatchClause(JCatchClause self,
                             JFormalParameter exception,
                             JBlock body)
prints an array length expression
Specified by:
visitCatchClause in interface KjcVisitor

visitBooleanLiteral

public void visitBooleanLiteral(boolean value)
prints a boolean literal
Specified by:
visitBooleanLiteral in interface KjcVisitor

visitByteLiteral

public void visitByteLiteral(byte value)
prints a byte literal
Specified by:
visitByteLiteral in interface KjcVisitor

visitCharLiteral

public void visitCharLiteral(char value)
prints a character literal
Specified by:
visitCharLiteral in interface KjcVisitor

visitDoubleLiteral

public void visitDoubleLiteral(double value)
prints a double literal
Specified by:
visitDoubleLiteral in interface KjcVisitor

visitFloatLiteral

public void visitFloatLiteral(float value)
prints a float literal
Specified by:
visitFloatLiteral in interface KjcVisitor

visitIntLiteral

public void visitIntLiteral(int value)
prints a int literal
Specified by:
visitIntLiteral in interface KjcVisitor

visitLongLiteral

public void visitLongLiteral(long value)
prints a long literal
Specified by:
visitLongLiteral in interface KjcVisitor

visitShortLiteral

public void visitShortLiteral(short value)
prints a short literal
Specified by:
visitShortLiteral in interface KjcVisitor

visitStringLiteral

public void visitStringLiteral(java.lang.String value)
prints a string literal
Specified by:
visitStringLiteral in interface KjcVisitor

visitNullLiteral

public void visitNullLiteral()
prints a null literal
Specified by:
visitNullLiteral in interface KjcVisitor

visitPackageName

public void visitPackageName(java.lang.String name)
prints a package name declaration
Specified by:
visitPackageName in interface KjcVisitor

visitPackageImport

public void visitPackageImport(java.lang.String name)
prints a package import line
Specified by:
visitPackageImport in interface KjcVisitor

visitClassImport

public void visitClassImport(java.lang.String name)
prints a class import line.
Specified by:
visitClassImport in interface KjcVisitor

visitFormalParameters

public void visitFormalParameters(JFormalParameter self,
                                  boolean isFinal,
                                  CType type,
                                  java.lang.String ident)
prints a list of formal parameters to a method
Specified by:
visitFormalParameters in interface KjcVisitor

visitArgs

public void visitArgs(JExpression[] args)
prints an argument list

visitExplicitConstructorInvocation

public void visitExplicitConstructorInvocation(JExplicitConstructorInvocation self,
                                               JExpression prefix,
                                               java.lang.String ident,
                                               JExpression[] params)
prints an explicit constructor invocation
Specified by:
visitExplicitConstructorInvocation in interface KjcVisitor

visitArrayInitializer

public void visitArrayInitializer(JArrayInitializer self,
                                  JExpression[] elems)
prints an array initializer expression
Specified by:
visitArrayInitializer in interface KjcVisitor

visitArrayDimsAndInit

public void visitArrayDimsAndInit(JArrayDimsAndInits self,
                                  JExpression[] dims,
                                  JArrayInitializer init)
prints an array initializer expression
Specified by:
visitArrayDimsAndInit in interface KjcVisitor

newLine

protected void newLine()

print

protected void print(java.lang.Object s)

print

protected void print(java.lang.String s)

print

protected void print(boolean s)

print

protected void print(int s)

print

protected void print(char s)

print

protected void print(double s)