bug fixes
[IRC.git] / Robust / src / IR / Flat / FlatCondBranch.java
1 package IR.Flat;
2 import java.util.Vector;
3
4 public class FlatCondBranch extends FlatNode {
5     TempDescriptor test_cond;
6
7     public FlatCondBranch(TempDescriptor td) {
8         test_cond=td;
9     }
10
11     public void addTrueNext(FlatNode n) {
12         if (next.size()==0)
13             next.setSize(1);
14         next.setElementAt(n,0);
15         n.addPrev(this);
16     }
17
18     public void addFalseNext(FlatNode n) {
19         next.setSize(2);
20         next.setElementAt(n,1);
21         n.addPrev(this);
22     }
23
24     public TempDescriptor getTest() {
25         return test_cond;
26     }
27
28     public String toString() {
29         return "conditional branch";
30     }
31
32     public String toString(String negjump) {
33         return "if (!"+test_cond.toString()+") goto "+negjump;
34     }
35
36     public void addNext(FlatNode n) {
37         throw new Error();
38     }
39
40     public int kind() {
41         return FKind.FlatCondBranch;
42     }
43
44     public TempDescriptor [] readsTemps() {
45         return new TempDescriptor[] {test_cond};
46     }
47 }