import IR.FieldDescriptor;
public class NameNode extends ExpressionNode {
- NameDescriptor name;
- Descriptor vd;
- FieldDescriptor fd;
- ExpressionNode en;
+ NameDescriptor name;
+ Descriptor vd;
+ FieldDescriptor fd;
+ ExpressionNode en;
- public NameNode(NameDescriptor nd) {
- this.name=nd;
- this.vd=null;
- this.fd=null;
- }
+ public NameNode(NameDescriptor nd) {
+ this.name=nd;
+ this.vd=null;
+ this.fd=null;
+ }
- public ExpressionNode getExpression() {
- return en;
- }
+ public ExpressionNode getExpression() {
+ return en;
+ }
- /* Gross hack */
- public void setExpression(ExpressionNode en) {
- this.en=en;
- }
+ /* Gross hack */
+ public void setExpression(ExpressionNode en) {
+ this.en=en;
+ }
- public void setVar(Descriptor vd) {
- this.vd=vd;
- }
+ public void setVar(Descriptor vd) {
+ this.vd=vd;
+ }
- public void setField(FieldDescriptor fd) {
- this.fd=fd;
- }
+ public void setField(FieldDescriptor fd) {
+ this.fd=fd;
+ }
- public FieldDescriptor getField() {
- return fd;
- }
+ public FieldDescriptor getField() {
+ return fd;
+ }
- public boolean isTag() {
- return (vd instanceof TagVarDescriptor);
- }
+ public boolean isTag() {
+ return (vd instanceof TagVarDescriptor);
+ }
- public VarDescriptor getVar() {
- return (VarDescriptor) vd;
- }
+ public VarDescriptor getVar() {
+ return (VarDescriptor) vd;
+ }
- public TagVarDescriptor getTagVar() {
- return (TagVarDescriptor) vd;
- }
+ public TagVarDescriptor getTagVar() {
+ return (TagVarDescriptor) vd;
+ }
- public TypeDescriptor getType() {
- if (en!=null)
- return en.getType();
- else if (fd!=null)
- return fd.getType();
- else if (isTag())
- return new TypeDescriptor(TypeDescriptor.TAG);
- else
- return ((VarDescriptor)vd).getType();
- }
+ public TypeDescriptor getType() {
+ if (en!=null)
+ return en.getType();
+ else if (fd!=null)
+ return fd.getType();
+ else if (isTag())
+ return new TypeDescriptor(TypeDescriptor.TAG);
+ else
+ return ((VarDescriptor)vd).getType();
+ }
- NameDescriptor getName() {
- return name;
- }
+ NameDescriptor getName() {
+ return name;
+ }
- public String printNode(int indent) {
- return name.toString();
- }
+ public String printNode(int indent) {
+ return name.toString();
+ }
- public int kind() {
- return Kind.NameNode;
- }
+ public int kind() {
+ return Kind.NameNode;
+ }
}