X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=Robust%2Fsrc%2FIR%2FFieldDescriptor.java;h=2d5a7d5baa25703a0bd505225cd1851d9fcf07f1;hb=d581e7128234bf681f3339f0eb4b96927752d043;hp=edfb8959db0276f9c780451ea6f7f350dba58c81;hpb=ac6191b514c0e54b468623bf868134e1ce809df5;p=IRC.git diff --git a/Robust/src/IR/FieldDescriptor.java b/Robust/src/IR/FieldDescriptor.java index edfb8959..2d5a7d5b 100644 --- a/Robust/src/IR/FieldDescriptor.java +++ b/Robust/src/IR/FieldDescriptor.java @@ -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,6 +101,10 @@ public class FieldDescriptor extends Descriptor { } public String toStringBrief() { - return td.toString()+" "+getSymbol(); + return td.toPrettyString()+" "+getSymbol(); + } + + public String toPrettyStringBrief() { + return td.toPrettyString()+" "+getSymbol(); } }