package ast.expr;
import typecheck.SymbolTable;
import ast.types.Type;
import ast.visitors.ExprVisitor;
public class Identifier extends Expr{
private final String identName;
public Identifier(String identName) {
this.identName = identName;
}
@Override
public <T> T accept(ExprVisitor<T> visitor) {
return visitor.visit(this);
}
public String getIdentName() {
return identName;
}
@Override
public Type typeof(SymbolTable symb) {
assert(symb.containsSymbol(this));
return symb.getType(this);
}
public int hashCode(){
return identName.hashCode();
}
public boolean equals(Object other){
return identName.equals(((Identifier)other).getIdentName());
}
}