package IR.Tree;
+import IR.FieldDescriptor;
+import IR.TypeDescriptor;
public class FieldAccessNode extends ExpressionNode {
ExpressionNode left;
String fieldname;
+ FieldDescriptor field;
public FieldAccessNode(ExpressionNode l, String field) {
fieldname=field;
left=l;
}
- public String printNode() {
- return left.printNode()+"."+fieldname;
+ public void setField(FieldDescriptor fd) {
+ field=fd;
}
+
+ public String getFieldName() {
+ return fieldname;
+ }
+
+ public FieldDescriptor getField() {
+ return field;
+ }
+
+ public ExpressionNode getExpression() {
+ return left;
+ }
+
+ public String printNode(int indent) {
+ return left.printNode(indent)+"."+fieldname;
+ }
+ public int kind() {
+ return Kind.FieldAccessNode;
+ }
+ public TypeDescriptor getType() {
+ return getField().getType();
+ }
+
}