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);
        }
Exemplo n.º 2
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);
        }
 private void MeuCompiladorIHM_Load(object sender, EventArgs e)
 {
     MeuCompiladorDAL.conecta();
     if (Erro.getErro())
     {
         MessageBox.Show(Erro.getMsg());
     }
 }
Exemplo n.º 4
0
        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);
        }
        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;
            }
        }
Exemplo n.º 7
0
        public static void gravaArquivo()
        {
            FileStream infile, outfile;
            int        tam;
            char       x;

            infile = new System.IO.FileStream("pontocom.lib",
                                              System.IO.FileMode.Open,
                                              System.IO.FileAccess.Read);
            outfile = new System.IO.FileStream("programa.com",
                                               System.IO.FileMode.Append,
                                               System.IO.FileAccess.Write);

            MeuCompiladorDAL.leIndice();
            tam             = int.Parse(IndLib.getTamanho());
            infile.Position = int.Parse(IndLib.getInicio());
            for (int i = 0; i < tam; ++i)
            {
                x = (char)infile.ReadByte();
                outfile.WriteByte((byte)x);
            }
            infile.Close();
            outfile.Close();
        }
 private void MeuCompiladorIHM_FormClosing(object sender, FormClosingEventArgs e)
 {
     MeuCompiladorDAL.desconecta();
 }
Exemplo n.º 9
0
        public static void scanner()
        {
            FileStream infile;
            int        tam;
            int        kl = 1;
            char       x;
            String     aux = "";

            infile = new System.IO.FileStream("pftmp.txt",
                                              System.IO.FileMode.Open,
                                              System.IO.FileAccess.Read);

            MeuCompiladorDAL.deletaTTokensValidos();
            tam = (int)infile.Length;
            for (int i = 0; i < tam; ++i)
            {
                x = (char)infile.ReadByte();

                if (char.IsDigit(x))
                {
                    while (char.IsDigit(x))
                    {
                        aux = aux + x;
                        x   = (char)infile.ReadByte();
                        ++i;
                    }
                    Token.setCodigo("200");
                    Token.setToken(aux);
                    Token.setTipo("Inteiro");
                    Token.setLinha(kl.ToString());
                    MeuCompiladorDAL.inseriUmTokenValido();
                    aux = "";
                }

                if (char.IsLetter(x))
                {
                    aux = "";
                    while (char.IsLetter(x))
                    {
                        aux = aux + x;
                        x   = (char)infile.ReadByte();
                        ++i;
                    }
                    Token.setToken(aux);
                    Token.setTipo("String");
                    Token.setLinha(kl.ToString());
                    MeuCompiladorDAL.consultaUmToken();
                    if (Erro.getErro())
                    {
                        return;
                    }
                    else
                    {
                        MeuCompiladorDAL.inseriUmTokenValido();
                    }
                    aux = "";
                }

                if (char.IsPunctuation(x) || char.IsSymbol(x))
                {
                    Token.setToken(x.ToString());
                    Token.setTipo("Delimitador");
                    Token.setLinha(kl.ToString());
                    MeuCompiladorDAL.consultaUmToken();
                    if (Erro.getErro())
                    {
                        return;
                    }
                    else
                    {
                        MeuCompiladorDAL.inseriUmTokenValido();
                    }
                }

                if (x == 13)
                {
                    ++kl;
                }
            }
            infile.Close();
        }