|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectat.dms.kjc.EmptyAttributeVisitor
at.dms.kjc.ReplacingVisitor
at.dms.kjc.SLIRReplacingVisitor
at.dms.kjc.rstream.ConvertArrayInitializers
public class ConvertArrayInitializers
This class converts array initializers to a bunch of assignment statements. For locals it removes the array intializer from declaration and replaces it with a new array expression of the correct size, placed at the beginning of the method (after other array decls). For fields it remembers the assignment blocks in a hashset for later placement.
| Field Summary | |
|---|---|
HashSet<JBlock> |
fields
Hashset mapping String -> JBlock to perform initialization of array |
| Fields inherited from class at.dms.kjc.EmptyAttributeVisitor |
|---|
forwards |
| 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 |
| Constructor Summary | |
|---|---|
ConvertArrayInitializers()
Create a new object and visit the ir starting at node. |
|
| Method Summary | |
|---|---|
void |
convertFilter(SIRFilter filter)
|
Object |
visitArrayInitializer(JArrayInitializer self,
JExpression[] elems)
prints an array initializer expression |
Object |
visitFieldDeclaration(JFieldDeclaration self,
int modifiers,
CType type,
String ident,
JExpression expr)
visit a field decl, remove and convert the array initializer |
Object |
visitMethodDeclaration(JMethodDeclaration self,
int modifiers,
CType returnType,
String ident,
JFormalParameter[] parameters,
CClassType[] exceptions,
JBlock body)
prints a method declaration |
Object |
visitVariableDefinition(JVariableDefinition self,
int modifiers,
CType type,
String ident,
JExpression expr)
Visit a local var def and remove and convert the array initializer. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public HashSet<JBlock> fields
| Constructor Detail |
|---|
public ConvertArrayInitializers()
| Method Detail |
|---|
public void convertFilter(SIRFilter filter)
public Object visitMethodDeclaration(JMethodDeclaration self,
int modifiers,
CType returnType,
String ident,
JFormalParameter[] parameters,
CClassType[] exceptions,
JBlock body)
EmptyAttributeVisitor
visitMethodDeclaration in interface AttributeVisitor<Object>visitMethodDeclaration in class EmptyAttributeVisitor
public Object visitVariableDefinition(JVariableDefinition self,
int modifiers,
CType type,
String ident,
JExpression expr)
visitVariableDefinition in interface AttributeVisitor<Object>visitVariableDefinition in class ReplacingVisitor
public Object visitFieldDeclaration(JFieldDeclaration self,
int modifiers,
CType type,
String ident,
JExpression expr)
visitFieldDeclaration in interface AttributeVisitor<Object>visitFieldDeclaration in class ReplacingVisitor
public Object visitArrayInitializer(JArrayInitializer self,
JExpression[] elems)
EmptyAttributeVisitor
visitArrayInitializer in interface AttributeVisitor<Object>visitArrayInitializer in class EmptyAttributeVisitor
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||