Exemple #1
0
        public static void analiseSemantica()
        {
            MeuCompiladorDAL.deletaDelimitadores();
            MeuCompiladorDAL.populaDR();

            MeuCompiladorDAL.leUmTokenValido();
            while (Erro.getErro() == false)
            {
                int aux = MeuCompiladorDAL.leQtdArgumentos();
                for (int i = 0; i < aux; ++i)
                {
                    ArgLim.setCodigo(Token.getCodigo());
                    ArgLim.setposicao("" + i);
                    MeuCompiladorDAL.leUmLimite();
                    MeuCompiladorDAL.leUmTokenValido();
                    if (int.Parse(Token.getToken()) < int.Parse(ArgLim.getminimo()) || int.Parse(Token.getToken()) > int.Parse(ArgLim.getmaximo()))
                    {
                        Erro.setErro("Linha " + Token.getLinha() + ": valor fora da faixa (" + Token.getToken() + ")");
                        return;
                    }
                }
                MeuCompiladorDAL.leUmTokenValido();
            }
            Erro.setErro(false);
        }
        public static void validaSequencia()
        {
            Erro.setErro(false);
            MeuCompiladorDAL.populaGabarito(int.Parse(Token.getCodigo()));
            MeuCompiladorDAL.leGabarito();
            if (Erro.getErro())
            {
                Erro.setErro("Linha " + Token.getLinha() + "- token inesperado: " + Token.getToken());
                return;
            }

            while (!Erro.getErro())
            {
                if (Token.getCodigo() != Gabarito.getInfo())
                {
                    Erro.setErro("Linha " + Token.getLinha() + "- token inesperado: " + Token.getToken());
                    return;
                }
                if (Gabarito.getNext() != "eof")
                {
                    MeuCompiladorDAL.leUmTokenValido();
                }
                MeuCompiladorDAL.leGabarito();
            }
            Erro.setErro(false);
        }
Exemple #3
0
 public static void conecta()
 {
     Erro.setErro(false);
     try
     {
         conn.Open();
     }
     catch
     {
         Erro.setErro("A conexão falhou!");
         return;
     }
 }
Exemple #4
0
        public static void consultaIndiceLib()
        {
            OleDbDataReader resultInd;
            String          aux = "select * from TIndLib where codigo =" + Token.getCodigo();

            strSQL    = new OleDbCommand(aux, conn);
            resultInd = strSQL.ExecuteReader();
            Erro.setErro(false);
            if (resultInd.Read())
            {
                IndiceLib.setInicio("" + resultInd.GetInt32(1));
                IndiceLib.setTamanho("" + resultInd.GetInt32(2));
            }
        }
Exemple #5
0
 public static void leUmTokenValido()
 {
     Erro.setErro(false);
     if (resultAS.Read())
     {
         Token.setCodigo("" + resultAS.GetInt32(0));
         Token.setToken(resultAS.GetString(1));
         Token.setTipo(resultAS.GetString(2));
         Token.setLinha("" + resultAS.GetInt32(3));
     }
     else
     {
         Erro.setErro(true);
     }
 }
Exemple #6
0
 public static void leGabarito()
 {
     Erro.setErro(false);
     if (resultgab.Read())
     {
         Gabarito.setCode("" + resultgab.GetInt32(0));
         Gabarito.setPrior(resultgab.GetString(1));
         Gabarito.setInfo("" + resultgab.GetInt32(2));
         Gabarito.setNext(resultgab.GetString(3));
     }
     else
     {
         Erro.setErro(true);
     }
 }
        public static void geraExecutavel()
        {
            MeuCompiladorDAL.populaDR();

            MeuCompiladorDAL.leUmTokenValido();
            while (Erro.getErro() == false)
            {
                if (int.Parse(Token.getCodigo()) < 100)
                {
                    gravaArquivo();
                }
                MeuCompiladorDAL.leUmTokenValido();
            }
            Erro.setErro(false);
        }
        public static void analiseSintatica()
        {
            MeuCompiladorDAL.populaDR();

            MeuCompiladorDAL.leUmTokenValido();
            while (Erro.getErro() == false)
            {
                validaSequencia();
                if (Erro.getErro())
                {
                    return;
                }
                MeuCompiladorDAL.leUmTokenValido();
            }
            Erro.setErro(false);
        }
Exemple #9
0
        public static void consultaUmToken()
        {
            OleDbDataReader result;
            String          aux = "select * from TTokens where Token ='" + Token.getToken() + "'";

            strSQL = new OleDbCommand(aux, conn);
            result = strSQL.ExecuteReader();
            Erro.setErro(false);
            if (result.Read())
            {
                Token.setCodigo("" + result.GetInt32(0));
            }
            else
            {
                Erro.setErro("Linha " + Token.getLinha() + ": " + Token.getToken() + " (Token não identificado)");
            }
        }
        public static void validaSequencia()
        {
            Erro.setErro(false);
            int tokenValue = int.Parse(Token.getCodigo());
            int tokenzinho;

            switch (tokenValue)
            {
            case 1:
            {
                MeuCompiladorDAL.leUmTokenValido();
                tokenzinho = int.Parse(Token.getToken());

                if (tokenzinho > 0 && tokenzinho < 81)
                {
                    MeuCompiladorDAL.leUmTokenValido();
                    tokenzinho = int.Parse(Token.getToken());
                    if (tokenzinho < 1 && tokenzinho > 25)
                    {
                        Erro.setErro(true);
                    }
                }
                else
                {
                    Erro.setErro(true);
                }
            }
            break;

            case 2:
            {
                MeuCompiladorDAL.leUmTokenValido();
                tokenzinho = int.Parse(Token.getToken());

                if (tokenzinho < 0 && tokenzinho > 9)
                {
                    Erro.setErro(true);
                }
            }
            break;

            default:
                break;
            }
        }