Exemplo n.º 1
0
        public static Image getImage(ParseTreeNode raiz)
        {
            String grafica = GenerarGrafica.GenerarEstructura(raiz);

            WINGRAPHVIZLib.DOT         dot = new WINGRAPHVIZLib.DOT();
            WINGRAPHVIZLib.BinaryImage img = dot.ToPNG(grafica);
            byte[]       imageBytes        = Convert.FromBase64String(img.ToBase64String());
            MemoryStream ms     = new MemoryStream(imageBytes, 0, imageBytes.Length);
            Image        imagen = Image.FromStream(ms, true);

            return(imagen);
        }
        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);
                    }
                }
            }
        }