bug fix.
[IRC.git] / Robust / src / IR / Flat / FlatOffsetNode.java
1 package IR.Flat;
2 import IR.TypeDescriptor;
3 import IR.FieldDescriptor;
4
5 public class FlatOffsetNode extends FlatNode {
6   TempDescriptor dst;
7   FieldDescriptor field;
8   TypeDescriptor baseclass;
9
10   public FlatOffsetNode(TypeDescriptor classtype, FieldDescriptor field, TempDescriptor dst) {
11     this.baseclass=classtype;
12     this.field = field;
13     this.dst = dst;
14   }
15
16   public FlatNode clone(TempMap t) {
17     return new FlatOffsetNode(baseclass, field, t.tempMap(dst));
18   }
19   public void rewriteUse(TempMap t) {
20   }
21   public void rewriteDef(TempMap t) {
22     dst=t.tempMap(dst);
23   }
24   public TypeDescriptor getClassType() {
25     return baseclass;
26   }
27
28   public FieldDescriptor getField() {
29     return field;
30   }
31
32   public String toString() {
33     return "FlatOffsetNode_"+ dst.toString()+"="+"{ "+ field.getSymbol()+" }";
34   }
35
36   public int kind() {
37     return FKind.FlatOffsetNode;
38   }
39
40   public TempDescriptor getDst() {
41     return dst;
42   }
43
44   public TempDescriptor [] writesTemps() {
45     return new TempDescriptor[] {dst};
46   }
47 }