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 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);
        }