Exemplo n.º 1
0
        public static void CompilarYEjecutar()
        {
            CompiladorAsm compiladorAsm;
            CompiladorC compiladorC;
            Compilador compilador;

            compiladorAsm = new CompiladorAsm( "", "nasm.exe" );
            compiladorC = new CompiladorC( "", "gcc.exe" );
            compilador = new Compilador( "", "gcc.exe", "salida.txt", "error.txt" );

            try            {
                Ejecutor.ArchivoSalida = salidaPorArchivo? archSalida : "salida.txt";
                Ejecutor.ArchivoError = "errorEjecucion.txt";

               // if( esAssembler )
                    compiladorAsm.Compilar( "-fcoff", "timer.asm" );

                compiladorC.Compilar( "-c -o codigoProbador.o", "codigoProbador.c" );
            /*
                string[] archivos = new string[2];
                archivos[1] = "codigoProbador.o";
                if( esAssembler )
                    archivos[0] = "timer.o";
                else
                    archivos[0] = archFuncion;
             * */
                string[] archivos;

                 if (esAssembler)
                {
                    archivos = new string[2];
                    archivos[0] = "timer.o";
                    archivos[1] = "codigoProbador.o";
                }
                else
                {
                    archivos = new string[3];
                    archivos[0] = archFuncion;
                    archivos[1] = "timer.o";
                    archivos[2] = "codigoProbador.o";
                }

                //Genera un .exe resultado de enlazar los 2 anteriores.
                compilador.Enlazar( "prueba.exe", archivos );

                Ejecutor.Ejecutar( "prueba.exe" );
                Console.Write( Ejecutor.ObtenerSalida() );
            }
            finally
            {
                if( esAssembler )
                    compiladorAsm.BorrarArchivosSalidaYError();
                compiladorC.BorrarArchivosSalidaYError();
                compilador.BorrarArchivosSalidaYError();
                Ejecutor.BorrarArchivosTemporales( !salidaPorArchivo );
                File.Delete( "codigoProbador.o" );
                File.Delete( "timer.o" );
            }
        }
Exemplo n.º 2
0
        public static string ErrorAlCompilar( Compilador compilador, string comando, string descripcion )
        {
            string mensaje = string.Empty;

            if( compilador is CompiladorAsm )
                mensaje = "Error de compilación ASM: ";
            if( compilador is CompiladorC )
                mensaje = "Error de compilación C: ";
            if( mensaje==string.Empty )
                mensaje = "Error en enlace: ";
            mensaje += "\nComando: " + comando;
            mensaje += "\nDescripción: \n" + descripcion + "\n\n";

            return mensaje;
        }
Exemplo n.º 3
0
 public static string ErrorAlCompilar( Compilador compilador, string comando, Exception excepcion )
 {
     return ErrorAlCompilar( compilador, comando, MA.ExcepcionCompleta( excepcion ) );
 }