MCPcopy Create free account
hub / github.com/Whiley/WhileyCompiler / Dereference

Class Dereference

src/main/java/wyil/lang/WyilFile.java:4280–4310  ·  view source on GitHub ↗

Represents an object dereference expression of the form " e " where e is the operand expression . @author David J. Pearce

Source from the content-addressed store, hash-verified

4278 *
4279 */
4280 public static class Dereference extends AbstractExpr implements LVal, UnaryOperator {
4281 public Dereference(Type type, Expr operand) {
4282 super(EXPR_dereference, type, operand);
4283 }
4284
4285 /**
4286 * Get the operand to be dereferenced. That is,
4287 * <code>e<code> in </code>*e</code>.
4288 */
4289 @Override
4290 public Expr getOperand() {
4291 return (Expr) super.get(1);
4292 }
4293
4294 @Override
4295 public Expr clone(Syntactic.Item[] operands) {
4296 return new Dereference((Type) operands[0], (Expr) operands[1]);
4297 }
4298
4299 @Override
4300 public String toString() {
4301 return "*" + getOperand();
4302 }
4303
4304 public static final Descriptor DESCRIPTOR_0 = new Descriptor(Operands.TWO, Data.ZERO, "EXPR_dereference") {
4305 @Override
4306 public Syntactic.Item construct(int opcode, Syntactic.Item[] operands, byte[] data) {
4307 return new Dereference((Type) operands[0], (Expr) operands[1]);
4308 }
4309 };
4310 }
4311
4312 /**
4313 * Represents an object dereference expression of the form "<code>e->f</code>"

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected