Ejemplo n.º 1
0
        private void Variable()
        {
            string varName = _scanner.GetToken().Value;

            _scanner.NextToken();

            if (IsType(TokenType.colon))
            {
                _table.CheckIfVarExist(varName);
                _scanner.NextToken();
                Check(TokenType.intType, 111);
                _table.SetVariable(new NumberVariable(varName));
            }

            if (IsType(TokenType.equel))
            {
                _scanner.NextToken();
                AbstractVariable variable = _table.GetVariable(varName);
                _gen.Addr(variable);
                SimpleExpression();
                _gen.Cmd(VMCommands.cmSave);
                Check(TokenType.semicolon, 121);
            }
        }