Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }