Exemplo n.º 1
0
 private void Form1_Load(object sender, EventArgs e)
 {
     //Resetear
     Resetear();
     //Cargar a cacher los datos
     try
     {
         //Disparar el proesamiento a nivel de analizador lexico
         //Cache.ObtenerCache().AgregarLinea("1");
         AnalizadorLexico analisisLexico = new AnalizadorLexico();
         ComponenteLexico componente     = analisisLexico.Analizar();
         while (!componente.ObtenerCategoria().Equals(Categoria.FIN_ARCHIVO))
         {
             MessageBox.Show(componente.ToString());
             componente = analisisLexico.Analizar();
         }
         if (ManejadorErrores.HayErrores())
         {
             MessageBox.Show("El proceso de compilación ha finalizado con errores");
         }
         else
         {
             MessageBox.Show("El proceso de compilación ha finalizado de forma exitosa");
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message);
     }
 }
Exemplo n.º 2
0
        private void button1_Click(object sender, EventArgs e)
        {
            AnalizadorLexico anaLex     = new AnalizadorLexico();
            ComponenteLexico componente = anaLex.Analizar();

            while (!componente.Lexema.Equals("@EOF@"))
            {
                anaLex.Puntero      = componente.PosicionFinalLinea + 1;
                anaLex.estadoActual = 0;
                componente          = anaLex.Analizar();
            }
        }
Exemplo n.º 3
0
        private void analisis()
        {
            dataGridView1.Rows.Clear();
            AnalizadorLexico analex = new AnalizadorLexico();
            ComponenteLexico tmp    = analex.Analizar();

            while (!"@EOF@".Equals(tmp.Lexema))
            {
                int n = dataGridView1.Rows.Add();
                dataGridView1.Rows[n].Cells[0].Value = tmp.Tipo;
                dataGridView1.Rows[n].Cells[1].Value = tmp.Lexema;
                dataGridView1.Rows[n].Cells[2].Value = tmp.NumeroLinea;
                dataGridView1.Rows[n].Cells[3].Value = tmp.PosicionInicial;
                dataGridView1.Rows[n].Cells[4].Value = tmp.PosicionFinal;
                tmp = analex.Analizar();
            }
        }
Exemplo n.º 4
0
        private void Analisis()
        {
            tablaSimbolo.Rows.Clear();
            AnalizadorLexico analizador = new AnalizadorLexico();
            ComponenteLexico lexico     = analizador.Analizar();

            while (!!"@EOF@".Equals(lexico.Lexema))
            {
                int column = tablaSimbolo.Rows.Add();
                tablaSimbolo.Rows[column].Cells[0].Value = lexico.Categoria;
                tablaSimbolo.Rows[column].Cells[1].Value = lexico.Lexema;
                tablaSimbolo.Rows[column].Cells[2].Value = lexico.NumeroLinea;
                tablaSimbolo.Rows[column].Cells[3].Value = lexico.PosicionIncial;
                tablaSimbolo.Rows[column].Cells[4].Value = lexico.PosicionFinal;
                lexico = analizador.Analizar();
            }
        }
Exemplo n.º 5
0
        private void cargarInfoConsola_Click(object sender, EventArgs e)
        {
            String[] lineasEntradas = entradaDatosConsola.Lines;
            String[] lineasSalidas  = lineasEntradas;
            for (int i = 0; i < lineasEntradas.Length; i++)
            {
                lineasSalidas[i] = i + " -> " + lineasEntradas[i];
            }
            salidaDatos.Lines = lineasSalidas;
            Resetear();
            for (int i = 0; i < lineasEntradas.Count(); i++)
            {
                Linea.Crear(i + 1, lineasEntradas[i]);
            }
            try
            {
                AnalizadorLexico analizador = new AnalizadorLexico();
                ComponenteLexico componente = analizador.Analizar();
                while (!componente.ObtenerCategoria().Equals(Categoria.FIN_DE_ARCHIVO))
                {
                    MessageBox.Show(componente.ToString());

                    componente = analizador.Analizar();
                }
                if (ManejadorErrores.HayErrores())
                {
                    MessageBox.Show("El proceso de compilacion ha finalizado con errores");
                }
                else
                {
                    MessageBox.Show("El proceso de compilacion ha finalizado exitosamente");
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

            salidaDatos.Lines = lineasSalidas.ToArray();
        }
Exemplo n.º 6
0
        public async Task <string> Compilar()
        {
            await Task.Yield();

            this.ResultadosCompilacion.Clear();
            //try
            //{
            //Fase 1 Analisis Lexico
            Analizador analizador
                = new AnalizadorLexico(this.Document, this.ResultadosCompilacion);

            analizador.Analizar();
            if (analizador.EsValido)
            {
                //Fase 2 Analisis Sintactico
                analizador =
                    new AnalizadorSintactico((AnalizadorLexico)analizador, this.Document, this.ResultadosCompilacion);
                analizador.Analizar();
                if (analizador.EsValido)
                {
                    //        //Fase 4 Sintetizador
                    analizador =
                        new Sintesis((AnalizadorSintactico)analizador, this.Document, this.ResultadosCompilacion);
                    analizador.Analizar();
                    if (analizador.EsValido)
                    {
                        CodigoMaquina maquina = new CodigoMaquina((Sintesis)analizador);
                        maquina.Generar();
                        this.CodigoMaquina = maquina.Codigo;
                        this.Compilado     = true;
                        this.CodeSegment   = maquina.CodeSegment;
                        return("Compilación exitosa");
                    }
                }
            }
            this.Compilado = false;
            return("Se encontrarón errores previos a la compilación\n");
        }
 private void Avanzar()
 {
     Componente = AnaLex.Analizar();
 }