예제 #1
0
        public static void generarReporte()
        {
            StringWriter salida = new StringWriter();

            try
            {
                salida.WriteLine("<html>");
                salida.WriteLine("<head><title>SBScript</title></head>");
                salida.WriteLine("<body bgcolor=\"black\">");
                salida.WriteLine("<h1><center><FONT COLOR=silver>PRACTICA 1<FONT></center></h1>\"");
                salida.WriteLine("<h1><center><FONT COLOR=81426E> " + "SBScript" + " <FONT></center></h1>");
                salida.WriteLine("<br>");
                salida.WriteLine("<center>");
                salida.WriteLine("<table border= 1 width= 500>");
                salida.WriteLine("<tr>");
                salida.WriteLine("<th><font color=\"#24AAFF\" face=\"courier new\"> TIPO </font></th>");
                salida.WriteLine("<th><font color=\"#24AAFF\" face=\"courier new\"> DESCRIPCION </font></th>");
                salida.WriteLine("<th><font color=\"#24AAFF\" face=\"courier new\"> ARCHIVO </font></th>");
                salida.WriteLine("<th><font color=\"#24AAFF\" face=\"courier new\"> FILA </font></th>");
                salida.WriteLine("<th><font color=\"#24AAFF\" face=\"courier new\"> COLUMNA </font></th>");
                salida.WriteLine("</tr>");

                for (int i = 0; i < errores.Count; i++)
                {
                    Error s = (Error)errores[i];
                    salida.WriteLine("<tr>");
                    salida.WriteLine("<th><font color=\"white\">" + s.tipo + "</font></th>");
                    salida.WriteLine("<th><font color=\"white\">" + s.nombre + "</font></th>");
                    salida.WriteLine("<th><font color=\"white\">" + s.archivo + "</font></th>");
                    salida.WriteLine("<th><font color=\"white\">" + s.fila + "</font></th>");
                    salida.WriteLine("<th><font color=\"white\">" + s.columna + "</font></th>");
                }
                salida.WriteLine("</table><br>");
                salida.WriteLine("</body></html>");
                Listas.MensajeConsola.Add("> Reporte creado correctamente.\n");
            }
            catch (IOException e)
            {
                Listas.MensajeConsola.Add("> Error al crear el reporte: " + "\n");
            }
            if (Listas.ruta == "")
            {
                Listas.ruta = "C:/Users/Aylin/Documents/Visual Studio 2015/Projects/SBScript";
            }
            String ruta = Listas.quitarEspaciosFinal(Listas.ruta) + "\\Reporte.html";

            using (System.IO.StreamWriter file = new System.IO.StreamWriter(ruta))
            {
                file.WriteLine(salida);
            }
            try
            {
                Process.Start(ruta);
            }
            catch (Exception e)
            {
                // MessageBox.Show(e.ToString());
            }
        }
예제 #2
0
        public static String cadenaMetodo(ParseTreeNode nodo)
        {
            cadena = "";
            String cad = Listas.obtenerCadena(nodo);

            cad = cad.Replace("(Keyword)", "").Replace("(Key symbol)", "").Replace("(cadena)", "").Replace("(numero)", "").Replace("(id)", "");

            return(cad);
        }
예제 #3
0
        public static void generarAST(ParseTreeNode raiz, String nombre)
        {
            if (raiz == null)
            {
                Reporte.agregarMensajeError("La funcion es vacia", "Error Semantico", Listas.nodoActual.Token.Location.Line, Listas.nodoActual.Token.Location.Column);
                return;
            }

            String grafodot = DIBUJAR.getDotFuncion(raiz);
            String ruta     = "";

            if (Listas.ruta == "")
            {
                ruta = Listas.rutaDefinida + nombre;
            }
            else
            {
                if (Directory.Exists(Listas.ruta))
                {
                    ruta = Listas.quitarEspaciosFinal(Listas.ruta) + "\\" + nombre;
                }
                else
                {
                    Reporte.agregarError("No existe ruta: " + ruta, "Error General", 0, 0);
                    ruta = Listas.rutaDefinida + nombre;
                }
            }
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(ruta + ".dot"))
            {
                file.WriteLine(grafodot);
            }
            ProcessStartInfo startInfo = new ProcessStartInfo("C:\\Program Files (x86)\\Graphviz 2.28\\bin\\dot.exe");

            startInfo.Arguments = "dot -Tpng \"" + ruta + ".dot\" -o \"" + ruta + ".png\"";
            try
            {
                Process.Start(startInfo);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.ToString());
            }
        }