Exemple #1
0
        private void miArbol_Click(object sender, EventArgs e)
        {
            SeparaTokens separaTokens = new SeparaTokens();

            separaTokens.SepararTokens(txtArea, txtLog);
            separaTokens.ListaTokens.Add("$");
            separaTokens.ListaTokens.Reverse();
            separaTokens.TokensApoyo.Reverse();

            ArbolSintactico arbol = new ArbolSintactico(separaTokens.ListaTokens, separaTokens.TokensApoyo);

            String codeDot = arbol.dotCode();

            Console.WriteLine(codeDot);

            FolderBrowserDialog fbd    = new FolderBrowserDialog(); //Clase que nos sirve para la selección de la carpeta
            DialogResult        result = fbd.ShowDialog();          //Abrimos el menú que nos permite elegir la carpeta

            if (result == DialogResult.OK)                          //Condición que comprueba si el resultado del Dialog del fbd es OK
            {
                Bitmap bm = Dibujo.Run(codeDot);
                bm.Save(fbd.SelectedPath + @"\Arbol.png");
                MessageBox.Show("Se ha creado el archivo");
            }
            else
            {
                MessageBox.Show("Operación Cancelada");
            }
        }
Exemple #2
0
        public void Analizar()
        {
            if (GuardarArchivo())
            {
                TitusTools.Limpiar();
                ParseTree arbol = parser.Parse(TBContenido.Text);

                if (arbol.Root != null && arbol.ParserMessages.Count == 0)
                {
                    //generacion de la escructura del archivo ejecutad y sus imports
                    ArbolSintactico Arbol = new ArbolSintactico(arbol.Root, this.Tipo, this.Ruta);

                    //generamos el 3d si no es una archivo de 3d
                    if (this.Tipo != 2)
                    {
                        //ejecucion del primer archivo en la lista
                        if (TitusTools.Archivos_Importados.Count > 0 && !TitusTools.HayErrores())
                        {
                            TitusTools.Archivos_Importados[0].EjecutarConMain();
                        }
                        if (TitusTools.HayErrores())
                        {
                            MessageBox.Show("Se encontraron errores", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else
                        {
                            MessageBox.Show("Generacion de codigo 3D finalizada con exito.", "Codigo 3D", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }
                else
                {
                    foreach (Irony.LogMessage error in arbol.ParserMessages)
                    {
                        if (error.Message.Contains("Syntax error,"))
                        {
                            TitusTools.InsertarError("Sintactico", error.Message.Replace("Syntax error", " "), this.Ruta, (error.Location.Line + 1), (error.Location.Column + 1));
                        }
                        else if (error.Message.Contains("Invalid character"))
                        {
                            TitusTools.InsertarError("Lexico", error.Message.Replace("Invalid character", "Caracter invalido"), Ruta, (error.Location.Line + 1), (error.Location.Column + 1));
                        }
                        else
                        {
                            TitusTools.InsertarError("Sintactico", error.Message.Replace("Unclosed cooment block", "Comentario de bloque sin cerrar"), Ruta, (error.Location.Line + 1), (error.Location.Column + 1));
                        }
                    }
                    MessageBox.Show("Se encontraron errores", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }