package com.klq.controller; import com.klq.ast.impl.expr.IdentifierNode; import com.klq.ast.impl.value.UndefinedValue; import com.klq.ast.impl.value.Value; import org.antlr.v4.runtime.misc.NotNull; import java.util.HashMap; import java.util.Map; /** * Created by Timon on 17.03.2015. */ public class VariableTable { private final Map<IdentifierNode, Value> variables; public VariableTable() { this.variables = new HashMap<>(); } public void add(IdentifierNode id) { assert (!variables.containsKey(id)): "Identifier already exists in Store."; variables.put(id, new UndefinedValue()); } public void update(IdentifierNode id, @NotNull Value value){ assert (variables.containsKey(id)): "Identifierts need to be added before updating them."; variables.put(id, value); } public boolean contains(IdentifierNode id) { return variables.containsKey(id); } public Value get(IdentifierNode id) { return variables.get(id); } }