package nl.uva.se.ql.typechecking; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import nl.uva.se.ql.ast.statement.Question; import nl.uva.se.ql.ast.type.Type; public class SymbolTable { private Map<String, Question> symbols; public SymbolTable() { symbols = new HashMap<String, Question>(); } public void addSymbol(String name, Question question) { symbols.put(name, question); } public boolean containsSymbol(String name) { return symbols.containsKey(name); } public Type getTypeForSymbol(String name) { return symbols.get(name).getType(); } public Question getQuestionForSymbol(String name) { return symbols.get(name); } @Override public String toString() { StringBuilder sb = new StringBuilder(); for (Entry<String, Question> entry : symbols.entrySet()) { sb.append(entry.getKey() + ": " + entry.getValue().getType()); sb.append("\n"); } return sb.toString(); } }