Exemplo n.º 1
0
 private void iniciarAnalisisLexicoToolStripMenuItem_Click(object sender, EventArgs e)
 {
     try {
         DataTable dt = new DataTable();
         TablaTransiciones.DataSource = dt;
         TablaTransiciones.Update();
         String  text = "";
         TabPage tp   = tabControl1.SelectedTab;
         foreach (Control o in tp.Controls)
         {
             if (o is RichTextBox)
             {
                 text = o.Text;
                 RichTextBox r      = (RichTextBox)o;
                 Analizador  lexico = new Analizador();
                 lg.vaciarLista();
                 lexico.analizadorLexico(text, lg);
                 inicio   = lg.InicioLista;
                 final    = lg.FinalLista;
                 temporal = lg.FinalLista;
                 iniciarGaleria();
                 Probar_Lexemas pl = new Probar_Lexemas();
                 Consola.Text = pl.prueba(inicio, lexico.getListaLexemas(), lexico.getListaConjunto());
                 errores      = pl.Errores;
             }
         }
         MessageBox.Show("Anlizado Correcamente");
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error: " + ex);
     }
 }
Exemplo n.º 2
0
        public void iniciarGaleria()
        {
            Galeria aux  = temporal;
            String  ruta = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
            String  afn  = ruta + "\\" + aux.Nombre + ".png ";
            String  afd  = ruta + "\\" + aux.Nombre + "_AFD.png ";

            mostrarImagen(afd, afn, aux.Nombre);
            DataTable dt = new DataTable();

            dt.Columns.Add("Estados");
            for (int i = 0; i < aux.Simbolos.Count; i++)
            {
                dt.Columns.Add(aux.Simbolos.ElementAt(i).ToString());
            }

            for (int i = 0; i < aux.Estados.Count; i++)
            {
                DataRow dr     = dt.NewRow();
                String  estado = "" + aux.Estados.ElementAt(i).EstadoInicial;
                if (aux.Estados.ElementAt(i).Aceptacion)
                {
                    estado += "*";
                }
                dr["Estados"] = estado;
                for (int j = 0; j < aux.Estados.ElementAt(i).Transiciones.Count; j++)
                {
                    dr[aux.Estados.ElementAt(i).Transiciones.ElementAt(j).Simbolo] = aux.Estados.ElementAt(i).Transiciones.ElementAt(j).Estado;
                }
                dt.Rows.Add(dr);
            }
            TablaTransiciones.DataSource = dt;
            TablaTransiciones.Update();
        }
Exemplo n.º 3
0
 private void button2_Click(object sender, EventArgs e)
 {
     try
     {
         temporal = temporal.Siguiente;
         DataTable dt = new DataTable();
         TablaTransiciones.DataSource = dt;
         TablaTransiciones.Update();
         iniciarGaleria();
     }
     catch (Exception ex)
     {
     }
 }
Exemplo n.º 4
0
        public Transicion ObtenerSiguienteTransicion(string estadoActual, char charALeer)
        {
            try
            {
                Transicion transicionDeLaTabla = TablaTransiciones.FirstOrDefault(t => t.Estado == estadoActual && t.Leer == charALeer);

                if (transicionDeLaTabla == null)
                {
                    throw new ArgumentException(string.Format("No se encontró una transición válida para el estado '{0}' leyendo el caracter '{1}'.", estadoActual, charALeer));
                }

                bool puedoMoverme = true;

                if (transicionDeLaTabla.Direccion == Direccion.Derecha)
                {
                    puedoMoverme = Cabezal.PuedoMovermeALaDerecha();

                    if (!puedoMoverme)
                    {
                        throw new ArgumentException(string.Format(
                                                        "No se encontró una transición válida para el estado '{0}' leyendo el caracter '{1}'." +
                                                        " El cabezal no se puede mover más hacia la derecha.", estadoActual, charALeer));
                    }

                    return(transicionDeLaTabla);
                }
                else
                {
                    puedoMoverme = Cabezal.PuedoMovermeALaIzquierda();

                    if (!puedoMoverme)
                    {
                        throw new ArgumentException(string.Format(
                                                        "No se encontró una transición válida para el estado '{0}' leyendo el caracter '{1}'." +
                                                        " El cabezal no se puede mover más hacia la izquierda.", estadoActual, charALeer));
                    }

                    return(transicionDeLaTabla);
                }
            }
            catch (ArgumentException)
            {
                throw;
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemplo n.º 5
0
        private void tablaDeTransicionesToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialogMain.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            openFileDialogMain.Filter           = "CSV Files|*.csv|Text Files|*.txt|All Files|*.* ";

            if (openFileDialogMain.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                if (openFileDialogMain.FileName.Length > 0)
                {
                    try
                    {
                        m_tablaTransiciones = new TablaTransiciones(openFileDialogMain.FileName);
                        // AgregarPestanaTabla(m_tablaTransiciones.ObtenerTablaDatos());
                    }
                    catch (Exception f)
                    {
                        MessageBox.Show(f.Message);
                    }
                }
            }
        }
Exemplo n.º 6
0
        public MaquinaDeTuring(string estadoActual, Cabezal cabezal, DataGridView dataGridView, int intervaloDeTiempo)
        {
            try
            {
                TablaTransiciones = Utilidades.Utilidades.GenerarTablaDeTransiciones(dataGridView);

                Transicion transicionInicial = TablaTransiciones.FirstOrDefault(t => t.Estado == estadoActual && t.Leer == cabezal.Leer());

                if (transicionInicial == null)
                {
                    throw new ArgumentException(string.Format("Por favor, verifique el estado inicial y/o la tabla de transiciones. No se encontró transición para el estado {0} leyendo el caracter {1}.", estadoActual, cabezal.Leer()));
                }

                if (!TablaTransiciones.Any(x => x.Estado.Contains("accept")) && !TablaTransiciones.Any(x => x.EstadoSiguiente.Contains("accept")))
                {
                    throw new ArgumentException(string.Format("Por favor, verifique la tabla de transiciones. No se encontro ningún estado 'accept'.", estadoActual, cabezal.Leer()));
                }

                EstadoActual = estadoActual;
                Cabezal      = cabezal;

                IntervaloDeTiempo = intervaloDeTiempo;
                Estado            = Estado.Pausada;

                IndiceEnLaTabla         = transicionInicial.RowIndex;
                IndiceEnLaTablaAnterior = IndiceEnLaTabla;

                Pasos = 0;
            }
            catch (ArgumentException)
            {
                throw;
            }
            catch (Exception)
            {
                throw;
            }
        }