abe6d41f76c7b138f58cae74dab32c0ec4af921f
[IRC.git] / Robust / src / IR / Tree / AssignmentNode.java
1 package IR.Tree;
2 import IR.AssignOperation;
3 import IR.TypeDescriptor;
4
5 public class AssignmentNode extends ExpressionNode {
6   ExpressionNode left;
7   ExpressionNode right;
8   AssignOperation op;
9
10   public AssignmentNode(ExpressionNode l, ExpressionNode r, AssignOperation op) {
11     left=l;
12     right=r;
13     this.op=op;
14   }
15
16   public ExpressionNode getDest() {
17     return left;
18   }
19
20   public ExpressionNode getSrc() {
21     return right;
22   }
23
24   public AssignOperation getOperation() {
25     return op;
26   }
27
28   public String printNode(int indent) {
29     if (right==null)
30       return left.printNode(indent)+" "+op.toString();
31     else
32       return left.printNode(indent)+" "+op.toString()+" "+right.printNode(indent);
33   }
34
35   public TypeDescriptor getType() {
36     return left.getType();
37   }
38
39   public int kind() {
40     return Kind.AssignmentNode;
41   }
42   
43   public Long evaluate() {
44     eval = left.evaluate();
45     return eval;
46   }
47 }