@Override public void simplifyOperands(Map<Operand, Operand> valueMap, boolean force) { arg1 = arg1.getSimplifiedOperand(valueMap, force); arg2 = arg2.getSimplifiedOperand(valueMap, force); }
@Override public void simplifyOperands(Map<Operand, Operand> valueMap, boolean force) { arg1 = arg1.getSimplifiedOperand(valueMap, force); if (arg2 != null) arg2 = arg2.getSimplifiedOperand(valueMap, force); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newBegin = begin.getSimplifiedOperand(valueMap, force); Operand newEnd = end.getSimplifiedOperand(valueMap, force); return (newBegin == begin && newEnd == end) ? this : new Range(newBegin, newEnd, exclusive); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newSource = source.getSimplifiedOperand(valueMap, force); return newSource == source ? this : new AsString(newSource); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand[] newElts = new Operand[elts.length]; for (int i = 0; i < elts.length; i++) { newElts[i] = elts[i].getSimplifiedOperand(valueMap, force); } return new Array(newElts); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newSource = source.getSimplifiedOperand(valueMap, force); return (newSource == source) ? this : new AsString(newSource); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand[] newElts = new Operand[elts.length]; for (int i = 0; i < elts.length; i++) { newElts[i] = elts[i].getSimplifiedOperand(valueMap, force); } return new Array(newElts); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { List<Operand> newPieces = new java.util.ArrayList<Operand>(); for (Operand p : pieces) { newPieces.add(p.getSimplifiedOperand(valueMap, force)); } return new CompoundString(newPieces, encoding); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); return (newArray == array) ? this : new Splat(newArray); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand[] newElts = new Operand[elts.length]; for (int i = 0; i < elts.length; i++) { newElts[i] = elts[i].getSimplifiedOperand(valueMap, force); } return new Array(newElts); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); return (newArray == array) ? this : new Splat(newArray); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { List<Operand> newPieces = new ArrayList<Operand>(); for (Operand p : pieces) { newPieces.add(p.getSimplifiedOperand(valueMap, force)); } return new BacktickString(newPieces); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); /* * SSS FIXME: Cannot convert this to an Array operand! * if (_array instanceof Variable) { _array = ((Variable)_array).getValue(valueMap); } */ return (newArray == array) ? this : new Splat(newArray); }
@Override public void simplifyOperands(Map<Operand, Operand> valueMap, boolean force) { oldName = getOldName().getSimplifiedOperand(valueMap, force); newName = getNewName().getSimplifiedOperand(valueMap, force); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); if (newArray instanceof Array) { Array a = (Array) newArray; return (a.elts.length == 1) ? a.elts[0] : a; } else { return (newArray == array) ? this : new SValue(newArray); } }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { KeyValuePair<Operand, Operand>[] newPairs = Arrays.stream(pairs) .map(pair -> new KeyValuePair<>( pair.getKey().getSimplifiedOperand(valueMap, force), pair.getValue().getSimplifiedOperand(valueMap, force))) .toArray(n -> new KeyValuePair[n]); return new Hash(newPairs, isKWArgsHash); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { List<KeyValuePair> newPairs = new java.util.ArrayList<KeyValuePair>(); for (KeyValuePair pair : pairs) { newPairs.add(new KeyValuePair(pair.getKey().getSimplifiedOperand(valueMap, force), pair .getValue().getSimplifiedOperand(valueMap, force))); } return new Hash(newPairs); }
/** * getLocalVar is saved for location and should not be simplified so we still know its original * depth/offset. */ @Override public void simplifyOperands(Map<Operand, Operand> valueMap, boolean force) { setOperand1(getValue().getSimplifiedOperand(valueMap, force)); }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); if (newArray instanceof Array) { Array a = (Array) newArray; return (a.getElts().length == 1) ? a.getElts()[0] : a; } else { return (newArray == array) ? this : new SValue(newArray); } }
@Override public Operand getSimplifiedOperand(Map<Operand, Operand> valueMap, boolean force) { Operand newArray = array.getSimplifiedOperand(valueMap, force); if (newArray instanceof Array) { Array a = (Array) newArray; return (a.getElts().length == 1) ? a.getElts()[0] : a; } else { return (newArray == array) ? this : new SValue(newArray); } }