Пример #1
0
        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");
            }
        }
Пример #2
0
        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;");
                }
            }
        }