Fixed some analysis problems...
[repair.git] / Repair / RepairCompiler / MCC / IR / VarDescriptor.java
1 package MCC.IR;
2
3 public class VarDescriptor extends Descriptor {
4     
5     private static int count = 0;
6     boolean isglobal=false;
7
8     TypeDescriptor td = null;
9
10     SetDescriptor sd=null;
11
12     Expr lower=null;
13     Expr upper=null;
14
15     public void setBounds(Expr l,Expr u) {
16         lower=l;
17         upper=u;
18     }
19
20     public Expr getLower() {
21         return lower;
22     }
23
24     public Expr getUpper() {
25         return upper;
26     }
27
28     public SetDescriptor getSet() {
29         return sd;
30     }
31
32     public void setSet(SetDescriptor sd) {
33         this.sd=sd;
34     }
35
36     public VarDescriptor(String name) {
37         super(name);
38     }
39
40     public VarDescriptor(String name, TypeDescriptor td) {
41         super(name);
42         this.td = td;
43     }
44
45     public VarDescriptor(String name, String safename, TypeDescriptor td, boolean global) {
46         super(name, safename);
47         this.td = td;
48         this.isglobal=global;
49     }
50
51     public boolean isGlobal() {
52         return isglobal;
53     }
54     
55     public void setType(TypeDescriptor td) {
56         this.td = td;
57     }
58
59     public TypeDescriptor getType() {
60         return td;
61     }
62
63     public static VarDescriptor makeNew() {
64         return makeNew("tempvar");
65     }
66
67     public static VarDescriptor makeNew(String name) {
68         return new VarDescriptor(name + count++);
69     }
70
71 }