Esempio n. 1
0
        public void BLOCO()
        {
            if (Reconhece("var"))
            {
                VARS();
            }
            int j = k;

            k = k + 1;
            if (Reconhece("begin"))
            {
                COMS();
                if (Reconhece("end"))
                {
                    Sem.LimpaEscopo(j);
                    return;
                }
                else
                {
                    ErroSint(tk, "end");
                    while (tk.Descricao != "EOF" && tk.Descricao != ";" && tk.Descricao != "else" && tk.Descricao != ".")
                    {
                        tk = Lex.NextToken();
                    }
                }
            }
            else
            {
                ErroSint(tk, "begin");
                while (tk.Descricao != "EOF" && tk.Descricao != ";" && tk.Descricao != "else" && tk.Descricao != ".")
                {
                    tk = Lex.NextToken();
                }
            }
            //sem.imprimeTabela();
            Sem.LimpaEscopo(j);
        }