adding a test case
[IRC.git] / Robust / src / IR / Tree / ArrayAccessNode.java
1 package IR.Tree;
2 import IR.FieldDescriptor;
3 import IR.TypeDescriptor;
4
5 public class ArrayAccessNode extends ExpressionNode {
6   ExpressionNode left;
7   ExpressionNode index;
8   TypeDescriptor wrappertype;
9
10   public ArrayAccessNode(ExpressionNode l, ExpressionNode index) {
11     this.index=index;
12     left=l;
13   }
14
15   public ExpressionNode getIndex() {
16     return index;
17   }
18
19   public ExpressionNode getExpression() {
20     return left;
21   }
22
23   public String printNode(int indent) {
24     return left.printNode(indent)+"["+index.printNode(0)+"]";
25   }
26
27   public int kind() {
28     return Kind.ArrayAccessNode;
29   }
30
31   public boolean iswrapper() {
32     return wrappertype!=null;
33   }
34
35   public TypeDescriptor getType() {
36     if (wrappertype!=null)
37       return wrappertype;
38     else
39       return left.getType().dereference();
40   }
41
42   public Long evaluate() {
43     eval = null;
44     return eval; //null;
45   }
46 }