at.dms.kjc
Interface KjcVisitor

All Known Implementing Classes:
KjcPrettyPrinter

public interface KjcVisitor

Implementation of Visitor Design Pattern for KJC. Suggested from: Max R. Andersen(max@cs.auc.dk)


Method Summary
 void visitArrayAccessExpression(JArrayAccessExpression self, JExpression prefix, JExpression accessor)
          visits an array length expression
 void visitArrayDimsAndInit(JArrayDimsAndInits self, JExpression[] dims, JArrayInitializer init)
          visits an array dimension
 void visitArrayInitializer(JArrayInitializer self, JExpression[] elems)
          visits an array initializer expression
 void visitArrayLengthExpression(JArrayLengthExpression self, JExpression prefix)
          visits an array length expression
 void visitAssignmentExpression(JAssignmentExpression self, JExpression left, JExpression right)
          visits an assignment expression
 void visitBinaryExpression(JBinaryExpression self, java.lang.String oper, JExpression left, JExpression right)
          visits an array allocator expression
 void visitBitwiseExpression(JBitwiseExpression self, int oper, JExpression left, JExpression right)
          visits a compound assignment expression
 void visitBlockStatement(JBlock self, JStatement[] body, JavaStyleComment[] comments)
          visits an expression statement
 void visitBooleanLiteral(boolean value)
          visits a boolean literal
 void visitBreakStatement(JBreakStatement self, java.lang.String label)
          visits a break statement
 void visitByteLiteral(byte value)
          visits a byte literal
 void visitCastExpression(JCastExpression self, JExpression expr, CType type)
          visits a cast expression
 void visitCatchClause(JCatchClause self, JFormalParameter exception, JBlock body)
          visits an array length expression
 void visitCharLiteral(char value)
          visits 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)
          visits a class declaration
 void visitClassExpression(JClassExpression self, CType type)
          visits a class expression
 void visitClassImport(java.lang.String name)
          visits a class import declaration
 void visitComment(JavaStyleComment comment)
          visits an array length expression
 void visitComments(JavaStyleComment[] comments)
          visits an array length expression
 void visitCompilationUnit(JCompilationUnit self, JPackageName packageName, JPackageImport[] importedPackages, JClassImport[] importedClasses, JTypeDeclaration[] typeDeclarations)
          visits a compilation unit
 void visitCompoundAssignmentExpression(JCompoundAssignmentExpression self, int oper, JExpression left, JExpression right)
          visits a compound expression
 void visitCompoundStatement(JCompoundStatement self, JStatement[] body)
          visits a compound statement
 void visitConditionalExpression(JConditionalExpression self, JExpression cond, JExpression left, JExpression right)
          visits a conditional expression
 void visitConstructorDeclaration(JConstructorDeclaration self, int modifiers, java.lang.String ident, JFormalParameter[] parameters, CClassType[] exceptions, JBlock body)
          visits a method declaration
 void visitContinueStatement(JContinueStatement self, java.lang.String label)
          visits a continue statement
 void visitDoStatement(JDoStatement self, JExpression cond, JStatement body)
          visits a do statement
 void visitDoubleLiteral(double value)
          visits a double literal
 void visitEmptyStatement(JEmptyStatement self)
          visits a empty statement
 void visitEqualityExpression(JEqualityExpression self, int oper, JExpression left, JExpression right)
          visits an equality expression
 void visitExplicitConstructorInvocation(JExplicitConstructorInvocation self, JExpression prefix, java.lang.String ident, JExpression[] params)
          visits an array length expression
 void visitExpressionListStatement(JExpressionListStatement self, JExpression[] expr)
          visits an expression list statement
 void visitExpressionStatement(JExpressionStatement self, JExpression expr)
          visits an expression statement
 void visitFieldDeclaration(JFieldDeclaration self, int modifiers, CType type, java.lang.String ident, JExpression expr)
          visits a field declaration
 void visitFieldExpression(JClassFieldExpression self, JExpression left, java.lang.String ident)
          visits a field expression
 void visitFloatLiteral(float value)
          visits a float literal
 void visitFormalParameters(JFormalParameter self, boolean isFinal, CType type, java.lang.String ident)
          visits an array length expression
 void visitForStatement(JForStatement self, JStatement init, JExpression cond, JStatement incr, JStatement body)
          visits a for statement
 void visitIfStatement(JIfStatement self, JExpression cond, JStatement thenClause, JStatement elseClause)
          visits 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)
          visits a class declaration
 void visitInstanceofExpression(JInstanceofExpression self, JExpression expr, CType dest)
          visits an instanceof expression
 void visitInterfaceDeclaration(JInterfaceDeclaration self, int modifiers, java.lang.String ident, CClassType[] interfaces, JPhylum[] body, JMethodDeclaration[] methods)
          visits an interface declaration
 void visitIntLiteral(int value)
          visits a int literal
 void visitJavadoc(JavadocComment comment)
          visits an array length expression
 void visitLabeledStatement(JLabeledStatement self, java.lang.String label, JStatement stmt)
          visits a labeled statement
 void visitLocalVariableExpression(JLocalVariableExpression self, java.lang.String ident)
          visits a local variable expression
 void visitLongLiteral(long value)
          visits a long literal
 void visitMethodCallExpression(JMethodCallExpression self, JExpression prefix, java.lang.String ident, JExpression[] args)
          visits a method call expression
 void visitMethodDeclaration(JMethodDeclaration self, int modifiers, CType returnType, java.lang.String ident, JFormalParameter[] parameters, CClassType[] exceptions, JBlock body)
          visits a method declaration
 void visitNameExpression(JNameExpression self, JExpression prefix, java.lang.String ident)
          visits a name expression
 void visitNewArrayExpression(JNewArrayExpression self, CType type, JArrayDimsAndInits dims)
          visits an array allocator expression
 void visitNewObjectExpression(JNewObjectExpression self, CClassType type, JExpression[] params, JClassDeclaration innerBody)
          visits an object allocator expression
 void visitNullLiteral()
          visits a null literal
 void visitPackageImport(java.lang.String name)
          visits a package import declaration
 void visitPackageName(java.lang.String name)
          visits a package name declaration
 void visitParenthesedExpression(JParenthesedExpression self, JExpression expr)
          visits a parenthesed expression
 void visitPostfixExpression(JPostfixExpression self, int oper, JExpression expr)
          visits a postfix expression
 void visitPrefixExpression(JPrefixExpression self, int oper, JExpression expr)
          visits a prefix expression
 void visitRelationalExpression(JRelationalExpression self, int oper, JExpression left, JExpression right)
          visits a shift expressiona
 void visitReturnStatement(JReturnStatement self, JExpression expr)
          visits a return statement
 void visitShiftExpression(JShiftExpression self, int oper, JExpression left, JExpression right)
          visits a shift expression
 void visitShortLiteral(short value)
          visits a short literal
 void visitStringLiteral(java.lang.String value)
          visits a string literal
 void visitSuperExpression(JSuperExpression self)
          visits a super expression
 void visitSwitchGroup(JSwitchGroup self, JSwitchLabel[] labels, JStatement[] stmts)
          visits an array length expression
 void visitSwitchLabel(JSwitchLabel self, JExpression expr)
          visits an array length expression
 void visitSwitchStatement(JSwitchStatement self, JExpression expr, JSwitchGroup[] body)
          visits a switch statement
 void visitSynchronizedStatement(JSynchronizedStatement self, JExpression cond, JStatement body)
          visits a synchronized statement
 void visitThisExpression(JThisExpression self, JExpression prefix)
          visits a this expression
 void visitThrowStatement(JThrowStatement self, JExpression expr)
          visits a throw statement
 void visitTryCatchStatement(JTryCatchStatement self, JBlock tryClause, JCatchClause[] catchClauses)
          visits a try-catch statement
 void visitTryFinallyStatement(JTryFinallyStatement self, JBlock tryClause, JBlock finallyClause)
          visits a try-finally statement
 void visitTypeDeclarationStatement(JTypeDeclarationStatement self, JTypeDeclaration decl)
          visits a type declaration statement
 void visitTypeNameExpression(JTypeNameExpression self, CType type)
          visits a type name expression
 void visitUnaryExpression(JUnaryExpression self, int oper, JExpression expr)
          visits an unary expression
 void visitUnaryPromoteExpression(JUnaryPromote self, JExpression expr, CType type)
          visits a cast expression
 void visitVariableDeclarationStatement(JVariableDeclarationStatement self, JVariableDefinition[] vars)
          visits a variable declaration statement
 void visitVariableDefinition(JVariableDefinition self, int modifiers, CType type, java.lang.String ident, JExpression expr)
          visits a variable declaration statement
 void visitWhileStatement(JWhileStatement self, JExpression cond, JStatement body)
          visits a while statement
 

Method Detail

visitCompilationUnit

public void visitCompilationUnit(JCompilationUnit self,
                                 JPackageName packageName,
                                 JPackageImport[] importedPackages,
                                 JClassImport[] importedClasses,
                                 JTypeDeclaration[] typeDeclarations)
visits a compilation unit

visitClassDeclaration

public void visitClassDeclaration(JClassDeclaration self,
                                  int modifiers,
                                  java.lang.String ident,
                                  java.lang.String superName,
                                  CClassType[] interfaces,
                                  JPhylum[] body,
                                  JMethodDeclaration[] methods,
                                  JTypeDeclaration[] decls)
visits a class declaration

visitClassBody

public void visitClassBody(JTypeDeclaration[] decls,
                           JMethodDeclaration[] methods,
                           JPhylum[] body)
visits a class body

visitInnerClassDeclaration

public void visitInnerClassDeclaration(JClassDeclaration self,
                                       int modifiers,
                                       java.lang.String ident,
                                       java.lang.String superName,
                                       CClassType[] interfaces,
                                       JTypeDeclaration[] decls,
                                       JPhylum[] body,
                                       JMethodDeclaration[] methods)
visits a class declaration

visitInterfaceDeclaration

public void visitInterfaceDeclaration(JInterfaceDeclaration self,
                                      int modifiers,
                                      java.lang.String ident,
                                      CClassType[] interfaces,
                                      JPhylum[] body,
                                      JMethodDeclaration[] methods)
visits an interface declaration

visitFieldDeclaration

public void visitFieldDeclaration(JFieldDeclaration self,
                                  int modifiers,
                                  CType type,
                                  java.lang.String ident,
                                  JExpression expr)
visits a field declaration

visitMethodDeclaration

public void visitMethodDeclaration(JMethodDeclaration self,
                                   int modifiers,
                                   CType returnType,
                                   java.lang.String ident,
                                   JFormalParameter[] parameters,
                                   CClassType[] exceptions,
                                   JBlock body)
visits a method declaration

visitConstructorDeclaration

public void visitConstructorDeclaration(JConstructorDeclaration self,
                                        int modifiers,
                                        java.lang.String ident,
                                        JFormalParameter[] parameters,
                                        CClassType[] exceptions,
                                        JBlock body)
visits a method declaration

visitWhileStatement

public void visitWhileStatement(JWhileStatement self,
                                JExpression cond,
                                JStatement body)
visits a while statement

visitVariableDeclarationStatement

public void visitVariableDeclarationStatement(JVariableDeclarationStatement self,
                                              JVariableDefinition[] vars)
visits a variable declaration statement

visitVariableDefinition

public void visitVariableDefinition(JVariableDefinition self,
                                    int modifiers,
                                    CType type,
                                    java.lang.String ident,
                                    JExpression expr)
visits a variable declaration statement

visitTryCatchStatement

public void visitTryCatchStatement(JTryCatchStatement self,
                                   JBlock tryClause,
                                   JCatchClause[] catchClauses)
visits a try-catch statement

visitTryFinallyStatement

public void visitTryFinallyStatement(JTryFinallyStatement self,
                                     JBlock tryClause,
                                     JBlock finallyClause)
visits a try-finally statement

visitThrowStatement

public void visitThrowStatement(JThrowStatement self,
                                JExpression expr)
visits a throw statement

visitSynchronizedStatement

public void visitSynchronizedStatement(JSynchronizedStatement self,
                                       JExpression cond,
                                       JStatement body)
visits a synchronized statement

visitSwitchStatement

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

visitReturnStatement

public void visitReturnStatement(JReturnStatement self,
                                 JExpression expr)
visits a return statement

visitLabeledStatement

public void visitLabeledStatement(JLabeledStatement self,
                                  java.lang.String label,
                                  JStatement stmt)
visits a labeled statement

visitIfStatement

public void visitIfStatement(JIfStatement self,
                             JExpression cond,
                             JStatement thenClause,
                             JStatement elseClause)
visits a if statement

visitForStatement

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

visitCompoundStatement

public void visitCompoundStatement(JCompoundStatement self,
                                   JStatement[] body)
visits a compound statement

visitExpressionStatement

public void visitExpressionStatement(JExpressionStatement self,
                                     JExpression expr)
visits an expression statement

visitExpressionListStatement

public void visitExpressionListStatement(JExpressionListStatement self,
                                         JExpression[] expr)
visits an expression list statement

visitEmptyStatement

public void visitEmptyStatement(JEmptyStatement self)
visits a empty statement

visitDoStatement

public void visitDoStatement(JDoStatement self,
                             JExpression cond,
                             JStatement body)
visits a do statement

visitContinueStatement

public void visitContinueStatement(JContinueStatement self,
                                   java.lang.String label)
visits a continue statement

visitBreakStatement

public void visitBreakStatement(JBreakStatement self,
                                java.lang.String label)
visits a break statement

visitBlockStatement

public void visitBlockStatement(JBlock self,
                                JStatement[] body,
                                JavaStyleComment[] comments)
visits an expression statement

visitTypeDeclarationStatement

public void visitTypeDeclarationStatement(JTypeDeclarationStatement self,
                                          JTypeDeclaration decl)
visits a type declaration statement

visitUnaryExpression

public void visitUnaryExpression(JUnaryExpression self,
                                 int oper,
                                 JExpression expr)
visits an unary expression

visitTypeNameExpression

public void visitTypeNameExpression(JTypeNameExpression self,
                                    CType type)
visits a type name expression

visitThisExpression

public void visitThisExpression(JThisExpression self,
                                JExpression prefix)
visits a this expression

visitSuperExpression

public void visitSuperExpression(JSuperExpression self)
visits a super expression

visitShiftExpression

public void visitShiftExpression(JShiftExpression self,
                                 int oper,
                                 JExpression left,
                                 JExpression right)
visits a shift expression

visitRelationalExpression

public void visitRelationalExpression(JRelationalExpression self,
                                      int oper,
                                      JExpression left,
                                      JExpression right)
visits a shift expressiona

visitPrefixExpression

public void visitPrefixExpression(JPrefixExpression self,
                                  int oper,
                                  JExpression expr)
visits a prefix expression

visitPostfixExpression

public void visitPostfixExpression(JPostfixExpression self,
                                   int oper,
                                   JExpression expr)
visits a postfix expression

visitParenthesedExpression

public void visitParenthesedExpression(JParenthesedExpression self,
                                       JExpression expr)
visits a parenthesed expression

visitNewObjectExpression

public void visitNewObjectExpression(JNewObjectExpression self,
                                     CClassType type,
                                     JExpression[] params,
                                     JClassDeclaration innerBody)
visits an object allocator expression

visitNewArrayExpression

public void visitNewArrayExpression(JNewArrayExpression self,
                                    CType type,
                                    JArrayDimsAndInits dims)
visits an array allocator expression

visitNameExpression

public void visitNameExpression(JNameExpression self,
                                JExpression prefix,
                                java.lang.String ident)
visits a name expression

visitBinaryExpression

public void visitBinaryExpression(JBinaryExpression self,
                                  java.lang.String oper,
                                  JExpression left,
                                  JExpression right)
visits an array allocator expression

visitMethodCallExpression

public void visitMethodCallExpression(JMethodCallExpression self,
                                      JExpression prefix,
                                      java.lang.String ident,
                                      JExpression[] args)
visits a method call expression

visitLocalVariableExpression

public void visitLocalVariableExpression(JLocalVariableExpression self,
                                         java.lang.String ident)
visits a local variable expression

visitInstanceofExpression

public void visitInstanceofExpression(JInstanceofExpression self,
                                      JExpression expr,
                                      CType dest)
visits an instanceof expression

visitEqualityExpression

public void visitEqualityExpression(JEqualityExpression self,
                                    int oper,
                                    JExpression left,
                                    JExpression right)
visits an equality expression

visitConditionalExpression

public void visitConditionalExpression(JConditionalExpression self,
                                       JExpression cond,
                                       JExpression left,
                                       JExpression right)
visits a conditional expression

visitCompoundAssignmentExpression

public void visitCompoundAssignmentExpression(JCompoundAssignmentExpression self,
                                              int oper,
                                              JExpression left,
                                              JExpression right)
visits a compound expression

visitFieldExpression

public void visitFieldExpression(JClassFieldExpression self,
                                 JExpression left,
                                 java.lang.String ident)
visits a field expression

visitClassExpression

public void visitClassExpression(JClassExpression self,
                                 CType type)
visits a class expression

visitCastExpression

public void visitCastExpression(JCastExpression self,
                                JExpression expr,
                                CType type)
visits a cast expression

visitUnaryPromoteExpression

public void visitUnaryPromoteExpression(JUnaryPromote self,
                                        JExpression expr,
                                        CType type)
visits a cast expression

visitBitwiseExpression

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

visitAssignmentExpression

public void visitAssignmentExpression(JAssignmentExpression self,
                                      JExpression left,
                                      JExpression right)
visits an assignment expression

visitArrayLengthExpression

public void visitArrayLengthExpression(JArrayLengthExpression self,
                                       JExpression prefix)
visits an array length expression

visitArrayAccessExpression

public void visitArrayAccessExpression(JArrayAccessExpression self,
                                       JExpression prefix,
                                       JExpression accessor)
visits an array length expression

visitComments

public void visitComments(JavaStyleComment[] comments)
visits an array length expression

visitComment

public void visitComment(JavaStyleComment comment)
visits an array length expression

visitJavadoc

public void visitJavadoc(JavadocComment comment)
visits an array length expression

visitSwitchLabel

public void visitSwitchLabel(JSwitchLabel self,
                             JExpression expr)
visits an array length expression

visitSwitchGroup

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

visitCatchClause

public void visitCatchClause(JCatchClause self,
                             JFormalParameter exception,
                             JBlock body)
visits an array length expression

visitFormalParameters

public void visitFormalParameters(JFormalParameter self,
                                  boolean isFinal,
                                  CType type,
                                  java.lang.String ident)
visits an array length expression

visitExplicitConstructorInvocation

public void visitExplicitConstructorInvocation(JExplicitConstructorInvocation self,
                                               JExpression prefix,
                                               java.lang.String ident,
                                               JExpression[] params)
visits an array length expression

visitArrayInitializer

public void visitArrayInitializer(JArrayInitializer self,
                                  JExpression[] elems)
visits an array initializer expression

visitArrayDimsAndInit

public void visitArrayDimsAndInit(JArrayDimsAndInits self,
                                  JExpression[] dims,
                                  JArrayInitializer init)
visits an array dimension

visitBooleanLiteral

public void visitBooleanLiteral(boolean value)
visits a boolean literal

visitByteLiteral

public void visitByteLiteral(byte value)
visits a byte literal

visitCharLiteral

public void visitCharLiteral(char value)
visits a character literal

visitDoubleLiteral

public void visitDoubleLiteral(double value)
visits a double literal

visitFloatLiteral

public void visitFloatLiteral(float value)
visits a float literal

visitIntLiteral

public void visitIntLiteral(int value)
visits a int literal

visitLongLiteral

public void visitLongLiteral(long value)
visits a long literal

visitShortLiteral

public void visitShortLiteral(short value)
visits a short literal

visitStringLiteral

public void visitStringLiteral(java.lang.String value)
visits a string literal

visitNullLiteral

public void visitNullLiteral()
visits a null literal

visitPackageName

public void visitPackageName(java.lang.String name)
visits a package name declaration

visitPackageImport

public void visitPackageImport(java.lang.String name)
visits a package import declaration

visitClassImport

public void visitClassImport(java.lang.String name)
visits a class import declaration