private void botonCargarInfo_Click_1(object sender, EventArgs e) { String ruta = textRuta.Text; StreamReader lector = new StreamReader(@"" + ruta); List <String> lineasEntrada = new List <string>(); String lineaActual; while ((lineaActual = lector.ReadLine()) != null) { lineasEntrada.Add(lineaActual); } salidaDatos.Lines = lineasEntrada.ToArray(); Resetear(); for (int i = 0; i < lineasEntrada.Count(); i++) { Cache.obtenerCache().AgregarLinea(lineasEntrada[i]); } try { AnalizadorLexico analizador = new AnalizadorLexico(); ComponenteLexico componente = analizador.Analizador(opcion); while (!componente.ObtenerCategoria().Equals(Categoria.FIN_DE_ARCHIVO)) { //MessageBox.Show(componente.ToString()); componente = analizador.Analizador(opcion); } LlenarTablas(); if (ManejadorErrores.HayErrores()) { MessageBox.Show("Hay problemas de compilacion. Revise la información de los errores encontrados..."); } else if (Categoria.FIN_DE_ARCHIVO.Equals(componente.ObtenerCategoria())) { MessageBox.Show("El programa se encuentra bien escrito"); } else { MessageBox.Show("Aunque el programa se encuentra bien escrito, faltaron componente por evaluar..."); } } catch (Exception ex) { LlenarTablas(); MessageBox.Show(ex.Message); } }
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); } }
public static ComponenteLexico SincronizarTabla(ComponenteLexico Componente) { if (Componente != null) { Componente = TablaPalabrasReservadas.ComprobarPalabraReservada(Componente); switch (Componente.ObtenerCategoria()) { case TipoComponente.DUMMY: TablaDummys.Agregar(Componente); break; case TipoComponente.PALABRA_RESERVADA: TablaPalabrasReservadas.Agregar(Componente); break; case TipoComponente.LITERAL: TablaLiterales.Agregar(Componente); break; case TipoComponente.SIMBOLO: TablaSimbolos.Agregar(Componente); break; } } return(Componente); }
private void cargarInfoConsola_Click_1(object sender, EventArgs e) { String[] lineasEntradas = entradaDatosConsola.Lines; //salidaDatos.Lines = lineasEntradas; Resetear(); for (int i = 0; i < lineasEntradas.Length; i++) { Cache.obtenerCache().AgregarLinea(lineasEntradas[i]); } try { //AnalizadorLexico analizador = new AnalizadorLexico(); AnalizadorSintactico AnaSin = new AnalizadorSintactico(); Dictionary <string, object> Resultados = AnaSin.Analizar(depurar); ComponenteLexico Componente = (ComponenteLexico)Resultados["COMPONENTE"]; Stack <double> Pila = (Stack <double>)Resultados["PILA"]; //while (!Componente.ObtenerCategoria().Equals(Categoria.FIN_DE_ARCHIVO)) //{ // //MessageBox.Show(componente.ToString()); // Componente = analizador.Analizar(); //} LlenarTablas(); if (ManejadorErrores.HayErrores()) { MessageBox.Show("Hay problemas de compilacion. Revise la información de los errores encontrados..."); } else if (Categoria.FIN_DE_ARCHIVO.Equals(Componente.ObtenerCategoria())) { MessageBox.Show("El programa se encuentra bien escrito"); if (Pila.Count == 1) { string Resultado = Convert.ToString(Pila.Pop()); MessageBox.Show("La operación arrojó como resultado: " + Resultado); salidaDatos.Text = Resultado; } else { MessageBox.Show("Faltaron números por evaluar"); } } else { MessageBox.Show("Aunque el programa se encuentra bien escrito, faltaron componente por evaluar..."); } } catch (Exception ex) { LlenarTablas(); MessageBox.Show(ex.Message); } }
private void cargarInfoConsola_Click_1(object sender, EventArgs e) { String[] lineasEntradas = entradaDatosConsola.Lines; salidaDatos.Lines = lineasEntradas; Resetear(); for (int i = 0; i < lineasEntradas.Length; i++) { Cache.obtenerCache().AgregarLinea(lineasEntradas[i]); } try { //AnalizadorLexico analizador = new AnalizadorLexico(); AnalizadorSintactico AnaSin = new AnalizadorSintactico(); ComponenteLexico componente = AnaSin.Analizar(depurar, opcion); //while (!componente.ObtenerCategoria().Equals(Categoria.FIN_DE_ARCHIVO)) //{ // //MessageBox.Show(componente.ToString()); // componente = analizador.Analizador(opcion); //} LlenarTablas(); if (ManejadorErrores.HayErrores()) { MessageBox.Show("Hay problemas de compilacion. Revise la información de los errores encontrados..."); } else if (Categoria.FIN_DE_ARCHIVO.Equals(componente.ObtenerCategoria())) { MessageBox.Show("El programa se encuentra bien escrito"); } else { MessageBox.Show("Aunque el programa se encuentra bien escrito, faltaron componente por evaluar..."); } } catch (Exception ex) { LlenarTablas(); MessageBox.Show(ex.Message); } }
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(); }
private void ExpresionPrima(int Jerarquia) { TrazarEntrada("<ExpresionPrima>", Jerarquia); if (Categoria.SUMA.Equals(Componente.ObtenerCategoria())) { Avanzar(); Termino(Jerarquia + 1); double derecho = Pila.Pop(); TrazarPop(Jerarquia, derecho); double izquierdo = Pila.Pop(); TrazarPop(Jerarquia, izquierdo); double Valor = izquierdo + derecho; TrazarSalida(izquierdo + " + " + derecho + " = " + Valor, Jerarquia); Pila.Push(Valor); TrazarPush(Jerarquia, Valor); ExpresionSinTerminoFactor(Jerarquia + 1); } else if (Categoria.RESTA.Equals(Componente.ObtenerCategoria())) { Avanzar(); Termino(Jerarquia + 1); double derecho = Pila.Pop(); TrazarPop(Jerarquia, derecho); double izquierdo = Pila.Pop(); TrazarPop(Jerarquia, izquierdo); double Valor = izquierdo - derecho; TrazarSalida(izquierdo + " - " + derecho + " = " + Valor, Jerarquia); Pila.Push(Valor); TrazarPush(Jerarquia, Valor); ExpresionSinTerminoFactor(Jerarquia + 1); } TrazarSalida("</ExpresionPrima>", Jerarquia); }
//<morseSec> :: <morse>|epsilon {., ,-} private void MorseSec() { if (!Categoria.FIN_DE_ARCHIVO.Equals(Componente.ObtenerCategoria())) { Morse(); } }