Represents an object dereference expression of the form " e " where e is the operand expression . @author David J. Pearce
| 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>" |
nothing calls this directly
no outgoing calls
no test coverage detected