at.dms.util
Class IRPrinter

java.lang.Object
  extended by at.dms.util.Utils
      extended by at.dms.util.IRPrinter
All Implemented Interfaces:
DeepCloneable, KjcVisitor, SLIRVisitor, Serializable
Direct Known Subclasses:
SIRPrinter

public class IRPrinter
extends Utils
implements SLIRVisitor

See Also:
Serialized Form

Field Summary
protected  int indent
          Amount the current line of text should be indented by
protected  BufferedWriter p
          Where printed text should go
 
Fields inherited from class at.dms.util.Utils
EMPTY_LIST, getForLoopCallers
 
Constructor Summary
IRPrinter()
          Default constructor.
IRPrinter(String filename)
          Build an IRPrinter for a particular file.
 
Method Summary
protected  void attrEnd()
          End an attribute block.
protected  void attrList(String name, Object[] body)
          Print a multi-line attribute block corresponding to a list of objects.
protected  void attrPrint(String name, JPhylum body)
          Print an attribute block for a Kjc object.
protected  void attrPrint(String name, String body)
          Print a single-line attribute block.
protected  void attrStart(String name)
          Begin an attribute block.
protected  void blockEnd()
          End an object block.
protected  void blockStart(String name)
          Begin an object block.
 void close()
          Flush any pending output.
protected  void printData(char data)
          Print an arbitrary single character.
protected  void printData(String data)
          Print arbitrary string data to p.
protected  void printEnd(char delim)
          Print the end of a block.
protected  void printNewline()
          Print a newline and the current indent.
protected  void printStart(char delim, String name)
          Print the start of a block.
 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 visitCreatePortalExpression(SIRCreatePortal self)
           
 void visitDoStatement(JDoStatement self, JExpression cond, JStatement body)
          visits a do statement
 void visitDoubleLiteral(double value)
          visits a double literal
 void visitDynamicToken(SIRDynamicToken self)
          Visits a dynamic token.
 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 visitFileReader(LIRFileReader self)
          Visits a file reader.
 void visitFileWriter(LIRFileWriter self)
          Visits a file writer.
 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 visitFunctionPointer(LIRFunctionPointer self, String name)
          Visits a function pointer.
 void visitIdentity(LIRIdentity self)
          Visits an identity creator.
 void visitIfStatement(JIfStatement self, JExpression cond, JStatement thenClause, JStatement elseClause)
          visits a if statement
 void visitInitStatement(SIRInitStatement self, SIRStream target)
          Visits an init 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 visitInterfaceTable(SIRInterfaceTable self)
          Visits an interface table.
 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 visitLatency(SIRLatency self)
          Visits a latency.
 void visitLatencyMax(SIRLatencyMax self)
          Visits a max latency.
 void visitLatencyRange(SIRLatencyRange self)
          Visits a latency range.
 void visitLatencySet(SIRLatencySet self)
          Visits a latency set.
 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 visitMainFunction(LIRMainFunction self, String typeName, LIRFunctionPointer init, List<JStatement> initStatements)
          Visits a main function contents.
 void visitMarker(SIRMarker self)
          Visits a marker statement.
 void visitMessageStatement(SIRMessageStatement self, JExpression portal, String iname, String ident, JExpression[] args, SIRLatency latency)
          Visits a message statement.
 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 visitNode(LIRNode self)
          Visits an LIR node.
 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 visitPeekExpression(SIRPeekExpression self, CType tapeType, JExpression arg)
          Visits a peek expression.
 void visitPopExpression(SIRPopExpression self, CType tapeType)
          Visits a pop expression.
 void visitPortal(SIRPortal self)
          Visits a message-receiving portal.
 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 visitPrintStatement(SIRPrintStatement self, JExpression arg)
          Visits a print statement.
 void visitPushExpression(SIRPushExpression self, CType tapeType, JExpression arg)
          Visits a push 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 visitRangeExpression(SIRRangeExpression self)
          Visits a range expression.
 void visitRegisterReceiver(LIRRegisterReceiver self, JExpression streamContext, SIRPortal portal, String childName, SIRInterfaceTable itable)
          Visits an LIR register-receiver statement.
 void visitRegReceiverStatement(SIRRegReceiverStatement self, JExpression portal, SIRStream receiver, JMethodDeclaration[] methods)
          Visits a register-receiver statement.
 void visitRegSenderStatement(SIRRegSenderStatement self, String portal, SIRLatency latency)
          Visits a register-sender statement.
 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 visitSetBodyOfFeedback(LIRSetBodyOfFeedback self, JExpression streamContext, JExpression childContext, CType inputType, CType outputType, int inputSize, int outputSize)
          Visits a set body of feedback loop.
 void visitSetChild(LIRSetChild self, JExpression streamContext, String childType, String childName)
          Visits a child registration node.
 void visitSetDecode(LIRSetDecode self, JExpression streamContext, LIRFunctionPointer fp)
          Visits a decoder registration node.
 void visitSetDelay(LIRSetDelay self, JExpression data, JExpression streamContext, int delay, CType type, LIRFunctionPointer fp)
          Visit a feedback loop delay node.
 void visitSetEncode(LIRSetEncode self, JExpression streamContext, LIRFunctionPointer fp)
          Visits an encoder registration node.
 void visitSetJoiner(LIRSetJoiner self, JExpression streamContext, SIRJoinType type, int ways, int[] weights)
          Visits a joiner-setting node.
 void visitSetLoopOfFeedback(LIRSetLoopOfFeedback self, JExpression streamContext, JExpression childContext, CType inputType, CType outputType, int inputSize, int outputSize)
          Visits a set loop of feedback loop.
 void visitSetParallelStream(LIRSetParallelStream self, JExpression streamContext, JExpression childContext, int position, CType inputType, CType outputType, int inputSize, int outputSize)
          Visits a set a parallel stream.
 void visitSetPeek(LIRSetPeek self, JExpression streamContext, int peek)
          Visits a peek-rate-setting node.
 void visitSetPop(LIRSetPop self, JExpression streamContext, int pop)
          Visits a pop-rate-setting node.
 void visitSetPush(LIRSetPush self, JExpression streamContext, int push)
          Visits a push-rate-setting node.
 void visitSetSplitter(LIRSetSplitter self, JExpression streamContext, SIRSplitType type, int ways, int[] weights)
          Visits a splitter-setting node.
 void visitSetStreamType(LIRSetStreamType self, JExpression streamContext, LIRStreamType streamType)
          Visits a stream-type-setting node.
 void visitSetTape(LIRSetTape self, JExpression streamContext, JExpression srcStruct, JExpression dstStruct, CType type, int size)
          Visits a tape-setter.
 void visitSetWork(LIRSetWork self, JExpression streamContext, LIRFunctionPointer fn)
          Visits a work-function-setting node.
 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 visitVectorLiteral(JVectorLiteral self, JLiteral scalar)
          Visits a vector literal.
 void visitWhileStatement(JWhileStatement self, JExpression cond, JStatement body)
          visits a while statement
 void visitWorkEntry(LIRWorkEntry self)
          Visits a work function entry.
 void visitWorkExit(LIRWorkExit self)
          Visits a work function exit.
 
Methods inherited from class at.dms.util.Utils
asPercent, cellMathEquivalent, cMathEquivalent, cppMathEquivalent, deepClone, deepCloneInto, equalArrays, fail, getEnvironmentVariable, getExpression, hasPeeks, initArray, initArray, initLiteralArray, intArrayToList, isMathMethod, isUniform, kopi_assert, kopi_assert, makeCountdownForLoop, makeDotFileName, makeForLoop, makeForLoop, makeForLoop, makeForLoopFieldIndex, makeForLoopLocalIndex, nextPow2, passThruParens, peelMarkers, popBeforePeek, readFile, removeUnusedPops, replaceAll, setupDotFileName, simplifyMathMethod, splitQualifiedName, splitQualifiedName, toArray, toIntArray, toVector, voidToInt, writeFile
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

indent

protected int indent
Amount the current line of text should be indented by


p

protected BufferedWriter p
Where printed text should go

Constructor Detail

IRPrinter

public IRPrinter()
Default constructor. Writes IR to standard output.


IRPrinter

public IRPrinter(String filename)
Build an IRPrinter for a particular file.

Parameters:
filename - Name of the file to write IR to
Method Detail

close

public void close()
Flush any pending output.


printNewline

protected void printNewline()
Print a newline and the current indent.


printStart

protected void printStart(char delim,
                          String name)
Print the start of a block.


printData

protected void printData(String data)
Print arbitrary string data to p.

Parameters:
data - Data to write

printData

protected void printData(char data)
Print an arbitrary single character.

Parameters:
data - Character to write

printEnd

protected void printEnd(char delim)
Print the end of a block.


blockStart

protected void blockStart(String name)
Begin an object block.


blockEnd

protected void blockEnd()
End an object block.


attrStart

protected void attrStart(String name)
Begin an attribute block.


attrEnd

protected void attrEnd()
End an attribute block.


attrPrint

protected void attrPrint(String name,
                         String body)
Print a single-line attribute block.


attrPrint

protected void attrPrint(String name,
                         JPhylum body)
Print an attribute block for a Kjc object.


attrList

protected void attrList(String name,
                        Object[] body)
Print a multi-line attribute block corresponding to a list of objects.


visitCompilationUnit

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

Specified by:
visitCompilationUnit in interface KjcVisitor

visitClassDeclaration

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

Specified by:
visitClassDeclaration in interface KjcVisitor

visitClassBody

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

Specified by:
visitClassBody in interface KjcVisitor

visitInnerClassDeclaration

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

Specified by:
visitInnerClassDeclaration in interface KjcVisitor

visitInterfaceDeclaration

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

Specified by:
visitInterfaceDeclaration in interface KjcVisitor

visitFieldDeclaration

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

Specified by:
visitFieldDeclaration in interface KjcVisitor

visitMethodDeclaration

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

Specified by:
visitMethodDeclaration in interface KjcVisitor

visitConstructorDeclaration

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

Specified by:
visitConstructorDeclaration in interface KjcVisitor

visitWhileStatement

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

Specified by:
visitWhileStatement in interface KjcVisitor

visitVariableDeclarationStatement

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

Specified by:
visitVariableDeclarationStatement in interface KjcVisitor

visitVariableDefinition

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

Specified by:
visitVariableDefinition in interface KjcVisitor

visitTryCatchStatement

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

Specified by:
visitTryCatchStatement in interface KjcVisitor

visitTryFinallyStatement

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

Specified by:
visitTryFinallyStatement in interface KjcVisitor

visitThrowStatement

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

Specified by:
visitThrowStatement in interface KjcVisitor

visitSynchronizedStatement

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

Specified by:
visitSynchronizedStatement in interface KjcVisitor

visitSwitchStatement

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

Specified by:
visitSwitchStatement in interface KjcVisitor

visitReturnStatement

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

Specified by:
visitReturnStatement in interface KjcVisitor

visitLabeledStatement

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

Specified by:
visitLabeledStatement in interface KjcVisitor

visitIfStatement

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

Specified by:
visitIfStatement in interface KjcVisitor

visitForStatement

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

Specified by:
visitForStatement in interface KjcVisitor

visitCompoundStatement

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

Specified by:
visitCompoundStatement in interface KjcVisitor

visitExpressionStatement

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

Specified by:
visitExpressionStatement in interface KjcVisitor

visitExpressionListStatement

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

Specified by:
visitExpressionListStatement in interface KjcVisitor

visitEmptyStatement

public void visitEmptyStatement(JEmptyStatement self)
visits a empty statement

Specified by:
visitEmptyStatement in interface KjcVisitor

visitDoStatement

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

Specified by:
visitDoStatement in interface KjcVisitor

visitContinueStatement

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

Specified by:
visitContinueStatement in interface KjcVisitor

visitBreakStatement

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

Specified by:
visitBreakStatement in interface KjcVisitor

visitBlockStatement

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

Specified by:
visitBlockStatement in interface KjcVisitor

visitTypeDeclarationStatement

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

Specified by:
visitTypeDeclarationStatement in interface KjcVisitor

visitUnaryPlusExpression

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

Specified by:
visitUnaryPlusExpression in interface KjcVisitor

visitUnaryMinusExpression

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

Specified by:
visitUnaryMinusExpression in interface KjcVisitor

visitBitwiseComplementExpression

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

Specified by:
visitBitwiseComplementExpression in interface KjcVisitor

visitLogicalComplementExpression

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

Specified by:
visitLogicalComplementExpression in interface KjcVisitor

visitTypeNameExpression

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

Specified by:
visitTypeNameExpression in interface KjcVisitor

visitThisExpression

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

Specified by:
visitThisExpression in interface KjcVisitor

visitSuperExpression

public void visitSuperExpression(JSuperExpression self)
visits a super expression

Specified by:
visitSuperExpression in interface KjcVisitor

visitShiftExpression

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

Specified by:
visitShiftExpression in interface KjcVisitor

visitRelationalExpression

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

Specified by:
visitRelationalExpression in interface KjcVisitor

visitPrefixExpression

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

Specified by:
visitPrefixExpression in interface KjcVisitor

visitPostfixExpression

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

Specified by:
visitPostfixExpression in interface KjcVisitor

visitParenthesedExpression

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

Specified by:
visitParenthesedExpression in interface KjcVisitor

visitQualifiedAnonymousCreation

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

Specified by:
visitQualifiedAnonymousCreation in interface KjcVisitor

visitQualifiedInstanceCreation

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

Specified by:
visitQualifiedInstanceCreation in interface KjcVisitor

visitUnqualifiedAnonymousCreation

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

Specified by:
visitUnqualifiedAnonymousCreation in interface KjcVisitor

visitUnqualifiedInstanceCreation

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

Specified by:
visitUnqualifiedInstanceCreation in interface KjcVisitor

visitNewArrayExpression

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

Specified by:
visitNewArrayExpression in interface KjcVisitor

visitNameExpression

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

Specified by:
visitNameExpression in interface KjcVisitor

visitBinaryExpression

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

Specified by:
visitBinaryExpression in interface KjcVisitor

visitMethodCallExpression

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

Specified by:
visitMethodCallExpression in interface KjcVisitor

visitLocalVariableExpression

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

Specified by:
visitLocalVariableExpression in interface KjcVisitor

visitInstanceofExpression

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

Specified by:
visitInstanceofExpression in interface KjcVisitor

visitEqualityExpression

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

Specified by:
visitEqualityExpression in interface KjcVisitor

visitConditionalExpression

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

Specified by:
visitConditionalExpression in interface KjcVisitor

visitCompoundAssignmentExpression

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

Specified by:
visitCompoundAssignmentExpression in interface KjcVisitor

visitFieldExpression

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

Specified by:
visitFieldExpression in interface KjcVisitor

visitClassExpression

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

Specified by:
visitClassExpression in interface KjcVisitor

visitCastExpression

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

Specified by:
visitCastExpression in interface KjcVisitor

visitUnaryPromoteExpression

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

Specified by:
visitUnaryPromoteExpression in interface KjcVisitor

visitBitwiseExpression

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

Specified by:
visitBitwiseExpression in interface KjcVisitor

visitAssignmentExpression

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

Specified by:
visitAssignmentExpression in interface KjcVisitor

visitArrayLengthExpression

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

Specified by:
visitArrayLengthExpression in interface KjcVisitor

visitArrayAccessExpression

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

Specified by:
visitArrayAccessExpression in interface KjcVisitor

visitComments

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

Specified by:
visitComments in interface KjcVisitor

visitComment

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

Specified by:
visitComment in interface KjcVisitor

visitJavadoc

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

Specified by:
visitJavadoc in interface KjcVisitor

visitSwitchLabel

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

Specified by:
visitSwitchLabel in interface KjcVisitor

visitSwitchGroup

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

Specified by:
visitSwitchGroup in interface KjcVisitor

visitCatchClause

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

Specified by:
visitCatchClause in interface KjcVisitor

visitFormalParameters

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

Specified by:
visitFormalParameters in interface KjcVisitor

visitConstructorCall

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

Specified by:
visitConstructorCall in interface KjcVisitor

visitArrayInitializer

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

Specified by:
visitArrayInitializer in interface KjcVisitor

visitBooleanLiteral

public void visitBooleanLiteral(boolean value)
visits a boolean literal

Specified by:
visitBooleanLiteral in interface KjcVisitor

visitByteLiteral

public void visitByteLiteral(byte value)
visits a byte literal

Specified by:
visitByteLiteral in interface KjcVisitor

visitCharLiteral

public void visitCharLiteral(char value)
visits a character literal

Specified by:
visitCharLiteral in interface KjcVisitor

visitDoubleLiteral

public void visitDoubleLiteral(double value)
visits a double literal

Specified by:
visitDoubleLiteral in interface KjcVisitor

visitFloatLiteral

public void visitFloatLiteral(float value)
visits a float literal

Specified by:
visitFloatLiteral in interface KjcVisitor

visitIntLiteral

public void visitIntLiteral(int value)
visits a int literal

Specified by:
visitIntLiteral in interface KjcVisitor

visitLongLiteral

public void visitLongLiteral(long value)
visits a long literal

Specified by:
visitLongLiteral in interface KjcVisitor

visitShortLiteral

public void visitShortLiteral(short value)
visits a short literal

Specified by:
visitShortLiteral in interface KjcVisitor

visitStringLiteral

public void visitStringLiteral(String value)
visits a string literal

Specified by:
visitStringLiteral in interface KjcVisitor

visitNullLiteral

public void visitNullLiteral()
visits a null literal

Specified by:
visitNullLiteral in interface KjcVisitor

visitPackageName

public void visitPackageName(String name)
visits a package name declaration

Specified by:
visitPackageName in interface KjcVisitor

visitPackageImport

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

Specified by:
visitPackageImport in interface KjcVisitor

visitClassImport

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

Specified by:
visitClassImport in interface KjcVisitor

visitInitStatement

public void visitInitStatement(SIRInitStatement self,
                               SIRStream target)
Visits an init statement.

Specified by:
visitInitStatement in interface SLIRVisitor

visitInterfaceTable

public void visitInterfaceTable(SIRInterfaceTable self)
Visits an interface table.

Specified by:
visitInterfaceTable in interface SLIRVisitor

visitLatency

public void visitLatency(SIRLatency self)
Visits a latency.

Specified by:
visitLatency in interface SLIRVisitor

visitLatencyMax

public void visitLatencyMax(SIRLatencyMax self)
Visits a max latency.

Specified by:
visitLatencyMax in interface SLIRVisitor

visitLatencyRange

public void visitLatencyRange(SIRLatencyRange self)
Visits a latency range.

Specified by:
visitLatencyRange in interface SLIRVisitor

visitLatencySet

public void visitLatencySet(SIRLatencySet self)
Visits a latency set.

Specified by:
visitLatencySet in interface SLIRVisitor

visitMessageStatement

public void visitMessageStatement(SIRMessageStatement self,
                                  JExpression portal,
                                  String iname,
                                  String ident,
                                  JExpression[] args,
                                  SIRLatency latency)
Visits a message statement.

Specified by:
visitMessageStatement in interface SLIRVisitor

visitRangeExpression

public void visitRangeExpression(SIRRangeExpression self)
Description copied from interface: SLIRVisitor
Visits a range expression.

Specified by:
visitRangeExpression in interface SLIRVisitor

visitDynamicToken

public void visitDynamicToken(SIRDynamicToken self)
Description copied from interface: SLIRVisitor
Visits a dynamic token.

Specified by:
visitDynamicToken in interface SLIRVisitor

visitPeekExpression

public void visitPeekExpression(SIRPeekExpression self,
                                CType tapeType,
                                JExpression arg)
Visits a peek expression.

Specified by:
visitPeekExpression in interface SLIRVisitor

visitPopExpression

public void visitPopExpression(SIRPopExpression self,
                               CType tapeType)
Visits a pop expression.

Specified by:
visitPopExpression in interface SLIRVisitor

visitPortal

public void visitPortal(SIRPortal self)
Visits a message-receiving portal.

Specified by:
visitPortal in interface SLIRVisitor

visitPrintStatement

public void visitPrintStatement(SIRPrintStatement self,
                                JExpression arg)
Visits a print statement.

Specified by:
visitPrintStatement in interface SLIRVisitor

visitCreatePortalExpression

public void visitCreatePortalExpression(SIRCreatePortal self)
Specified by:
visitCreatePortalExpression in interface SLIRVisitor

visitPushExpression

public void visitPushExpression(SIRPushExpression self,
                                CType tapeType,
                                JExpression arg)
Visits a push expression.

Specified by:
visitPushExpression in interface SLIRVisitor

visitRegReceiverStatement

public void visitRegReceiverStatement(SIRRegReceiverStatement self,
                                      JExpression portal,
                                      SIRStream receiver,
                                      JMethodDeclaration[] methods)
Visits a register-receiver statement.

Specified by:
visitRegReceiverStatement in interface SLIRVisitor

visitRegSenderStatement

public void visitRegSenderStatement(SIRRegSenderStatement self,
                                    String portal,
                                    SIRLatency latency)
Visits a register-sender statement.

Specified by:
visitRegSenderStatement in interface SLIRVisitor

visitMarker

public void visitMarker(SIRMarker self)
Visits a marker statement.

Specified by:
visitMarker in interface SLIRVisitor

visitFunctionPointer

public void visitFunctionPointer(LIRFunctionPointer self,
                                 String name)
Visits a function pointer.

Specified by:
visitFunctionPointer in interface SLIRVisitor

visitNode

public void visitNode(LIRNode self)
Visits an LIR node.

Specified by:
visitNode in interface SLIRVisitor

visitRegisterReceiver

public void visitRegisterReceiver(LIRRegisterReceiver self,
                                  JExpression streamContext,
                                  SIRPortal portal,
                                  String childName,
                                  SIRInterfaceTable itable)
Visits an LIR register-receiver statement.

Specified by:
visitRegisterReceiver in interface SLIRVisitor

visitSetChild

public void visitSetChild(LIRSetChild self,
                          JExpression streamContext,
                          String childType,
                          String childName)
Visits a child registration node.

Specified by:
visitSetChild in interface SLIRVisitor

visitSetDecode

public void visitSetDecode(LIRSetDecode self,
                           JExpression streamContext,
                           LIRFunctionPointer fp)
Visits a decoder registration node.

Specified by:
visitSetDecode in interface SLIRVisitor

visitSetDelay

public void visitSetDelay(LIRSetDelay self,
                          JExpression data,
                          JExpression streamContext,
                          int delay,
                          CType type,
                          LIRFunctionPointer fp)
Visit a feedback loop delay node.

Specified by:
visitSetDelay in interface SLIRVisitor

visitSetEncode

public void visitSetEncode(LIRSetEncode self,
                           JExpression streamContext,
                           LIRFunctionPointer fp)
Visits an encoder registration node.

Specified by:
visitSetEncode in interface SLIRVisitor

visitSetJoiner

public void visitSetJoiner(LIRSetJoiner self,
                           JExpression streamContext,
                           SIRJoinType type,
                           int ways,
                           int[] weights)
Visits a joiner-setting node.

Specified by:
visitSetJoiner in interface SLIRVisitor

visitSetPeek

public void visitSetPeek(LIRSetPeek self,
                         JExpression streamContext,
                         int peek)
Visits a peek-rate-setting node.

Specified by:
visitSetPeek in interface SLIRVisitor

visitSetPop

public void visitSetPop(LIRSetPop self,
                        JExpression streamContext,
                        int pop)
Visits a pop-rate-setting node.

Specified by:
visitSetPop in interface SLIRVisitor

visitSetPush

public void visitSetPush(LIRSetPush self,
                         JExpression streamContext,
                         int push)
Visits a push-rate-setting node.

Specified by:
visitSetPush in interface SLIRVisitor

visitSetSplitter

public void visitSetSplitter(LIRSetSplitter self,
                             JExpression streamContext,
                             SIRSplitType type,
                             int ways,
                             int[] weights)
Visits a splitter-setting node.

Specified by:
visitSetSplitter in interface SLIRVisitor

visitSetStreamType

public void visitSetStreamType(LIRSetStreamType self,
                               JExpression streamContext,
                               LIRStreamType streamType)
Visits a stream-type-setting node.

Specified by:
visitSetStreamType in interface SLIRVisitor

visitSetWork

public void visitSetWork(LIRSetWork self,
                         JExpression streamContext,
                         LIRFunctionPointer fn)
Visits a work-function-setting node.

Specified by:
visitSetWork in interface SLIRVisitor

visitSetTape

public void visitSetTape(LIRSetTape self,
                         JExpression streamContext,
                         JExpression srcStruct,
                         JExpression dstStruct,
                         CType type,
                         int size)
Visits a tape-setter.

Specified by:
visitSetTape in interface SLIRVisitor

visitMainFunction

public void visitMainFunction(LIRMainFunction self,
                              String typeName,
                              LIRFunctionPointer init,
                              List<JStatement> initStatements)
Visits a main function contents.

Specified by:
visitMainFunction in interface SLIRVisitor

visitSetBodyOfFeedback

public void visitSetBodyOfFeedback(LIRSetBodyOfFeedback self,
                                   JExpression streamContext,
                                   JExpression childContext,
                                   CType inputType,
                                   CType outputType,
                                   int inputSize,
                                   int outputSize)
Visits a set body of feedback loop.

Specified by:
visitSetBodyOfFeedback in interface SLIRVisitor

visitSetLoopOfFeedback

public void visitSetLoopOfFeedback(LIRSetLoopOfFeedback self,
                                   JExpression streamContext,
                                   JExpression childContext,
                                   CType inputType,
                                   CType outputType,
                                   int inputSize,
                                   int outputSize)
Visits a set loop of feedback loop.

Specified by:
visitSetLoopOfFeedback in interface SLIRVisitor

visitFileReader

public void visitFileReader(LIRFileReader self)
Visits a file reader.

Specified by:
visitFileReader in interface SLIRVisitor

visitFileWriter

public void visitFileWriter(LIRFileWriter self)
Visits a file writer.

Specified by:
visitFileWriter in interface SLIRVisitor

visitIdentity

public void visitIdentity(LIRIdentity self)
Visits an identity creator.

Specified by:
visitIdentity in interface SLIRVisitor

visitSetParallelStream

public void visitSetParallelStream(LIRSetParallelStream self,
                                   JExpression streamContext,
                                   JExpression childContext,
                                   int position,
                                   CType inputType,
                                   CType outputType,
                                   int inputSize,
                                   int outputSize)
Visits a set a parallel stream.

Specified by:
visitSetParallelStream in interface SLIRVisitor

visitWorkEntry

public void visitWorkEntry(LIRWorkEntry self)
Visits a work function entry.

Specified by:
visitWorkEntry in interface SLIRVisitor

visitWorkExit

public void visitWorkExit(LIRWorkExit self)
Visits a work function exit.

Specified by:
visitWorkExit in interface SLIRVisitor

visitVectorLiteral

public void visitVectorLiteral(JVectorLiteral self,
                               JLiteral scalar)
Visits a vector literal.

Specified by:
visitVectorLiteral in interface SLIRVisitor

visitEmittedTextExpression

public void visitEmittedTextExpression(JEmittedTextExpression self,
                                       Object[] parts)
Specified by:
visitEmittedTextExpression in interface KjcVisitor