public void AddArray(IdentifierToken identifierToken, SymArray arrayType, SymVar.SymLocTypeEnum locType) { RequireSymbolRewritable(identifierToken); var symVar = new SymVar(identifierToken.Value, arrayType, null, locType); _stack.Peek().Add(symVar); }
public SymVar AddVariable(IdentifierToken variableToken, SymType type, SymVar.SymLocTypeEnum varMod, SymConst value = null) { RequireSymbolRewritable(variableToken); //type check for initial value must be performed earlier. i.e. in parser. var symVar = new SymVar(variableToken.Value, type, value, varMod); _stack.Peek().Add(symVar); return(symVar); }
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); }