public static void analizar(String cadena) { Gramatica gramatica = new Gramatica(); LanguageData lenguaje = new LanguageData(gramatica); Parser parser = new Parser(lenguaje); ParseTree arbol = parser.Parse(cadena); ParseTreeNode raiz = arbol.Root; Errores errores = new Errores(); switch (verificarErroresLexSin(arbol, raiz, errores)) { case 1: errores.generarReporteErrores(1); MessageBox.Show("Se encontraron errores lexicos o sintacticos y no se pudo recuperar. No generamos C3D", "Errores", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case 2: //generarImagen(raiz); //graficamos AST errores.generarReporteErrores(1); MessageBox.Show("Se encontraron errores lexicos o sintacticos pero nos recuperamos de ellos. No generamos C3D", "Errores", MessageBoxButtons.OK, MessageBoxIcon.Warning); break; case 3: //generarImagen(raiz); //graficamos AST MessageBox.Show("Cadena analizada correctamente. A generar C3D!", "PascalC3D", MessageBoxButtons.OK, MessageBoxIcon.Information); generarC3D(arbol, errores); errores.generarReporteErrores(1); if (!errores.esVacio()) { MessageBox.Show("Se encontraron errores semanticos durante la generacion del C3D", "PascalC3D", MessageBoxButtons.OK, MessageBoxIcon.Warning); } break; } }