Example #1
0
        //Método que verifica as escritas
        public bool instrucao_escrita(Instrucao_escrita inst_escrita)
        {
            Instrucao_escrita_a inst_esc_a = new Instrucao_escrita_a();
            Instrucao_escrita_b inst_esc_b = new Instrucao_escrita_b();

            if (compare("IMPRIMA"))
            {
                index++;
                if (tokens[index].nome.ToString() == "Texto")
                {
                    inst_esc_a.text = tokens[index].valor.ToString();
                    index++;
                    if (compare(";"))
                    {
                        index++;
                        inst_escrita = inst_esc_a;
                        return(true);
                    }

                    else
                    {
                        throw new System.Exception("Declaracao: \';\' esperado!");
                    }
                }

                Expressao expr = new Expressao();
                if (expressao(expr))
                {
                    inst_esc_b.expr = expr;
                    if (compare(";"))
                    {
                        index++;
                        inst_escrita = inst_esc_b;
                        return(true);
                    }

                    else
                    {
                        throw new System.Exception("Declaracao: \';\' esperado!");
                    }
                }
                else
                {
                    throw new System.Exception("Declaracao: \';\' esperado!");
                }
            }
            return(false);
        }
Example #2
0
        public bool instrucao(Instrucao inst)
        {
            guarda = index;
            Atribuicao atr = new Atribuicao();

            if (atribuicao(atr))
            {
                inst = atr;
                if (notPrinted(guarda))
                {
                    AtrReduce(guarda);
                }
                return(true);
            }
            index = guarda;
            Instrucao_leitura inst_leitura = new Instrucao_leitura();

            if (instrucao_leitura(inst_leitura))
            {
                if (notPrinted(guarda))
                {
                    AtrRead(guarda);
                }
                inst = inst_leitura;
                return(true);
            }
            index = guarda;
            Instrucao_escrita inst_escrita = new Instrucao_escrita();

            if (instrucao_escrita(inst_escrita))
            {
                if (notPrinted(guarda))
                {
                    AtrPrint(guarda);
                }
                inst = inst_escrita;
                return(true);
            }
            return(false);
        }