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"); } }
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); } } }