stable, something still wrong with calculating out-sets
[IRC.git] / Robust / src / IR / Flat / FlatSESEEnterNode.java
1 package IR.Flat;
2 import Analysis.MLP.VariableSourceToken;
3 import IR.Tree.SESENode;
4 import java.util.*;
5
6 public class FlatSESEEnterNode extends FlatNode {
7   private static int identifier=0;
8   private int id;
9   protected FlatSESEExitNode exit;
10   protected SESENode treeNode;
11   protected FlatSESEEnterNode parent;
12   protected Set<FlatSESEEnterNode> children;
13   protected Set<TempDescriptor> inVars;
14   protected Set<TempDescriptor> outVars;
15   protected FlatMethod enclosing;
16
17   public FlatSESEEnterNode( SESENode sn ) {
18     this.id  = identifier++;
19     treeNode = sn;
20     children = new HashSet<FlatSESEEnterNode>();
21     inVars   = new HashSet<TempDescriptor>();
22     outVars  = new HashSet<TempDescriptor>();
23   }
24
25   public void rewriteUse() {
26   }
27
28   public void rewriteDef() {
29   }
30
31   public void setParent( FlatSESEEnterNode parent ) {
32     this.parent = parent;
33   }
34
35   public FlatSESEEnterNode getParent() {
36     return parent;
37   }
38
39   public void addChild( FlatSESEEnterNode child ) {
40     children.add( child );
41   }
42
43   public Set<FlatSESEEnterNode> getChildren() {
44     return children;
45   }
46
47   public void addInVar( TempDescriptor td ) {
48     inVars.add( td );
49   }
50
51   public void addOutVar( TempDescriptor td ) {
52     outVars.add( td );
53   }
54
55   public void addInVarSet( Set<TempDescriptor> s ) {
56     inVars.addAll( s );
57   }
58
59   public void addOutVarSet( Set<TempDescriptor> s ) {
60     outVars.addAll( s );
61   }
62
63   public Set<TempDescriptor> getInVarSet() {
64     return inVars;
65   }
66
67   public Set<TempDescriptor> getOutVarSet() {
68     return outVars;
69   }
70
71   public void setEnclosingFlatMeth( FlatMethod fm ) {
72     enclosing = fm;
73   }
74
75   public FlatMethod getEnclosingFlatMeth() {
76     return enclosing;
77   }
78
79   public SESENode getTreeNode() {
80     return treeNode;
81   }
82
83   public int getIdentifier() {
84     return id;
85   }
86
87   public String getPrettyIdentifier() {    
88     if( treeNode.getID() != null ) {
89       return treeNode.getID();
90     }     
91     return ""+id;
92   }
93
94   public String toString() {
95     return "sese "+getPrettyIdentifier()+" enter";
96   }
97
98   public void setFlatExit( FlatSESEExitNode fsexn ) {
99     exit = fsexn;
100   }
101
102   public FlatSESEExitNode getFlatExit() {
103     return exit;
104   }
105
106   public int kind() {
107     return FKind.FlatSESEEnterNode;
108   }
109 }