checking in changes
[IRC.git] / Robust / src / IR / Tree / CastNode.java
1 package IR.Tree;
2 import IR.TypeDescriptor;
3
4 public class CastNode extends ExpressionNode  {
5     TypeDescriptor td;
6     ExpressionNode etd;
7     ExpressionNode exp;
8
9     public CastNode(TypeDescriptor type, ExpressionNode exp) {
10         this.td=type;
11         this.exp=exp;
12         this.etd=null;
13     }
14
15     public CastNode(ExpressionNode type, ExpressionNode exp) {
16         this.td=null;
17         this.exp=exp;
18         this.etd=type;
19     }
20
21     public TypeDescriptor getType() {
22         return td;
23     }
24
25     public ExpressionNode getExpression() {
26         return exp;
27     }
28
29     public String printNode(int indentlevel) {
30         if (etd==null)
31             return "("+td.toString()+")"+exp.printNode(indentlevel);
32         else
33             return "("+etd.printNode(indentlevel)+")"+exp.printNode(indentlevel);
34     }
35
36     public int kind() {
37         return Kind.CastNode;
38     }
39 }