package com.klq.ast.impl.expr; import com.klq.ast.impl.Location; import com.klq.ast.IExpressionVisitor; import com.klq.ast.impl.value.Value; import com.klq.controller.VariableTable; /** * Created by juriaan on 23-2-15. */ public class IdentifierNode extends AExpression { private String identifier; public IdentifierNode(String identifier, Location location) { super(location); this.identifier = identifier; } public IdentifierNode(String identifier) { this.identifier = identifier; } public String getIdentifier() { return identifier; } @Override public <T> T accept(IExpressionVisitor<T> visitor) { return visitor.visit(this); } @Override public Value evaluate(VariableTable variableTable) { return variableTable.get(this); } @Override public boolean equals(Object obj) { if (obj instanceof IdentifierNode){ String objId = ((IdentifierNode)obj).identifier; return this.identifier.equals(objId); } return false; } @Override public int hashCode() { return identifier.hashCode(); } }