at.dms.kjc
Interface KjcVisitor

All Known Subinterfaces:
CodeGenerator, SLIRVisitor
All Known Implementing Classes:
CheckForMethodCalls, CloningVisitor, CodeEstimate, DetectConst, EmitCellCode.CellPPUCodeGen, EmitCellCode.CellSPUCodeGen, EmitCode.CodeGen, FindTapeOps, FindVarDecls, FlatIRToC, FlatIRToC, FlatIRToCluster, FlatIRToRS, HasSideEffects, InsertCounters, InsertTimers, IRPrinter, KjcEmptyVisitor, KjcPrettyPrinter, LIRToC, ModState, PeekPopInHelper, PeekPopPushInHelper, PeekPopPushInHelper, PPAnalyze, SIRPrinter, SIRToStreamIt, SLIREmptyVisitor, ToC, ToCCommon, TraceIRtoC, UseDefInfo, VariablesDefUse, VariablesUsed, VarsAssigned

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 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, String oper, JExpression left, JExpression right)
          visits an array allocator expression
 void visitBitwiseComplementExpression(JUnaryExpression self, JExpression expr)
          visits a bitwise complement expression
 void visitBitwiseExpression(JBitwiseExpression self, int oper, JExpression left, JExpression right)
          visits a compound assignment expression
 void visitBlockStatement(JBlock self, JavaStyleComment[] comments)
          visits an expression statement
 void visitBooleanLiteral(boolean value)
          visits a boolean literal
 void visitBreakStatement(JBreakStatement self, 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, JFieldDeclaration[] fields, JMethodDeclaration[] methods, JPhylum[] body)
          visits a class body
 void visitClassDeclaration(JClassDeclaration self, int modifiers, String ident, String superName, CClassType[] interfaces, JPhylum[] body, JFieldDeclaration[] fields, JMethodDeclaration[] methods, JTypeDeclaration[] decls)
          visits a class declaration
 void visitClassExpression(JClassExpression self, CType type)
          visits a class expression
 void visitClassImport(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 visitConstructorCall(JConstructorCall self, boolean functorIsThis, JExpression[] params)
          visits an array length expression
 void visitConstructorDeclaration(JConstructorDeclaration self, int modifiers, String ident, JFormalParameter[] parameters, CClassType[] exceptions, JConstructorBlock body)
          visits a method declaration
 void visitContinueStatement(JContinueStatement self, 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 visitEmittedTextExpression(JEmittedTextExpression self, Object[] parts)
           
 void visitEmptyStatement(JEmptyStatement self)
          visits a empty statement
 void visitEqualityExpression(JEqualityExpression self, boolean equal, JExpression left, JExpression right)
          visits an equality 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, String ident, JExpression expr)
          visits a field declaration
 void visitFieldExpression(JFieldAccessExpression self, JExpression left, String ident)
          visits a field expression
 void visitFloatLiteral(float value)
          visits a float literal
 void visitFormalParameters(JFormalParameter self, boolean isFinal, CType type, 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, String ident, String superName, CClassType[] interfaces, JTypeDeclaration[] decls, JPhylum[] body, JFieldDeclaration[] fields, JMethodDeclaration[] methods)
          visits a class declaration
 void visitInstanceofExpression(JInstanceofExpression self, JExpression expr, CType dest)
          visits an instanceof expression
 void visitInterfaceDeclaration(JInterfaceDeclaration self, int modifiers, 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, String label, JStatement stmt)
          visits a labeled statement
 void visitLocalVariableExpression(JLocalVariableExpression self, String ident)
          visits a local variable expression
 void visitLogicalComplementExpression(JUnaryExpression self, JExpression expr)
          visits a logical complement expression
 void visitLongLiteral(long value)
          visits a long literal
 void visitMethodCallExpression(JMethodCallExpression self, JExpression prefix, String ident, JExpression[] args)
          visits a method call expression
 void visitMethodDeclaration(JMethodDeclaration self, int modifiers, CType returnType, String ident, JFormalParameter[] parameters, CClassType[] exceptions, JBlock body)
          visits a method declaration
 void visitNameExpression(JNameExpression self, JExpression prefix, String ident)
          visits a name expression
 void visitNewArrayExpression(JNewArrayExpression self, CType type, JExpression[] dims, JArrayInitializer init)
          visits an array allocator expression
 void visitNullLiteral()
          visits a null literal
 void visitPackageImport(String name)
          visits a package import declaration
 void visitPackageName(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 visitQualifiedAnonymousCreation(JQualifiedAnonymousCreation self, JExpression prefix, String ident, JExpression[] params, JClassDeclaration decl)
          Visits an unqualified anonymous class instance creation expression.
 void visitQualifiedInstanceCreation(JQualifiedInstanceCreation self, JExpression prefix, String ident, JExpression[] params)
          Visits an unqualified instance creation 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(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 visitUnaryMinusExpression(JUnaryExpression self, JExpression expr)
          visits an unary minus expression
 void visitUnaryPlusExpression(JUnaryExpression self, JExpression expr)
          visits an unary plus expression
 void visitUnaryPromoteExpression(JUnaryPromote self, JExpression expr, CType type)
          visits a cast expression
 void visitUnqualifiedAnonymousCreation(JUnqualifiedAnonymousCreation self, CClassType type, JExpression[] params, JClassDeclaration decl)
          Visits an unqualified anonymous class instance creation expression.
 void visitUnqualifiedInstanceCreation(JUnqualifiedInstanceCreation self, CClassType type, JExpression[] params)
          Visits an unqualified instance creation expression.
 void visitVariableDeclarationStatement(JVariableDeclarationStatement self, JVariableDefinition[] vars)
          visits a variable declaration statement
 void visitVariableDefinition(JVariableDefinition self, int modifiers, CType type, String ident, JExpression expr)
          visits a variable declaration statement
 void visitWhileStatement(JWhileStatement self, JExpression cond, JStatement body)
          visits a while statement
 

Method Detail

visitCompilationUnit

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


visitClassDeclaration

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


visitClassBody

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


visitInnerClassDeclaration

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


visitInterfaceDeclaration

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


visitFieldDeclaration

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


visitMethodDeclaration

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


visitConstructorDeclaration

void visitConstructorDeclaration(JConstructorDeclaration self,
                                 int modifiers,
                                 String ident,
                                 JFormalParameter[] parameters,
                                 CClassType[] exceptions,
                                 JConstructorBlock body)
visits a method declaration


visitWhileStatement

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


visitVariableDeclarationStatement

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


visitVariableDefinition

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


visitTryCatchStatement

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


visitTryFinallyStatement

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


visitThrowStatement

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


visitSynchronizedStatement

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


visitSwitchStatement

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


visitReturnStatement

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


visitLabeledStatement

void visitLabeledStatement(JLabeledStatement self,
                           String label,
                           JStatement stmt)
visits a labeled statement


visitIfStatement

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


visitForStatement

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


visitCompoundStatement

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


visitExpressionStatement

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


visitExpressionListStatement

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


visitEmptyStatement

void visitEmptyStatement(JEmptyStatement self)
visits a empty statement


visitDoStatement

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


visitContinueStatement

void visitContinueStatement(JContinueStatement self,
                            String label)
visits a continue statement


visitBreakStatement

void visitBreakStatement(JBreakStatement self,
                         String label)
visits a break statement


visitBlockStatement

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


visitTypeDeclarationStatement

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


visitUnaryPlusExpression

void visitUnaryPlusExpression(JUnaryExpression self,
                              JExpression expr)
visits an unary plus expression


visitUnaryMinusExpression

void visitUnaryMinusExpression(JUnaryExpression self,
                               JExpression expr)
visits an unary minus expression


visitBitwiseComplementExpression

void visitBitwiseComplementExpression(JUnaryExpression self,
                                      JExpression expr)
visits a bitwise complement expression


visitLogicalComplementExpression

void visitLogicalComplementExpression(JUnaryExpression self,
                                      JExpression expr)
visits a logical complement expression


visitTypeNameExpression

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


visitThisExpression

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


visitSuperExpression

void visitSuperExpression(JSuperExpression self)
visits a super expression


visitShiftExpression

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


visitRelationalExpression

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


visitPrefixExpression

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


visitPostfixExpression

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


visitParenthesedExpression

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


visitQualifiedAnonymousCreation

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


visitQualifiedInstanceCreation

void visitQualifiedInstanceCreation(JQualifiedInstanceCreation self,
                                    JExpression prefix,
                                    String ident,
                                    JExpression[] params)
Visits an unqualified instance creation expression.


visitUnqualifiedAnonymousCreation

void visitUnqualifiedAnonymousCreation(JUnqualifiedAnonymousCreation self,
                                       CClassType type,
                                       JExpression[] params,
                                       JClassDeclaration decl)
Visits an unqualified anonymous class instance creation expression.


visitUnqualifiedInstanceCreation

void visitUnqualifiedInstanceCreation(JUnqualifiedInstanceCreation self,
                                      CClassType type,
                                      JExpression[] params)
Visits an unqualified instance creation expression.


visitNewArrayExpression

void visitNewArrayExpression(JNewArrayExpression self,
                             CType type,
                             JExpression[] dims,
                             JArrayInitializer init)
visits an array allocator expression


visitNameExpression

void visitNameExpression(JNameExpression self,
                         JExpression prefix,
                         String ident)
visits a name expression


visitBinaryExpression

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


visitMethodCallExpression

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


visitLocalVariableExpression

void visitLocalVariableExpression(JLocalVariableExpression self,
                                  String ident)
visits a local variable expression


visitInstanceofExpression

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


visitEqualityExpression

void visitEqualityExpression(JEqualityExpression self,
                             boolean equal,
                             JExpression left,
                             JExpression right)
visits an equality expression


visitConditionalExpression

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


visitCompoundAssignmentExpression

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


visitFieldExpression

void visitFieldExpression(JFieldAccessExpression self,
                          JExpression left,
                          String ident)
visits a field expression


visitClassExpression

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


visitCastExpression

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


visitUnaryPromoteExpression

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


visitBitwiseExpression

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


visitAssignmentExpression

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


visitArrayLengthExpression

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


visitArrayAccessExpression

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


visitEmittedTextExpression

void visitEmittedTextExpression(JEmittedTextExpression self,
                                Object[] parts)

visitComments

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


visitComment

void visitComment(JavaStyleComment comment)
visits an array length expression


visitJavadoc

void visitJavadoc(JavadocComment comment)
visits an array length expression


visitSwitchLabel

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


visitSwitchGroup

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


visitCatchClause

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


visitFormalParameters

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


visitConstructorCall

void visitConstructorCall(JConstructorCall self,
                          boolean functorIsThis,
                          JExpression[] params)
visits an array length expression


visitArrayInitializer

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


visitBooleanLiteral

void visitBooleanLiteral(boolean value)
visits a boolean literal


visitByteLiteral

void visitByteLiteral(byte value)
visits a byte literal


visitCharLiteral

void visitCharLiteral(char value)
visits a character literal


visitDoubleLiteral

void visitDoubleLiteral(double value)
visits a double literal


visitFloatLiteral

void visitFloatLiteral(float value)
visits a float literal


visitIntLiteral

void visitIntLiteral(int value)
visits a int literal


visitLongLiteral

void visitLongLiteral(long value)
visits a long literal


visitShortLiteral

void visitShortLiteral(short value)
visits a short literal


visitStringLiteral

void visitStringLiteral(String value)
visits a string literal


visitNullLiteral

void visitNullLiteral()
visits a null literal


visitPackageName

void visitPackageName(String name)
visits a package name declaration


visitPackageImport

void visitPackageImport(String name)
visits a package import declaration


visitClassImport

void visitClassImport(String name)
visits a class import declaration