private void tsrEjecutarAnalizadorLexico_Click(object sender, EventArgs e) { string nombreTabpageseleccionada = tabControl1.SelectedTab.Name.ToString(); string indiceparacontroleditort = nombreTabpageseleccionada.Substring(nombreTabpageseleccionada.Length - 1, 1); var controles = tabControl1.Controls.OfType <TabPage>().Where(x => x.Name.StartsWith(nombreTabpageseleccionada)); foreach (var ctrl in controles) { var controleseditor = ctrl.Controls.OfType <EditorTexto>().Where(x => x.Name.StartsWith("editorTexto" + indiceparacontroleditort)); foreach (var ctrleditor in controleseditor) { string codigofuente = ctrleditor.Texto(); Lexico _lex = new Lexico(); if (codigofuente.Length > 0) { dgvListaTokens.DataSource = _lex.EjecutarLexico(codigofuente); } else { MessageBox.Show("Escribe algo primero :v"); } } } }
private void tsrEjecutarAnalizadorSintactico_Click(object sender, EventArgs e) { string nombreTabpageseleccionada = tabControl1.SelectedTab.Name.ToString(); string indiceparacontroleditort = nombreTabpageseleccionada.Substring(nombreTabpageseleccionada.Length - 1, 1); var controles = tabControl1.Controls.OfType <TabPage>().Where(x => x.Name.StartsWith(nombreTabpageseleccionada)); foreach (var ctrl in controles) { var controleseditor = ctrl.Controls.OfType <EditorTexto>().Where(x => x.Name.StartsWith("editorTexto" + indiceparacontroleditort)); foreach (var ctrleditor in controleseditor) { string codigofuente = ctrleditor.Texto(); Lexico _lex = new Lexico(); Sintactico _sin = new Sintactico(); if (codigofuente.Length > 0) { List <Token> lista = new List <Token>(); lista = _lex.EjecutarLexico(codigofuente); int[] Tokensparasintactico = new int[500]; string [] lexemaParaSintactico = new string[500]; int cantidaddetokens = 0, ubicacion = 0; for (int i = 0; i < lista.Count; i++) { if (lista[i].token != -41 && lista[i].token != -39) { Tokensparasintactico[ubicacion] = lista[i].token; lexemaParaSintactico[ubicacion] = lista[i].lexema; cantidaddetokens++; ubicacion++; } } Tokensparasintactico[cantidaddetokens] = -99; //MessageBox.Show(Convert.ToString(Tokensparasintactico[0])+" "+ Convert.ToString(Tokensparasintactico[1])); _sin.EjecutarSintactico(Tokensparasintactico, lexemaParaSintactico); } else { MessageBox.Show("Escribe algo primero :v"); } } } }
private void tsrEjecutarAnalizadorSintactico_Click(object sender, EventArgs e) { string nombreTabpageseleccionada = tabControl1.SelectedTab.Name.ToString(); string indiceparacontroleditort = nombreTabpageseleccionada.Substring(nombreTabpageseleccionada.Length - 1, 1); var controles = tabControl1.Controls.OfType <TabPage>().Where(x => x.Name.StartsWith(nombreTabpageseleccionada)); foreach (var ctrl in controles) { var controleseditor = ctrl.Controls.OfType <EditorTexto>().Where(x => x.Name.StartsWith("editorTexto" + indiceparacontroleditort)); foreach (var ctrleditor in controleseditor) { string codigofuente = ctrleditor.Texto(); Lexico _lex = new Lexico(); Sintactico _sin = new Sintactico(); if (codigofuente.Length > 0) { List <Token> lista = new List <Token>(); List <Token> listaTablaSimbolo = new List <Token>(); //var ObjArbol = new Arboles(MiLi) lista = _lex.EjecutarLexico(codigofuente); int[] Tokensparasintactico = new int[500]; string[] lexemaParaSintactico = new string[500]; int cantidaddetokens = 0, ubicacion = 0; for (int i = 0; i < lista.Count; i++) { if (lista[i].token != -41 && lista[i].token != -39) { Tokensparasintactico[ubicacion] = lista[i].token; lexemaParaSintactico[ubicacion] = lista[i].lexema; listaTablaSimbolo.Add(lista[i]); cantidaddetokens++; ubicacion++; } } Tokensparasintactico[cantidaddetokens] = -99; //MessageBox.Show(Convert.ToString(Tokensparasintactico[0])+" "+ Convert.ToString(Tokensparasintactico[1])); TablaSimbolos.ListaErroresSemanticos = new List <ErrorSemanticoDGV>(); TablaSimbolos.TablaSimbolosClase = new Dictionary <string, NodoClase>(); _sin.EjecutarSintactico(Tokensparasintactico, lexemaParaSintactico, listaTablaSimbolo); dgvErrores.DataSource = null; dgvErrores.Rows.Clear(); dgvTablaSimbolo.DataSource = null; dgvTablaSimbolo.Rows.Clear(); Arboles arbolSintactico = new Arboles(listaTablaSimbolo); arbolSintactico.CrearArbolSintacticoAbstracto(); if (TablaSimbolos.ListaErroresSemanticos.Count > 0) { dgvErrores.DataSource = TablaSimbolos.ListaErroresSemanticos; } else { dgvTablaSimbolo.DataSource = TablaSimbolos.ObtenerListaClases(); } } else { dgvTablaSimbolo.DataSource = ""; MessageBox.Show("Escribe algo primero :v"); } } } }