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