1 19 20 package soot.dava.internal.javaRep; 21 22 import soot.*; 23 import soot.grimp.*; 24 import soot.jimple.*; 25 import soot.jimple.internal.*; 26 27 public class DNewArrayExpr extends AbstractNewArrayExpr implements Precedence 28 { 29 public DNewArrayExpr(Type type, Value size) 30 { 31 super(type, Grimp.v().newExprBox(size)); 32 } 33 34 public int getPrecedence() { return 850; } 35 36 public Object clone() 37 { 38 return new DNewArrayExpr(getBaseType(), Grimp.cloneIfNecessary(getSize())); 39 } 40 41 public void toString( UnitPrinter up ) { 42 up.literal( "new" ); 43 up.literal( " " ); 44 Type type = getBaseType(); 45 if(type instanceof ArrayType) { 46 ArrayType arrayType = (ArrayType)type; 47 up.type(arrayType.baseType); 48 up.literal( "[" ); 49 getSizeBox().toString( up ); 50 up.literal( "]" ); 51 for(int i = 0; i < arrayType.numDimensions; i++) { 52 up.literal("[]"); 53 } 54 } else { 55 up.type( getBaseType() ); 56 up.literal( "[" ); 57 getSizeBox().toString( up ); 58 up.literal( "]" ); 59 } 60 } 61 public String toString() 62 { 63 return "new " + getBaseType() + "[" + getSize() + "]"; 64 } 65 66 } 67 | Popular Tags |