public void AddVariable(IdentifierToken variableToken, IdentifierToken typeToken, SymVar.SymLocTypeEnum locType, SymConst value = null) { var type = FindType(typeToken.Value); if (type == null) { throw new TypeNotFoundException(typeToken.Lexeme, typeToken.Line, typeToken.Column); } RequireSymbolRewritable(variableToken); //type check for initial value must be performed earlier. i.e. in parser. var symVar = new SymVar(variableToken.Value, type, value, locType); _stack.Peek().Add(symVar); }