Пример #1
0
 public Form1()
 {
     InitializeComponent();
     _analizadorLexico           = new AnalizadorLexico();
     _tablaSimbolos              = new TablaSimbolos();
     _analizadorSintactico       = new AnalizadorSintactico();
     _analizadorSemantico        = new AnalizadorSemantico();
     _generadorCodigo            = new GeneradorCodigo();
     cuadroResultados.ScrollBars = ScrollBars.Both;
     cuadroResultados.WordWrap   = false;
     cuadroTexto.ScrollBars      = ScrollBars.Both;
     cuadroTexto.WordWrap        = false;
     new ToolTip().SetToolTip(btnNuevo, "Nuevo");
     new ToolTip().SetToolTip(btnCompilar, "Compilar");
     new ToolTip().SetToolTip(btnOpen, "Abrir");
     new ToolTip().SetToolTip(btnSave, "Guardar");
     new ToolTip().SetToolTip(btnLexi, "Análisis léxico");
     new ToolTip().SetToolTip(btnSemantic, "Análisis semántico");
     new ToolTip().SetToolTip(btnSitax, "Análisis sintáctico");
     new ToolTip().SetToolTip(btnMachine, "Código máquina");
     new ToolTip().SetToolTip(btnIntermedio, "Código intermedio");
     new ToolTip().SetToolTip(btnEjecutar, "Ejecutar");
     openFile.Title            = "Abrir archivos C";
     openFile.Filter           = "Archivo C|*.c";
     openFile.InitialDirectory = @"C:\";
     saveFile.Title            = "Guarcar archivo";
     saveFile.Filter           = "Archivo C|*.c";
     saveFile.InitialDirectory = @"C:\";
 }
Пример #2
0
 /// <summary>
 /// Crea una cuenta a partir de un CuentaModel agregando los datos necesarios para
 /// registrarla en la base de datos
 /// </summary>
 /// <param name="CuentaAConvertir">CuentaModel</param>
 /// <returns>Una Cuenta con la informacion necesaria para ser alamcenada en la base de datos </returns>
 private Cuenta CrearCuentaAGuadar(CuentaModel CuentaAConvertir)
 {
     return(new Cuenta()
     {
         Usuario = CuentaAConvertir.NombreUsuario,
         Password = Encriptador.ComputeSha256Hash(CuentaAConvertir.Contrasena),
         CodigoVerificacion = GeneradorCodigo.GenerarCodigoActivacion(),
         Valida = false,
         CorreoElectronico = CuentaAConvertir.CorreoElectronico
     });
 }
Пример #3
0
        /// <summary>
        /// Crea una sala publica con Id aleatorio
        /// </summary>
        /// <param name="Cuenta">CuentaModel</param>
        /// <param name="ActualCallback">IGameServiceCallback</param>
        /// <returns>La sala que se creada</returns>
        private Sala CrearSalaConIdAleatorio(CuentaModel Cuenta, IGameServiceCallback ActualCallback, String DireccionIpDelCliente)
        {
            String IdDeSala;

            do
            {
                IdDeSala = GeneradorCodigo.GenerarCadena();
            } while (EstaElIdDeSalaEnUso(IdDeSala));
            Sala NuevaSala = new Sala(IdDeSala, true, Cuenta, ActualCallback, DireccionIpDelCliente);

            return(NuevaSala);
        }
Пример #4
0
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            StringBuilder   p_Impresion        = new StringBuilder();
            GeneradorCodigo objGeneradorCodigo = new GeneradorCodigo();
            Tabla           objTabla           = new Tabla(Convert.ToString(this.cmbTablasBD.SelectedValue));
            Tabla           objTabla2          = new Tabla(Convert.ToString(this.cmbTablasBD2.SelectedValue));

            consts.TIPO_BASE_DATOS p_TIPO_BASE_DATOS = consts.TIPO_BASE_DATOS.SQL_SERVER;

            switch (this.treeView1.SelectedNode.Text)
            {
            case "BeanEntidad":
                p_Impresion = objGeneradorCodigo.GenerarEntidades(objTabla);
                break;

            case "InterfaceDao":
                p_Impresion = objGeneradorCodigo.InterfaceDAO(objTabla);
                break;

            case "SqlServer_Tabla_Dao":
                p_Impresion = objGeneradorCodigo.SqlServer_Tabla_DAO(objTabla);
                break;

            case "ClaseNegocio":
                p_Impresion = objGeneradorCodigo.Clase_Negocio(objTabla, objTabla2);
                break;

            case "MantenimientoGUI":
                p_Impresion = objGeneradorCodigo.Clase_GUI_Mantenimiento(objTabla);
                break;

            case "MantenimientoProcedure":
                p_Impresion = objGeneradorCodigo.Clase_GUI_Mantenimiento_Procedure(objTabla, p_TIPO_BASE_DATOS);
                break;

            case "CrearTable":
                p_Impresion = objGeneradorCodigo.Clase_GUI_CrearTable(objTabla);
                break;

            case "CrearGrid":
                p_Impresion = objGeneradorCodigo.Clase_GUI_CrearGrid(objTabla);
                break;

            default:
                break;
            }

            //this.textBox1.Text = p_Impresion.ToString();
            this.richTextBox1.Text = p_Impresion.ToString();
        }
Пример #5
0
        static void Main(string[] args)
        {
            System.IO.StreamReader input;
            String nombreArchivo;
            Dictionary <String, String> opciones = parseArgs(args);

            //Validar que no existan opciones incorrectas
            if (opciones.ContainsKey("--help") || opciones.Count == 0)
            {
                mostrarUso();
            }
            else if (opcionInvalida(opciones))
            {
                Console.WriteLine("Error: opción incorrecta");
                mostrarUso();
            }

            try
            {
                //Validar el archivo de entrada
                if (!opciones.ContainsKey("--entrada"))
                {
                    Console.WriteLine("Error: falta archivo de entrada");
                    mostrarUso();
                }
                nombreArchivo = opciones["--entrada"];
                input         = new System.IO.StreamReader(nombreArchivo);
                TinyLexer lexer = new TinyLexer(input);

                if (opciones.ContainsKey("--mostrar-tokens"))
                {
                    Console.WriteLine("\n\n\n");
                    mostrarTokens(lexer, input);
                }

                lexer.setNombreArchivo(nombreArchivo);
                TinyParser parser = new TinyParser(lexer);
                Programa   result = (Programa)(parser.parse().value);
                if (parser.getOmerrs() > 0)
                {
                    System.Console.Error.WriteLine("La compilación ha terminado con " + parser.getOmerrs() + " errores");
                    WriteKeyPressForExit();
                    System.Environment.Exit(1);
                }

                if (opciones.ContainsKey("--mostrar-ast"))
                {
                    Console.WriteLine("\n\n\n");
                    Console.WriteLine("\n####### Inicio del Árbol Sintáctico Abstracto #######");
                    result.dump(System.Console.Out, 0);
                    Console.WriteLine("####### Fin del Árbol Sintáctico Abstracto #######\n");
                }

                AnalizadorSemantico sem = new AnalizadorSemantico(result);
                sem.analizar();

                if (SemantErrorReport.Instancia.tieneErrores())
                {
                    Console.Error.WriteLine("La compilación ha terminado con " + SemantErrorReport.Instancia.Errores + " errores");
                    WriteKeyPressForExit();
                    System.Environment.Exit(1);
                }
                else
                {
                    if (opciones.ContainsKey("--mostrar-tipos"))
                    {
                        Console.WriteLine("\n\n\n");
                        Console.WriteLine("####### Inicio del Árbol Sintáctico Abstracto Anotado #######");
                        result.dump(System.Console.Out, 0);
                        Console.WriteLine("####### Fin del Árbol Sintáctico Abstracto Anotado #######\n");
                    }

                    Console.WriteLine("\n\n\n");

                    string path = Directory.GetCurrentDirectory();
                    Console.WriteLine("El directorio donde se ha generado el ejecutable es {0}", path);
                    Sentencia   s = result.Sentencias.getLista()[1];
                    Condicional c = (Condicional)s;


                    GeneradorCodigo gen = new GeneradorCodigo(result, System.IO.Path.GetFileName(nombreArchivo), System.IO.Path.GetFileName(nombreArchivo) + ".exe");

                    if (opciones.ContainsKey("--generar-con-ast"))
                    {
                        gen.GenerarEjecutableconAst(false);
                    }
                    else if (opciones.ContainsKey("--generar-con-func"))
                    {
                        gen.GenerarEjecutableconFuncion(false);
                    }
                    else
                    {
                        gen.GenerarEjecutableconFuncion(false);
                    }

                    Console.WriteLine("La compilación ha finalizado correctamente");
                }
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e.Message);
                Console.Error.WriteLine("!!! ERROR GRAVE: EL COMPILADOR NO GENERADO DE FORMA CORRECTA EL EJECUTABLE !!!");
                throw new System.Exception("ERROR-0001: Un error inesperado no ha permitido llevar a cabo de forma correcta el proceso de compilacion");
            }
            WriteKeyPressForExit();
        }