private void btnEjecutar_Click(object sender, EventArgs e) { Limpiar(); Listas.archivo.Clear(); String nombre = tabControl1.SelectedTab.AccessibilityObject.Name.ToString(); Listas.archivo.Push(nombre); nombreTab = nombre; var rich = (RichTextBox)tabControl1.TabPages[tabControl1.SelectedIndex].Controls[0]; ParseTreeNode resultado = Analizador.analizar(rich.Text); if (resultado != null) { MessageBox.Show("El arbol fue construido correctamente"); PrimerRecorrido.action(resultado); RecorridoGlobal.action(resultado); ParseTreeNode nodoPrincipal = Metodo_Funcion.buscarMetodo("MAIN"); if (nodoPrincipal != null) { Variables.pilaAmbito.Push("Principal"); Variables.nivelAmbito += 1; SegundoRecorrido.continuar = false; SegundoRecorrido.detener = false; SegundoRecorrido.retornar = false; SegundoRecorrido.action(nodoPrincipal); } imprimirVariables(); imprimir(); } else { MessageBox.Show("ERROR: Deberia de revisar la cadena de entrada"); } }
private int analizar(String entrada) { Analizador a = new Analizador(); return(parser(a, entrada)); }
public void incluirArchivo(String archivo) { int i = 0; String carpeta = ""; if (listaRuta.Count == 0) { Reporte.agregarMensajeError("No se ha podido incluir el archivo ya que no esta guardado", "Error Semantico", Listas.nodoActual.Token.Location.Line, Listas.nodoActual.Token.Location.Column); return; } for (i = 0; i < listaRuta.Count; i++) //Si la ruta esta vacia { Pestania p = (Pestania)listaRuta[i]; if (p.nombre == nombreTab) { carpeta = p.carpeta; } } if (carpeta == "") { Reporte.agregarMensajeError("No se ha podido incluir el archivo ya que no esta guardado", "Error Semantico", Listas.nodoActual.Token.Location.Line, Listas.nodoActual.Token.Location.Column); return; } else { String ruta = carpeta + archivo; String texto = ""; try { System.IO.StreamReader sr = new System.IO.StreamReader(ruta); ruta = openFileDialog1.FileName; texto = sr.ReadToEnd(); sr.Close(); Pestania p = new Pestania(); p.nombre = archivo; p.ruta = ruta; p.carpeta = carpeta; listaRuta.Add(p); MessageBox.Show(archivo); txtConsola.Text += "\n* * * * * * * * " + archivo + " * * * * * * * "; ParseTreeNode resultado = Analizador.analizar(texto); if (resultado != null) { Listas.archivo.Push(archivo); MessageBox.Show("El arbol fue construido correctamente"); PrimerRecorrido.action(resultado); imprimirVariables(); imprimir(); Listas.archivo.Pop(); } else { MessageBox.Show("ERROR: Deberia de revisar la cadena de entrada"); } } catch (Exception e) { MessageBox.Show("Error;"); } } }