at.dms.kjc.lir
Class LIRToC

java.lang.Object
  extended by at.dms.kjc.KjcEmptyVisitor
      extended by at.dms.kjc.SLIREmptyVisitor
          extended by at.dms.kjc.common.ToCCommon
              extended by at.dms.kjc.lir.LIRToC
All Implemented Interfaces:
Constants, CodeGenerator, KjcVisitor, SLIRVisitor

public class LIRToC
extends ToCCommon
implements SLIRVisitor, Constants, CodeGenerator


Field Summary
protected  HashMap<JArrayInitializer,String> arrayInitializers
          Finds any assignments of static arrays in functions and replaces them with an assignment from a global pointer.
protected  String className
           
static String CONTEXT_NAME
           
protected  boolean declOnly
           
protected  boolean isStruct
           
protected  boolean nl
           
protected  int portalCount
           
protected  Map<SIRPortal,String> portalNames
           
static String THIS_CONTEXT_NAME
           
static String THIS_NAME
           
 
Fields inherited from class at.dms.kjc.common.ToCCommon
alternatePrintsForTiming, hasBoolType, lastLeft, p, printPostfixMap, printPrefixMap
 
Fields inherited from interface at.dms.kjc.Constants
CMP_VERSION, JAV_CLASS, JAV_CLONE, JAV_CLONEABLE, JAV_CONSTRUCTOR, JAV_ERROR, JAV_EXCEPTION, JAV_INIT, JAV_LENGTH, JAV_NAME_SEPARATOR, JAV_OBJECT, JAV_OUTER_THIS, JAV_RUNTIME, JAV_RUNTIME_EXCEPTION, JAV_STATIC_INIT, JAV_STRING, JAV_STRINGBUFFER, JAV_THIS, JAV_THROWABLE, OPE_BAND, OPE_BNOT, OPE_BOR, OPE_BSR, OPE_BXOR, OPE_EQ, OPE_GE, OPE_GT, OPE_LE, OPE_LNOT, OPE_LT, OPE_MINUS, OPE_NE, OPE_PERCENT, OPE_PLUS, OPE_POSTDEC, OPE_POSTINC, OPE_PREDEC, OPE_PREINC, OPE_SIMPLE, OPE_SL, OPE_SLASH, OPE_SR, OPE_STAR, TID_ARRAY, TID_BIT, TID_BOOLEAN, TID_BYTE, TID_CHAR, TID_CLASS, TID_DOUBLE, TID_FLOAT, TID_INT, TID_LONG, TID_SHORT, TID_VECTOR, TID_VOID, VECTOR_EMPTY
 
Fields inherited from interface at.dms.classfile.Constants
ACC_ABSTRACT, ACC_FINAL, ACC_INLINE, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, ATT_CODE, ATT_CONSTANTVALUE, ATT_DEPRECATED, ATT_EXCEPTIONS, ATT_GENERIC, ATT_INNERCLASSES, ATT_LINENUMBERTABLE, ATT_LOCALVARIABLETABLE, ATT_SOURCEFILE, ATT_SYNTHETIC, CST_CLASS, CST_DOUBLE, CST_FIELD, CST_FLOAT, CST_INTEGER, CST_INTERFACEMETHOD, CST_LONG, CST_METHOD, CST_NAMEANDTYPE, CST_STRING, CST_UTF8, ENV_DEBUG_MODE, ENV_USE_CACHE, JAVA_MAGIC, JAVA_MAJOR, JAVA_MINOR, MAX_CODE_PER_METHOD, opc_aaload, opc_aastore, opc_aconst_null, opc_aload, opc_aload_0, opc_aload_1, opc_aload_2, opc_aload_3, opc_anewarray, opc_areturn, opc_arraylength, opc_astore, opc_astore_0, opc_astore_1, opc_astore_2, opc_astore_3, opc_athrow, opc_baload, opc_bastore, opc_bipush, opc_caload, opc_castore, opc_checkcast, opc_d2f, opc_d2i, opc_d2l, opc_dadd, opc_daload, opc_dastore, opc_dcmpg, opc_dcmpl, opc_dconst_0, opc_dconst_1, opc_ddiv, opc_dload, opc_dload_0, opc_dload_1, opc_dload_2, opc_dload_3, opc_dmul, opc_dneg, opc_drem, opc_dreturn, opc_dstore, opc_dstore_0, opc_dstore_1, opc_dstore_2, opc_dstore_3, opc_dsub, opc_dup, opc_dup_x1, opc_dup_x2, opc_dup2, opc_dup2_x1, opc_dup2_x2, opc_f2d, opc_f2i, opc_f2l, opc_fadd, opc_faload, opc_fastore, opc_fcmpg, opc_fcmpl, opc_fconst_0, opc_fconst_1, opc_fconst_2, opc_fdiv, opc_fload, opc_fload_0, opc_fload_1, opc_fload_2, opc_fload_3, opc_fmul, opc_fneg, opc_frem, opc_freturn, opc_fstore, opc_fstore_0, opc_fstore_1, opc_fstore_2, opc_fstore_3, opc_fsub, opc_getfield, opc_getstatic, opc_goto, opc_goto_w, opc_i2b, opc_i2c, opc_i2d, opc_i2f, opc_i2l, opc_i2s, opc_iadd, opc_iaload, opc_iand, opc_iastore, opc_iconst_0, opc_iconst_1, opc_iconst_2, opc_iconst_3, opc_iconst_4, opc_iconst_5, opc_iconst_m1, opc_idiv, opc_if_acmpeq, opc_if_acmpne, opc_if_icmpeq, opc_if_icmpge, opc_if_icmpgt, opc_if_icmple, opc_if_icmplt, opc_if_icmpne, opc_ifeq, opc_ifge, opc_ifgt, opc_ifle, opc_iflt, opc_ifne, opc_ifnonnull, opc_ifnull, opc_iinc, opc_iload, opc_iload_0, opc_iload_1, opc_iload_2, opc_iload_3, opc_imul, opc_ineg, opc_instanceof, opc_invokeinterface, opc_invokespecial, opc_invokestatic, opc_invokevirtual, opc_ior, opc_irem, opc_ireturn, opc_ishl, opc_ishr, opc_istore, opc_istore_0, opc_istore_1, opc_istore_2, opc_istore_3, opc_isub, opc_iushr, opc_ixor, opc_jsr, opc_jsr_w, opc_l2d, opc_l2f, opc_l2i, opc_ladd, opc_laload, opc_land, opc_lastore, opc_lcmp, opc_lconst_0, opc_lconst_1, opc_ldc, opc_ldc_w, opc_ldc2_w, opc_ldiv, opc_lload, opc_lload_0, opc_lload_1, opc_lload_2, opc_lload_3, opc_lmul, opc_lneg, opc_lookupswitch, opc_lor, opc_lrem, opc_lreturn, opc_lshl, opc_lshr, opc_lstore, opc_lstore_0, opc_lstore_1, opc_lstore_2, opc_lstore_3, opc_lsub, opc_lushr, opc_lxor, opc_monitorenter, opc_monitorexit, opc_multianewarray, opc_new, opc_newarray, opc_nop, opc_pop, opc_pop2, opc_putfield, opc_putstatic, opc_ret, opc_return, opc_saload, opc_sastore, opc_sipush, opc_swap, opc_tableswitch, opc_wide, opc_xxxunusedxxx, POO_ASCII_CONSTANT, POO_CLASS_CONSTANT, POO_DOUBLE_CONSTANT, POO_FLOAT_CONSTANT, POO_INTEGER_CONSTANT, POO_LONG_CONSTANT, POO_NAT_CONSTANT, POO_REF_CONSTANT, POO_STRING_CONSTANT, TYP_ADDRESS, TYP_DOUBLE, TYP_FLOAT, TYP_INT, TYP_LONG, TYP_REFERENCE, TYP_VOID
 
Method Summary
 void close()
          Close the stream at the end
protected  void declareInitializedArray(CType baseType, String ident, JExpression expr, KjcVisitor visitor, boolean printInit)
          If printInit is true, the initializer is actually printed; otherwise just the declaration is printed.
protected  CType findBaseType(JArrayInitializer self)
          Tries to find base type of (sometimes getType() returns null)
protected  int findNumDims(JArrayInitializer self)
          Tries to find the number of dimensions of .
protected  int findSize(JArrayInitializer self)
          Returns the total number of elements in a multi-dimensional array.
 void gatherArrayInitializers(JClassDeclaration flat)
           
static void generateCode(JClassDeclaration flat)
          Generates code for and sends to System.out.
 void visitArgs(JExpression[] args, int base)
          prints an array length expression
 void visitArrayAccessExpression(JArrayAccessExpression self, JExpression prefix, JExpression accessor)
          prints an array access expression
 void visitArrayInitializer(JArrayInitializer self, JExpression[] elems)
          prints an array initializer expression
 void visitArrayLengthExpression(JArrayLengthExpression self, JExpression prefix)
          prints an array length expression
 void visitAssignmentExpression(JAssignmentExpression self, JExpression left, JExpression right)
          prints an assignment expression
 void visitBinaryExpression(JBinaryExpression self, String oper, JExpression left, JExpression right)
          prints an binary expression
 void visitBitwiseExpression(JBitwiseExpression self, int oper, JExpression left, JExpression right)
          prints a compound assignment expression
 void visitBooleanLiteral(boolean value)
          prints a boolean literal
 void visitByteLiteral(byte value)
          prints a byte literal
 void visitCatchClause(JCatchClause self, JFormalParameter exception, JBlock body)
          prints an array length expression
 void visitCharLiteral(char value)
          prints a character literal
 void visitClassBody(JTypeDeclaration[] decls, 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)
          prints a class declaration
 void visitClassImport(String name)
          prints an array length expression
 void visitComment(JavaStyleComment comment)
          prints a comment expression
 void visitComments(JavaStyleComment[] comments)
          prints a comment expression
 void visitCompilationUnit(JCompilationUnit self, JPackageName packageName, JPackageImport[] importedPackages, JClassImport[] importedClasses, JTypeDeclaration[] typeDeclarations)
          prints a compilation unit
 void visitConstructorCall(JConstructorCall self, boolean functorIsThis, JExpression[] params)
          prints an array length expression
 void visitConstructorDeclaration(JConstructorDeclaration self, int modifiers, String ident, JFormalParameter[] parameters, CClassType[] exceptions, JConstructorBlock body)
          prints a method declaration
 void visitCreatePortalExpression(SIRCreatePortal self)
           
 void visitDoubleLiteral(double value)
          prints a double literal
 void visitDynamicToken(SIRDynamicToken self)
          Visits a dynamic token.
 void visitEmptyStatement(JEmptyStatement self)
          prints a empty statement
 void visitFieldDeclaration(JFieldDeclaration self, int modifiers, CType type, String ident, JExpression expr)
          prints a field declaration
 void visitFieldExpression(JFieldAccessExpression self, JExpression left, String ident)
          prints a field expression
 void visitFileReader(LIRFileReader self)
          Visits a file reader.
 void visitFileWriter(LIRFileWriter self)
          Visits a file writer.
 void visitFloatLiteral(float value)
          prints a float literal
 void visitFormalParameters(JFormalParameter self, boolean isFinal, CType type, String ident)
          prints an array length expression
 void visitForStatement(JForStatement self, JStatement init, JExpression cond, JStatement incr, JStatement body)
          prints a for statement
 void visitFunctionPointer(LIRFunctionPointer self, String name)
          Visits a function pointer.
 void visitIdentity(LIRIdentity self)
          Visits an identity filter.
 void visitIfStatement(JIfStatement self, JExpression cond, JStatement thenClause, JStatement elseClause)
          prints a if statement
 void visitInitStatement(SIRInitStatement self, SIRStream stream)
          Visits an init statement.
 void visitInnerClassDeclaration(JClassDeclaration self, int modifiers, String ident, String superName, CClassType[] interfaces, JTypeDeclaration[] decls, JPhylum[] body, JFieldDeclaration[] fields, JMethodDeclaration[] methods)
          prints a class declaration
 void visitInterfaceDeclaration(JInterfaceDeclaration self, int modifiers, String ident, CClassType[] interfaces, JPhylum[] body, JMethodDeclaration[] methods)
          prints an interface declaration
 void visitInterfaceTable(SIRInterfaceTable self)
          Visits an interface table.
 void visitIntLiteral(int value)
          prints a int literal
 void visitJavadoc(JavadocComment comment)
          prints a Javadoc expression
 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 visitLongLiteral(long value)
          prints a long literal
 void visitMainFunction(LIRMainFunction self, String typeName, LIRFunctionPointer init, List<JStatement> initStatements)
          Visits a main function contents.
 void visitMessageStatement(SIRMessageStatement self, JExpression portal, String iname, String ident, JExpression[] params, SIRLatency latency)
          Visits a message statement.
 void visitMethodCallExpression(JMethodCallExpression self, JExpression prefix, String ident, JExpression[] args)
          prints a method call expression
 void visitMethodDeclaration(JMethodDeclaration self, int modifiers, CType returnType, String ident, JFormalParameter[] parameters, CClassType[] exceptions, JBlock body)
          prints a method declaration
 void visitNameExpression(JNameExpression self, JExpression prefix, String ident)
          prints a name expression
 void visitNode(LIRNode self)
          Visits an LIR node.
 void visitNullLiteral()
          prints a null literal
 void visitPackageImport(String name)
          prints an array length expression
 void visitPackageName(String name)
          prints an array length expression
 void visitPeekExpression(SIRPeekExpression self, CType tapeType, JExpression num)
          Visits a peek expression.
 void visitPopExpression(SIRPopExpression self, CType tapeType)
          Visits a pop expression.
 void visitPortal(SIRPortal self)
          Visits a message-receiving portal.
 void visitPushExpression(SIRPushExpression self, CType tapeType, JExpression val)
          Visits a push expression.
 void visitQualifiedAnonymousCreation(JQualifiedAnonymousCreation self, JExpression prefix, String ident, JExpression[] params, JClassDeclaration decl)
          Prints an unqualified anonymous class instance creation expression.
 void visitQualifiedInstanceCreation(JQualifiedInstanceCreation self, JExpression prefix, String ident, JExpression[] params)
          Prints 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 fn, SIRLatency latency)
          Visits a register-sender statement.
 void visitRelationalExpression(JRelationalExpression self, int oper, JExpression left, JExpression right)
          prints a shift expressiona
 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, JExpression childContext)
          Visits a child registration node.
 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)
          Visits 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 registerer.
 void visitSetWork(LIRSetWork self, JExpression streamContext, LIRFunctionPointer fn)
          Visits a work-function-setting node.
 void visitShortLiteral(short value)
          prints a short literal
 void visitStringLiteral(String value)
          prints a string literal
 void visitSuperExpression(JSuperExpression self)
          prints a super expression
 void visitSwitchGroup(JSwitchGroup self, JSwitchLabel[] labels, JStatement[] stmts)
          prints an array length expression
 void visitSwitchLabel(JSwitchLabel self, JExpression expr)
          prints an array length expression
 void visitSynchronizedStatement(JSynchronizedStatement self, JExpression cond, JStatement body)
          prints a synchronized statement
 void visitThisExpression(JThisExpression self, JExpression prefix)
          prints a this expression
 void visitThrowStatement(JThrowStatement self, JExpression expr)
          prints a throw statement
 void visitTryCatchStatement(JTryCatchStatement self, JBlock tryClause, JCatchClause[] catchClauses)
          prints a try-catch statement
 void visitTryFinallyStatement(JTryFinallyStatement self, JBlock tryClause, JBlock finallyClause)
          prints a try-finally statement
 void visitUnqualifiedAnonymousCreation(JUnqualifiedAnonymousCreation self, CClassType type, JExpression[] params, JClassDeclaration decl)
          Prints an unqualified anonymous class instance creation expression.
 void visitUnqualifiedInstanceCreation(JUnqualifiedInstanceCreation self, CClassType type, JExpression[] params)
          Prints an unqualified instance creation expression.
 void visitVariableDefinition(JVariableDefinition self, int modifiers, CType type, String ident, JExpression expr)
          prints a variable declaration 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.kjc.common.ToCCommon
getPrinter, makeArrayStrings, makeString, printDecl, printExp, printLParen, printRParen, printType, splitForPrint, visitBitwiseComplementExpression, visitBlockStatement, visitBreakStatement, visitCastExpression, visitClassExpression, visitCompoundAssignmentExpression, visitCompoundStatement, visitCompoundStatement, visitConditionalExpression, visitContinueStatement, visitDoStatement, visitEmittedTextExpression, visitEqualityExpression, visitExpressionListStatement, visitExpressionStatement, visitLabeledStatement, visitLocalVariableExpression, visitLogicalComplementExpression, visitMarker, visitParenthesedExpression, visitPostfixExpression, visitPrefixExpression, visitPrintStatement, visitReturnStatement, visitShiftExpression, visitSwitchStatement, visitTypeDeclarationStatement, visitTypeNameExpression, visitUnaryMinusExpression, visitUnaryPlusExpression, visitUnaryPromoteExpression, visitVariableDeclarationStatement, visitWhileStatement
 
Methods inherited from class at.dms.kjc.SLIREmptyVisitor
visitInlineAssembly, visitVectorLiteral
 
Methods inherited from class at.dms.kjc.KjcEmptyVisitor
visitArgs, visitInstanceofExpression, visitNewArrayExpression
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface at.dms.kjc.common.CodeGenerator
getPrinter
 

Field Detail

THIS_NAME

public static final String THIS_NAME
See Also:
Constant Field Values

CONTEXT_NAME

public static final String CONTEXT_NAME
See Also:
Constant Field Values

THIS_CONTEXT_NAME

public static final String THIS_CONTEXT_NAME
See Also:
Constant Field Values

arrayInitializers

protected HashMap<JArrayInitializer,String> arrayInitializers
Finds any assignments of static arrays in functions and replaces them with an assignment from a global pointer. For example, takes this original code: void Foo_init(Foo_1 data) { data->x = {1, 1, 1} } And produces something like this (name of generated field may differ): int _Foo_init_x[3] = {1, 1, 1} void Foo_init(Foo_1 data) { data->x = _Foo_init_x; } The declaration of the array is written to the output using print() methods. The array initializer is stored in a hashmap for identification in later stages to print a reference to the variable instead of printing the static array.


className

protected String className

isStruct

protected boolean isStruct

nl

protected boolean nl

declOnly

protected boolean declOnly

portalCount

protected int portalCount

portalNames

protected Map<SIRPortal,String> portalNames
Method Detail

generateCode

public static void generateCode(JClassDeclaration flat)
Generates code for and sends to System.out.


close

public void close()
Close the stream at the end


visitCompilationUnit

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

Specified by:
visitCompilationUnit in interface KjcVisitor
Overrides:
visitCompilationUnit in class KjcEmptyVisitor

visitClassDeclaration

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

Specified by:
visitClassDeclaration in interface KjcVisitor
Overrides:
visitClassDeclaration in class KjcEmptyVisitor

visitClassBody

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

Specified by:
visitClassBody in interface KjcVisitor
Overrides:
visitClassBody in class KjcEmptyVisitor

visitInnerClassDeclaration

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

Specified by:
visitInnerClassDeclaration in interface KjcVisitor
Overrides:
visitInnerClassDeclaration in class KjcEmptyVisitor

visitInterfaceDeclaration

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

Specified by:
visitInterfaceDeclaration in interface KjcVisitor
Overrides:
visitInterfaceDeclaration in class KjcEmptyVisitor

visitFieldDeclaration

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

Specified by:
visitFieldDeclaration in interface KjcVisitor
Overrides:
visitFieldDeclaration in class KjcEmptyVisitor

visitMethodDeclaration

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

Specified by:
visitMethodDeclaration in interface KjcVisitor
Overrides:
visitMethodDeclaration in class KjcEmptyVisitor

visitConstructorDeclaration

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

Specified by:
visitConstructorDeclaration in interface KjcVisitor
Overrides:
visitConstructorDeclaration in class KjcEmptyVisitor

visitVariableDefinition

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

Specified by:
visitVariableDefinition in interface KjcVisitor
Overrides:
visitVariableDefinition in class KjcEmptyVisitor

visitTryCatchStatement

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

Specified by:
visitTryCatchStatement in interface KjcVisitor
Overrides:
visitTryCatchStatement in class KjcEmptyVisitor

visitTryFinallyStatement

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

Specified by:
visitTryFinallyStatement in interface KjcVisitor
Overrides:
visitTryFinallyStatement in class KjcEmptyVisitor

visitThrowStatement

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

Specified by:
visitThrowStatement in interface KjcVisitor
Overrides:
visitThrowStatement in class KjcEmptyVisitor

visitSynchronizedStatement

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

Specified by:
visitSynchronizedStatement in interface KjcVisitor
Overrides:
visitSynchronizedStatement in class KjcEmptyVisitor

visitIfStatement

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

Specified by:
visitIfStatement in interface KjcVisitor
Overrides:
visitIfStatement in class KjcEmptyVisitor

visitForStatement

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

Specified by:
visitForStatement in interface KjcVisitor
Overrides:
visitForStatement in class ToCCommon

visitEmptyStatement

public void visitEmptyStatement(JEmptyStatement self)
prints a empty statement

Specified by:
visitEmptyStatement in interface KjcVisitor
Overrides:
visitEmptyStatement in class ToCCommon

visitThisExpression

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

Specified by:
visitThisExpression in interface KjcVisitor
Overrides:
visitThisExpression in class KjcEmptyVisitor

visitSuperExpression

public void visitSuperExpression(JSuperExpression self)
prints a super expression

Specified by:
visitSuperExpression in interface KjcVisitor
Overrides:
visitSuperExpression in class KjcEmptyVisitor

visitRelationalExpression

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

Specified by:
visitRelationalExpression in interface KjcVisitor
Overrides:
visitRelationalExpression in class KjcEmptyVisitor

visitQualifiedAnonymousCreation

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

Specified by:
visitQualifiedAnonymousCreation in interface KjcVisitor
Overrides:
visitQualifiedAnonymousCreation in class KjcEmptyVisitor

visitQualifiedInstanceCreation

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

Specified by:
visitQualifiedInstanceCreation in interface KjcVisitor
Overrides:
visitQualifiedInstanceCreation in class KjcEmptyVisitor

visitUnqualifiedAnonymousCreation

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

Specified by:
visitUnqualifiedAnonymousCreation in interface KjcVisitor
Overrides:
visitUnqualifiedAnonymousCreation in class KjcEmptyVisitor

visitUnqualifiedInstanceCreation

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

Specified by:
visitUnqualifiedInstanceCreation in interface KjcVisitor
Overrides:
visitUnqualifiedInstanceCreation in class KjcEmptyVisitor

visitNameExpression

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

Specified by:
visitNameExpression in interface KjcVisitor
Overrides:
visitNameExpression in class KjcEmptyVisitor

visitBinaryExpression

public void visitBinaryExpression(JBinaryExpression self,
                                  String oper,
                                  JExpression left,
                                  JExpression right)
prints an binary expression

Specified by:
visitBinaryExpression in interface KjcVisitor
Overrides:
visitBinaryExpression in class KjcEmptyVisitor

visitMethodCallExpression

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

Specified by:
visitMethodCallExpression in interface KjcVisitor
Overrides:
visitMethodCallExpression in class KjcEmptyVisitor

visitFieldExpression

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

Specified by:
visitFieldExpression in interface KjcVisitor
Overrides:
visitFieldExpression in class KjcEmptyVisitor

visitBitwiseExpression

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

Specified by:
visitBitwiseExpression in interface KjcVisitor
Overrides:
visitBitwiseExpression in class KjcEmptyVisitor

visitAssignmentExpression

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

Specified by:
visitAssignmentExpression in interface KjcVisitor
Overrides:
visitAssignmentExpression in class KjcEmptyVisitor

visitArrayLengthExpression

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

Specified by:
visitArrayLengthExpression in interface KjcVisitor
Overrides:
visitArrayLengthExpression in class KjcEmptyVisitor

visitArrayAccessExpression

public void visitArrayAccessExpression(JArrayAccessExpression self,
                                       JExpression prefix,
                                       JExpression accessor)
prints an array access expression

Specified by:
visitArrayAccessExpression in interface KjcVisitor
Overrides:
visitArrayAccessExpression in class KjcEmptyVisitor

visitComments

public void visitComments(JavaStyleComment[] comments)
prints a comment expression

Specified by:
visitComments in interface KjcVisitor
Overrides:
visitComments in class KjcEmptyVisitor

visitComment

public void visitComment(JavaStyleComment comment)
prints a comment expression

Specified by:
visitComment in interface KjcVisitor
Overrides:
visitComment in class KjcEmptyVisitor

visitJavadoc

public void visitJavadoc(JavadocComment comment)
prints a Javadoc expression

Specified by:
visitJavadoc in interface KjcVisitor
Overrides:
visitJavadoc in class KjcEmptyVisitor

visitCreatePortalExpression

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

visitInitStatement

public void visitInitStatement(SIRInitStatement self,
                               SIRStream stream)
Description copied from class: SLIREmptyVisitor
Visits an init statement.

Specified by:
visitInitStatement in interface SLIRVisitor
Overrides:
visitInitStatement in class SLIREmptyVisitor

visitInterfaceTable

public void visitInterfaceTable(SIRInterfaceTable self)
Description copied from class: SLIREmptyVisitor
Visits an interface table.

Specified by:
visitInterfaceTable in interface SLIRVisitor
Overrides:
visitInterfaceTable in class SLIREmptyVisitor

visitLatency

public void visitLatency(SIRLatency self)
Description copied from class: SLIREmptyVisitor
Visits a latency.

Specified by:
visitLatency in interface SLIRVisitor
Overrides:
visitLatency in class SLIREmptyVisitor

visitLatencyMax

public void visitLatencyMax(SIRLatencyMax self)
Description copied from class: SLIREmptyVisitor
Visits a max latency.

Specified by:
visitLatencyMax in interface SLIRVisitor
Overrides:
visitLatencyMax in class SLIREmptyVisitor

visitLatencyRange

public void visitLatencyRange(SIRLatencyRange self)
Description copied from class: SLIREmptyVisitor
Visits a latency range.

Specified by:
visitLatencyRange in interface SLIRVisitor
Overrides:
visitLatencyRange in class SLIREmptyVisitor

visitLatencySet

public void visitLatencySet(SIRLatencySet self)
Description copied from class: SLIREmptyVisitor
Visits a latency set.

Specified by:
visitLatencySet in interface SLIRVisitor
Overrides:
visitLatencySet in class SLIREmptyVisitor

visitMessageStatement

public void visitMessageStatement(SIRMessageStatement self,
                                  JExpression portal,
                                  String iname,
                                  String ident,
                                  JExpression[] params,
                                  SIRLatency latency)
Description copied from class: SLIREmptyVisitor
Visits a message statement.

Specified by:
visitMessageStatement in interface SLIRVisitor
Overrides:
visitMessageStatement in class SLIREmptyVisitor

visitRangeExpression

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

Specified by:
visitRangeExpression in interface SLIRVisitor
Overrides:
visitRangeExpression in class SLIREmptyVisitor

visitDynamicToken

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

Specified by:
visitDynamicToken in interface SLIRVisitor
Overrides:
visitDynamicToken in class SLIREmptyVisitor

visitPeekExpression

public void visitPeekExpression(SIRPeekExpression self,
                                CType tapeType,
                                JExpression num)
Description copied from class: SLIREmptyVisitor
Visits a peek expression.

Specified by:
visitPeekExpression in interface SLIRVisitor
Overrides:
visitPeekExpression in class SLIREmptyVisitor

visitPopExpression

public void visitPopExpression(SIRPopExpression self,
                               CType tapeType)
Description copied from class: SLIREmptyVisitor
Visits a pop expression.

Specified by:
visitPopExpression in interface SLIRVisitor
Overrides:
visitPopExpression in class SLIREmptyVisitor

visitPortal

public void visitPortal(SIRPortal self)
Description copied from class: SLIREmptyVisitor
Visits a message-receiving portal.

Specified by:
visitPortal in interface SLIRVisitor
Overrides:
visitPortal in class SLIREmptyVisitor

visitPushExpression

public void visitPushExpression(SIRPushExpression self,
                                CType tapeType,
                                JExpression val)
Description copied from class: SLIREmptyVisitor
Visits a push expression.

Specified by:
visitPushExpression in interface SLIRVisitor
Overrides:
visitPushExpression in class SLIREmptyVisitor

visitRegReceiverStatement

public void visitRegReceiverStatement(SIRRegReceiverStatement self,
                                      JExpression portal,
                                      SIRStream receiver,
                                      JMethodDeclaration[] methods)
Description copied from class: SLIREmptyVisitor
Visits a register-receiver statement.

Specified by:
visitRegReceiverStatement in interface SLIRVisitor
Overrides:
visitRegReceiverStatement in class SLIREmptyVisitor

visitRegSenderStatement

public void visitRegSenderStatement(SIRRegSenderStatement self,
                                    String fn,
                                    SIRLatency latency)
Description copied from class: SLIREmptyVisitor
Visits a register-sender statement.

Specified by:
visitRegSenderStatement in interface SLIRVisitor
Overrides:
visitRegSenderStatement in class SLIREmptyVisitor

visitFileReader

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

Specified by:
visitFileReader in interface SLIRVisitor
Overrides:
visitFileReader in class SLIREmptyVisitor

visitFileWriter

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

Specified by:
visitFileWriter in interface SLIRVisitor
Overrides:
visitFileWriter in class SLIREmptyVisitor

visitIdentity

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

Specified by:
visitIdentity in interface SLIRVisitor
Overrides:
visitIdentity in class SLIREmptyVisitor

visitSetChild

public void visitSetChild(LIRSetChild self,
                          JExpression streamContext,
                          String childType,
                          String childName)
Description copied from class: SLIREmptyVisitor
Visits a child registration node.

Specified by:
visitSetChild in interface SLIRVisitor
Overrides:
visitSetChild in class SLIREmptyVisitor

visitSetTape

public void visitSetTape(LIRSetTape self,
                         JExpression streamContext,
                         JExpression srcStruct,
                         JExpression dstStruct,
                         CType type,
                         int size)
Description copied from class: SLIREmptyVisitor
Visits a tape registerer.

Specified by:
visitSetTape in interface SLIRVisitor
Overrides:
visitSetTape in class SLIREmptyVisitor

visitFunctionPointer

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

Specified by:
visitFunctionPointer in interface SLIRVisitor
Overrides:
visitFunctionPointer in class SLIREmptyVisitor

visitNode

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

Specified by:
visitNode in interface SLIRVisitor
Overrides:
visitNode in class SLIREmptyVisitor

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
Overrides:
visitRegisterReceiver in class SLIREmptyVisitor

visitSetChild

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


visitSetDecode

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

Specified by:
visitSetDecode in interface SLIRVisitor
Overrides:
visitSetDecode in class SLIREmptyVisitor

visitSetDelay

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

Specified by:
visitSetDelay in interface SLIRVisitor
Overrides:
visitSetDelay in class SLIREmptyVisitor

visitSetEncode

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

Specified by:
visitSetEncode in interface SLIRVisitor
Overrides:
visitSetEncode in class SLIREmptyVisitor

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
Overrides:
visitSetJoiner in class SLIREmptyVisitor

visitSetPeek

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

Specified by:
visitSetPeek in interface SLIRVisitor
Overrides:
visitSetPeek in class SLIREmptyVisitor

visitSetPop

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

Specified by:
visitSetPop in interface SLIRVisitor
Overrides:
visitSetPop in class SLIREmptyVisitor

visitSetPush

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

Specified by:
visitSetPush in interface SLIRVisitor
Overrides:
visitSetPush in class SLIREmptyVisitor

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
Overrides:
visitSetSplitter in class SLIREmptyVisitor

visitSetStreamType

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

Specified by:
visitSetStreamType in interface SLIRVisitor
Overrides:
visitSetStreamType in class SLIREmptyVisitor

visitSetWork

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

Specified by:
visitSetWork in interface SLIRVisitor
Overrides:
visitSetWork in class SLIREmptyVisitor

visitMainFunction

public void visitMainFunction(LIRMainFunction self,
                              String typeName,
                              LIRFunctionPointer init,
                              List<JStatement> initStatements)
Description copied from class: SLIREmptyVisitor
Visits a main function contents.

Specified by:
visitMainFunction in interface SLIRVisitor
Overrides:
visitMainFunction in class SLIREmptyVisitor

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
Overrides:
visitSetBodyOfFeedback in class SLIREmptyVisitor

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
Overrides:
visitSetLoopOfFeedback in class SLIREmptyVisitor

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
Overrides:
visitSetParallelStream in class SLIREmptyVisitor

visitWorkEntry

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

Specified by:
visitWorkEntry in interface SLIRVisitor
Overrides:
visitWorkEntry in class SLIREmptyVisitor

visitWorkExit

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

Specified by:
visitWorkExit in interface SLIRVisitor
Overrides:
visitWorkExit in class SLIREmptyVisitor

visitSwitchLabel

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

Specified by:
visitSwitchLabel in interface KjcVisitor
Overrides:
visitSwitchLabel in class KjcEmptyVisitor

visitSwitchGroup

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

Specified by:
visitSwitchGroup in interface KjcVisitor
Overrides:
visitSwitchGroup in class KjcEmptyVisitor

visitCatchClause

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

Specified by:
visitCatchClause in interface KjcVisitor
Overrides:
visitCatchClause in class KjcEmptyVisitor

visitBooleanLiteral

public void visitBooleanLiteral(boolean value)
prints a boolean literal

Specified by:
visitBooleanLiteral in interface KjcVisitor
Overrides:
visitBooleanLiteral in class KjcEmptyVisitor

visitByteLiteral

public void visitByteLiteral(byte value)
prints a byte literal

Specified by:
visitByteLiteral in interface KjcVisitor
Overrides:
visitByteLiteral in class KjcEmptyVisitor

visitCharLiteral

public void visitCharLiteral(char value)
prints a character literal

Specified by:
visitCharLiteral in interface KjcVisitor
Overrides:
visitCharLiteral in class KjcEmptyVisitor

visitDoubleLiteral

public void visitDoubleLiteral(double value)
prints a double literal

Specified by:
visitDoubleLiteral in interface KjcVisitor
Overrides:
visitDoubleLiteral in class KjcEmptyVisitor

visitFloatLiteral

public void visitFloatLiteral(float value)
prints a float literal

Specified by:
visitFloatLiteral in interface KjcVisitor
Overrides:
visitFloatLiteral in class KjcEmptyVisitor

visitIntLiteral

public void visitIntLiteral(int value)
prints a int literal

Specified by:
visitIntLiteral in interface KjcVisitor
Overrides:
visitIntLiteral in class KjcEmptyVisitor

visitLongLiteral

public void visitLongLiteral(long value)
prints a long literal

Specified by:
visitLongLiteral in interface KjcVisitor
Overrides:
visitLongLiteral in class KjcEmptyVisitor

visitShortLiteral

public void visitShortLiteral(short value)
prints a short literal

Specified by:
visitShortLiteral in interface KjcVisitor
Overrides:
visitShortLiteral in class KjcEmptyVisitor

visitStringLiteral

public void visitStringLiteral(String value)
prints a string literal

Specified by:
visitStringLiteral in interface KjcVisitor
Overrides:
visitStringLiteral in class KjcEmptyVisitor

visitNullLiteral

public void visitNullLiteral()
prints a null literal

Specified by:
visitNullLiteral in interface KjcVisitor
Overrides:
visitNullLiteral in class KjcEmptyVisitor

visitPackageName

public void visitPackageName(String name)
prints an array length expression

Specified by:
visitPackageName in interface KjcVisitor
Overrides:
visitPackageName in class KjcEmptyVisitor

visitPackageImport

public void visitPackageImport(String name)
prints an array length expression

Specified by:
visitPackageImport in interface KjcVisitor
Overrides:
visitPackageImport in class KjcEmptyVisitor

visitClassImport

public void visitClassImport(String name)
prints an array length expression

Specified by:
visitClassImport in interface KjcVisitor
Overrides:
visitClassImport in class KjcEmptyVisitor

visitFormalParameters

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

Specified by:
visitFormalParameters in interface KjcVisitor
Overrides:
visitFormalParameters in class KjcEmptyVisitor

visitArgs

public void visitArgs(JExpression[] args,
                      int base)
prints an array length expression


visitConstructorCall

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

Specified by:
visitConstructorCall in interface KjcVisitor
Overrides:
visitConstructorCall in class KjcEmptyVisitor

visitArrayInitializer

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

Specified by:
visitArrayInitializer in interface KjcVisitor
Overrides:
visitArrayInitializer in class KjcEmptyVisitor

findNumDims

protected int findNumDims(JArrayInitializer self)
Tries to find the number of dimensions of .


findSize

protected int findSize(JArrayInitializer self)
Returns the total number of elements in a multi-dimensional array. For example, "A[2][2]" has 4 elements.


findBaseType

protected CType findBaseType(JArrayInitializer self)
Tries to find base type of (sometimes getType() returns null)


declareInitializedArray

protected void declareInitializedArray(CType baseType,
                                       String ident,
                                       JExpression expr,
                                       KjcVisitor visitor,
                                       boolean printInit)
If printInit is true, the initializer is actually printed; otherwise just the declaration is printed.


gatherArrayInitializers

public void gatherArrayInitializers(JClassDeclaration flat)