1 20 21 26 27 28 29 30 31 32 package soot.grimp.internal; 33 34 import soot.*; 35 import soot.grimp.*; 36 import soot.jimple.internal.*; 37 import soot.util.*; 38 import java.util.*; 39 import soot.jimple.*; 40 import soot.grimp.*; 41 import soot.jimple.internal.*; 42 43 public class GInstanceFieldRef extends AbstractInstanceFieldRef 44 implements Precedence 45 { 46 public GInstanceFieldRef(Value base, SootFieldRef fieldRef) 47 { 48 super(Grimp.v().newObjExprBox(base), fieldRef); 49 } 50 51 private String toString(Value op, String opString, String rightString) 52 { 53 String leftOp = opString; 54 55 if (op instanceof Precedence && 56 ((Precedence)op).getPrecedence() < getPrecedence()) 57 leftOp = "(" + leftOp + ")"; 58 return leftOp + rightString; 59 } 60 61 public String toString() 62 { 63 return toString(getBase(), getBase().toString(), 64 "." + fieldRef.getSignature()); 65 } 66 67 public int getPrecedence() 68 { 69 return 950; 70 } 71 72 public Object clone() 73 { 74 return new GInstanceFieldRef(Grimp.cloneIfNecessary(getBase()), 75 fieldRef); 76 } 77 78 79 } 80 | Popular Tags |