start of new file
[IRC.git] / Robust / src / IR / Flat / FlatElementNode.java
1 package IR.Flat;
2 import IR.FieldDescriptor;
3
4 public class FlatElementNode extends FlatNode {
5     TempDescriptor src;
6     TempDescriptor dst;
7     TempDescriptor index;
8     
9     public FlatElementNode(TempDescriptor src, TempDescriptor index, TempDescriptor dst) {
10         this.index=index;
11         this.src=src;
12         this.dst=dst;
13     }
14
15     public boolean needsBoundsCheck() {
16         return true;
17     }
18
19     public TempDescriptor getIndex() {
20         return index;
21     }
22
23     public TempDescriptor getSrc() {
24         return src;
25     }
26
27     public TempDescriptor getDst() {
28         return dst;
29     }
30
31     public String toString() {
32         return "FlatElementNode_"+dst.toString()+"="+src.toString()+"["+index.toString()+"]";
33     }
34
35     public int kind() {
36         return FKind.FlatElementNode;
37     }
38
39     public TempDescriptor [] writesTemps() {
40         return new TempDescriptor[] {dst};
41     }
42
43     public TempDescriptor [] readsTemps() {
44         return new TempDescriptor[] {src,index};
45     }
46 }