示例#1
0
        private void button1_Click(object sender, EventArgs e)
        {
            debuggerConsole.Text = "";
            debuggerConsole.AppendText("Iniciando Ejecucion!\n");
            reporte.limpiarLista();
            Analizador analizador = new Analizador(this.debuggerConsole, Consola, reporte);

            analizador.analizar(Pascal.Text);
            debuggerConsole.AppendText("Finalizando Ejecucion");
        }
        private void BtnAnalizar_Click(object sender, EventArgs e)
        {
            if (tabControl.SelectedTab != null)
            {
                if (!getTextBox(null).Text.Equals(""))
                {
                    limpiarCampos();
                    generador    = new GeneradorArchivo();
                    analizar     = new Analizador();
                    salidaTokens = new List <Token>();
                    salidaTokens = analizar.analizar(getTextBox(null).Text, getTextBox(null));
                    if (!Analizador.lexicError)
                    {
                        html_tokensFile = "tokens.html";
                        generateImg     = "graphic" + contador + ".png";

                        analizar.imprimirTokens();
                        generador.generateHTMLTokensFile(salidaTokens, html_tokensFile);
                        Process.Start(html_tokensFile);
                        gGraphic = new GenerarGrafica();
                        grafico  = new Grafico();
                        grafico  = gGraphic.generar(salidaTokens);
                        generador.generateDOTArchive(grafico, "Grafico.dot");
                        btnGenerarPDF.Enabled = true;
                        generador.generateProcess(generateImg, "png");
                        paisEncontrado = new Pais();
                        paisEncontrado = encontrar(grafico);
                        generarDescripcion(generateImg, paisEncontrado);
                        contador += 1;
                    }
                    else
                    {
                        getTextBox(null).SelectionStart  = 0;
                        getTextBox(null).SelectionLength = getTextBox(null).Text.Length;
                        getTextBox(null).SelectionColor  = Color.Black;
                        detailsContainer.Panel1.Controls.Clear();
                        limpiarCampos();
                        html_tokensFile = "erroes.html";
                        generador.generateErrorsHTMLFile(Analizador.listaErrores, html_tokensFile);
                        MessageBox.Show("Ocurrió un error al leer el código", "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        Analizador.lexicError = false;
                        Process.Start(html_tokensFile);
                    }
                }
            }
        }
        //PERMITE LA GENERACION DEL FORMULARIO
        private void toolStripButton2_Click(object sender, EventArgs e)
        {
            StatusControl.Text = "Estatus";
            Estatico.setUp(Consola);
            Hashtable clasesPreanalizadas = new Hashtable();

            if (Editor.TabCount > 0)
            {
                //RichTextBox principal = (RichTextBox)Editor.TabPages[Editor.SelectedIndex].Controls[0].Controls[1];
                this.archivo = Editor.TabPages[Editor.SelectedIndex].Name;

                FastColoredTextBox principal = (FastColoredTextBox)Editor.TabPages[Editor.SelectedIndex].Controls[0].Controls[0];
                String             cadena    = principal.Text;//PARA QUE TODO ESTE EN MINUSCULAS Y NO TENGA CLAVOS CON LA COMPROBACION DE NOMBRES
                Progreso.Value     = 40;
                StatusControl.Text = "Iniciando Proceso...";
                System.Threading.Thread.Sleep(200);
                Analizador an = new Analizador(cadena, this.ProyectoPath, archivo);
                if (an.analizar())//SI SE ANALIZA LA CADENA...
                {
                    // PROCEDE A INTENTAR CAPTURAR LA INFO...
                    if (Estatico.NumeroErroes() > 0) //SO EXISTEN ERRORES ANTES DE CAPTURAR LA INFO...
                    {
                        //REVISAR...
                        Progreso.Value     = 0;
                        StatusControl.Text = "Proceso Interrumpido!";
                        Estatico.consolaSalida.AppendText("\n>> Proceso detenido, Errores detectados...");
                        MessageBox.Show("Existen: " + Estatico.NumeroErroes() + " en La cadena! Revisalos en el reporte", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else//SINO PROCEDER A CAPTURA LA INFORMACION
                    {
                        CapturarInformacion(an, clasesPreanalizadas);
                        ///////////////////////////////////////////////////////
                        Progreso.Value     = 100;
                        StatusControl.Text = "Proceso Terminado!";
                        System.Threading.Thread.Sleep(200);
                        Progreso.Value = 0;
                        ///////////////////////////////////////////////////////
                        if (Estatico.resps.Count > 0)
                        {
                            String nombre = Microsoft.VisualBasic.Interaction.InputBox("Nombre Del Formulario A Guardar: ", "Nuevo Form", "", 100, 100);
                            if (!nombre.Equals(""))
                            {
                                SavedForm s = new SavedForm(nombre, Estatico.resps);
                                if (s.writeForm())
                                {
                                    MessageBox.Show("Formulario: " + nombre + " Almacenado!", "Success!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                                else
                                {
                                    MessageBox.Show("No se almaceno el formulario!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                }
                            }
                        }
                        //AQUI DEBO DE PREGUNTAR SI EN CASO HAY UN PROBLEMA CON LAS ADVERTENCIAS
                    }
                }
                else//SI NO SE PUEDE, ENTONCES EL ERROR ES FATAL... REVISAR
                {
                    MessageBox.Show("No se logro Analizar la cadena de entrada", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                errorLabel.Text    = Convert.ToString(Estatico.NumeroErroes());
                warningsLabel.Text = Convert.ToString(Estatico.NumeroAdvertencias());
            }
        }