code clean up
[IRC.git] / Robust / src / IR / FieldDescriptor.java
index 324d0c46360dbede40298366df05c13d3a9e8971..2d5a7d5baa25703a0bd505225cd1851d9fcf07f1 100644 (file)
@@ -17,6 +17,10 @@ public class FieldDescriptor extends Descriptor {
   protected String identifier;
   protected ExpressionNode en;
   private boolean isglobal;
+  private boolean isenum;
+  private int enumvalue;
+
+  private ClassDescriptor cn;
 
   public FieldDescriptor(Modifiers m, TypeDescriptor t, String identifier, ExpressionNode e, boolean isglobal) {
     super(identifier);
@@ -26,7 +30,55 @@ public class FieldDescriptor extends Descriptor {
     this.safename = "___" + name + "___";
     this.uniqueid=count++;
     this.isglobal=isglobal;
-    if (en!=null) throw new Error("Field initializers not implemented");
+    this.isenum = false;
+    this.enumvalue = -1;
+  }
+
+  public ClassDescriptor getClassDescriptor() {
+    return this.cn;
+  }
+
+  public void setClassDescriptor(ClassDescriptor cn) {
+    this.cn = cn;
+  }
+
+  public String getSafeSymbol() {
+    if (isStatic()) {
+      return cn.getSafeSymbol()+safename;
+    } else
+      return safename;
+  }
+
+  public boolean isEnum() {
+    return this.isenum;
+  }
+
+  public int enumValue() {
+    return this.enumvalue;
+  }
+
+  public void setAsEnum() {
+    this.isenum = true;
+  }
+
+  public void setEnumValue(int value) {
+    this.enumvalue = value;
+  }
+
+  public ExpressionNode getExpressionNode() {
+    return en;
+  }
+
+  public boolean isFinal() {
+    return modifier.isFinal();
+  }
+
+  public boolean isStatic() {
+    return modifier.isStatic();
+  }
+
+  public boolean isVolatile() {
+    return modifier.isVolatile();
   }
 
   public boolean isGlobal() {
@@ -37,6 +89,10 @@ public class FieldDescriptor extends Descriptor {
     return td;
   }
 
+  public void changeSafeSymbol(int id) {
+    safename+=id;
+  }
+
   public String toString() {
     if (en==null)
       return modifier.toString()+td.toString()+" "+getSymbol()+";";
@@ -45,7 +101,7 @@ public class FieldDescriptor extends Descriptor {
   }
 
   public String toStringBrief() {
-    return td.toString()+" "+getSymbol();
+    return td.toPrettyString()+" "+getSymbol();
   }
 
   public String toPrettyStringBrief() {