2 import IR.NameDescriptor;
4 import IR.VarDescriptor;
5 import IR.TagVarDescriptor;
6 import IR.TypeDescriptor;
7 import IR.FieldDescriptor;
9 public class NameNode extends ExpressionNode {
15 public NameNode(NameDescriptor nd) {
21 public ExpressionNode getExpression() {
26 public void setExpression(ExpressionNode en) {
30 public void setVar(Descriptor vd) {
34 public void setField(FieldDescriptor fd) {
38 public FieldDescriptor getField() {
42 public boolean isTag() {
43 return (vd instanceof TagVarDescriptor);
46 public VarDescriptor getVar() {
47 return (VarDescriptor) vd;
50 public TagVarDescriptor getTagVar() {
51 return (TagVarDescriptor) vd;
54 public TypeDescriptor getType() {
60 return new TypeDescriptor(TypeDescriptor.TAG);
62 return ((VarDescriptor)vd).getType();
65 NameDescriptor getName() {
69 public String printNode(int indent) {
70 return name.toString();