1 19 20 25 26 27 28 29 30 31 package soot.jimple.internal; 32 33 import soot.*; 34 import soot.jimple.*; 35 import soot.util.*; 36 import java.util.*; 37 38 public abstract class AbstractNegExpr extends AbstractUnopExpr implements NegExpr 39 { 40 protected AbstractNegExpr(ValueBox opBox) { super(opBox); } 41 42 43 public boolean equivTo(Object o) 44 { 45 if (o instanceof AbstractNegExpr) 46 { 47 return opBox.getValue().equivTo(((AbstractNegExpr)o).opBox.getValue()); 48 } 49 return false; 50 } 51 52 53 public int equivHashCode() 54 { 55 return opBox.getValue().equivHashCode(); 56 } 57 58 public abstract Object clone(); 59 60 public String toString() 61 { 62 return Jimple.NEG + " " + opBox.getValue().toString(); 63 } 64 65 public void toString(UnitPrinter up) { 66 up.literal(Jimple.NEG); 67 up.literal(" "); 68 opBox.toString(up); 69 } 70 71 public Type getType() 72 { 73 Value op = opBox.getValue(); 74 75 if(op.getType().equals(IntType.v()) || op.getType().equals(ByteType.v()) || 76 op.getType().equals(ShortType.v()) || op.getType().equals(BooleanType.v()) || 77 op.getType().equals(CharType.v())) 78 return IntType.v(); 79 else if(op.getType().equals(LongType.v())) 80 return LongType.v(); 81 else if(op.getType().equals(DoubleType.v())) 82 return DoubleType.v(); 83 else if(op.getType().equals(FloatType.v())) 84 return FloatType.v(); 85 else 86 return UnknownType.v(); 87 } 88 89 public void apply(Switch sw) 90 { 91 ((ExprSwitch) sw).caseNegExpr(this); 92 } 93 } 94 | Popular Tags |