FieldDescriptor fd;
ExpressionNode en;
ClassDescriptor cd;
+ boolean issuper;
public NameNode(NameDescriptor nd) {
this.name=nd;
this.vd=null;
this.fd=null;
this.cd = null;
+ this.issuper= false;
+ }
+
+ public boolean isSuper() {
+ return this.issuper;
+ }
+
+ public void setIsSuper() {
+ this.issuper = true;
}
public ExpressionNode getExpression() {
return en;
}
-
+
public ClassDescriptor getClassDesc() {
return this.cd;
}
-
+
public void setClassDesc(ClassDescriptor cd) {
this.cd = cd;
}
return fd.getType();
} else if (isTag())
return new TypeDescriptor(TypeDescriptor.TAG);
- else if(cd != null) {
+ else if(vd != null) {
+ return ((VarDescriptor)vd).getType();
+ }
+ if(cd != null) {
TypeDescriptor tp = new TypeDescriptor(cd);
- tp.setStatic();
+ tp.setClassNameRef();
return tp;
- } else
- return ((VarDescriptor)vd).getType();
+ } else {
+ return null;
+ }
+
}
-
+
public TypeDescriptor getClassType() {
if(cd != null) {
TypeDescriptor tp = new TypeDescriptor(cd);
- tp.setStatic();
+ tp.setClassNameRef();
return tp;
} else
return null;
}
- NameDescriptor getName() {
+ public NameDescriptor getName() {
return name;
}
public int kind() {
return Kind.NameNode;
}
-
+
public Long evaluate() {
eval = null;
if(fd != null ) {
eval = fd.getExpressionNode().evaluate();
} else if(fd.isEnum()) {
eval = Long.valueOf((long)fd.enumValue());
- }
+ }
} else if(en!= null) {
eval = en.evaluate();
}