diff --git a/foxbin2prg.prg b/foxbin2prg.prg index eeb9347..e336ce2 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -1829,7 +1829,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .n_ProcessedFiles = 0 lnPCount = 0 - *-- Funciona y lee los parámetros, pero no le veo un caso de uso claro. 12/12/2014 + *-- Funciona y lee los parámetros, pero no le veo un caso de uso claro, ya que si se eligen + *-- varios directorios de proyecto, la compilación será errónea. 12/12/2014 *.ReadInputVFPParams( @laParams, @lnPCount ) *IF lnPCount > 0 THEN @@ -2165,7 +2166,10 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDCASE .c_LogFile = tc_InputFile + '.LOG' - ERASE ( .c_LogFile ) + + IF .l_Debug + ERASE ( .c_LogFile ) + ENDIF lnCodError = .Convertir( tc_InputFile, toModulo, toEx, .T., tcOriginalFileName ) .AvanceDelProceso( loLang.C_END_OF_PROCESS_LOC, 1, 1, 0 ) @@ -3222,6 +3226,7 @@ DEFINE CLASS c_conversor_base AS SESSION + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -3242,6 +3247,7 @@ DEFINE CLASS c_conversor_base AS SESSION , a_SpecialProps_XMLAda(1), a_SpecialProps_XMLFld(1), a_SpecialProps_XMLTbl(1) l_Debug = .F. + l_Error = .F. l_Test = .F. c_InputFile = '' c_OutputFile = '' @@ -4672,6 +4678,7 @@ DEFINE CLASS c_conversor_base AS SESSION TRY THIS.c_TextErr = THIS.c_TextErr + EVL(tcText,'') + CR_LF + THIS.l_Error = .T. CATCH ENDTRY ENDPROC @@ -6611,6 +6618,12 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base *-- Procedimiento de objeto toObjeto = toClase._AddObjects( lnObjProc ) toObjeto.add_Procedure( loProcedure ) + + *-- Paso el log de errores + IF NOT EMPTY(toObjeto.c_TextErr) THEN + toClase.writeErrorLog(toObjeto.c_TextErr) + toObjeto.c_TextErr = '' + ENDIF ENDIF ELSE *-- Procedimiento de clase @@ -6988,6 +7001,11 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo de cada clase .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toModulo, @toFoxBin2Prg ) + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + .AvanceDelProceso( 'Generating Binary...', 0, lnCodeLines, 1 ) toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) @@ -7335,6 +7353,11 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo de cada clase .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toModulo, @toFoxBin2Prg ) + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + .AvanceDelProceso( 'Generating Binary...', 0, lnCodeLines, 1 ) toFoxBin2Prg.doBackup( .F., .T., '', '', '' ) @@ -7655,6 +7678,11 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin .AvanceDelProceso( 'Identifying Code Blocks...', 1, 2, 1 ) .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toProject ) + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + .AvanceDelProceso( 'Generating Binary...', 2, 2, 1 ) .escribirArchivoBin( @toProject, toFoxBin2Prg ) ENDWITH && THIS @@ -8450,6 +8478,11 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin .AvanceDelProceso( 'Identifying Code Blocks...', 1, 2, 1 ) .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toReport ) + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + .AvanceDelProceso( 'Generating Binary...', 2, 2, 1 ) .escribirArchivoBin( @toReport, toFoxBin2Prg ) ENDWITH && THIS @@ -8879,6 +8912,11 @@ DEFINE CLASS c_conversor_prg_a_dbf AS c_conversor_prg_a_bin *-- Identifico el inicio/fin de bloque, definición, cabecera y cuerpo del reporte .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toTable ) + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + .escribirArchivoBin( @toTable, @toFoxBin2Prg ) ENDWITH && THIS @@ -9179,6 +9217,11 @@ DEFINE CLASS c_conversor_prg_a_dbc AS c_conversor_prg_a_bin .AvanceDelProceso( 'Identifying Code Blocks...', 1, 2, 1 ) .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toDatabase ) + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + .AvanceDelProceso( 'Generating Binary...', 2, 2, 1 ) .escribirArchivoBin( @toDatabase, toFoxBin2Prg ) ENDWITH && THIS @@ -9359,6 +9402,11 @@ DEFINE CLASS c_conversor_prg_a_mnx AS c_conversor_prg_a_bin .AvanceDelProceso( 'Identifying Code Blocks...', 1, 2, 1 ) .identificarBloquesDeCodigo( @laCodeLines, lnCodeLines, @laLineasExclusion, lnBloquesExclusion, @toMenu ) + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + .AvanceDelProceso( 'Generating Binary...', 1, 2, 1 ) .escribirArchivoBin( @toMenu ) ENDWITH && THIS @@ -11668,6 +11716,12 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg lcExternalHeader = lcExternalHeader + CR_LF ENDIF + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + + *-- Genero el VC2 lnStep = lnStep + 1 .AvanceDelProceso( 'Writing VC2...', lnStep, lnClassTotal*lnStepCount, 1 ) @@ -11975,6 +12029,12 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg lcExternalHeader = lcExternalHeader + CR_LF ENDIF + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + + *-- Genero el SC2 lnStep = lnStep + 1 .AvanceDelProceso( 'Writing SC2...', lnStep, lnClassTotal*lnStepCount, 1 ) @@ -12330,6 +12390,11 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg RETURN ENDTEXT + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + *-- Genero el PJ2 .AvanceDelProceso( 'Writing PJ2...', 2, 2, 1 ) @@ -12708,6 +12773,11 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg RETURN ENDTEXT + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + *-- Genero el PJ2 .AvanceDelProceso( 'Writing PJ2...', 2, 2, 1 ) @@ -12885,6 +12955,11 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg .write_DETALLE_REPORTE( @loRegCur ) ENDIF + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + *-- Genero el FR2 .AvanceDelProceso( 'Writing FR2...', 2, 2, 1 ) @@ -12992,6 +13067,11 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg loTable.toText( ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name, .c_InputFile, lc_FileTypeDesc, @toFoxBin2Prg ) FCLOSE( toFoxBin2Prg.n_FileHandle ) + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + *-- Genero el DB2, renombrando el TMP .AvanceDelProceso( 'Writing DB2...', 3, 3, 1 ) @@ -13014,6 +13094,11 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg ELSE C_FB2PRG_CODE = C_FB2PRG_CODE + loTable.toText( ln_HexFileType, ll_FileHasCDX, ll_FileHasMemo, ll_FileIsDBC, lc_DBC_Name, .c_InputFile, lc_FileTypeDesc, @toFoxBin2Prg ) + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + *-- Genero el DB2 .AvanceDelProceso( 'Writing DB2...', 3, 3, 1 ) @@ -13126,6 +13211,11 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg toDatabase = CREATEOBJECT('CL_DBC') C_FB2PRG_CODE = C_FB2PRG_CODE + toDatabase.toText() + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + *-- Genero el DC2 .AvanceDelProceso( 'Writing DC2...', 2, 2, 1 ) @@ -13203,6 +13293,11 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg toMenu.get_DataFromTablabin() C_FB2PRG_CODE = C_FB2PRG_CODE + toMenu.toText() + IF .l_Error + .writeLog( '*** ERRORS found - Generation Cancelled' ) + EXIT + ENDIF + *-- Genero el MN2 .AvanceDelProceso( 'Writing MN2...', 2, 2, 1 ) @@ -13730,6 +13825,8 @@ DEFINE CLASS CL_OBJETO AS CL_CUS_BASE _MEMBERDATA = [] ; + [] ; + [] ; + + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -13749,7 +13846,8 @@ DEFINE CLASS CL_OBJETO AS CL_CUS_BASE + [] ; + [] - DIMENSION _Props[1,1], _Procedures[1] + DIMENSION _Props[1,1], _Procedures[1], _aProcNames[1] + c_TextErr = '' _Nombre = '' _ObjName = '' _Parent = '' @@ -13780,9 +13878,17 @@ DEFINE CLASS CL_OBJETO AS CL_CUS_BASE toProcedure._Nombre = SUBSTR( toProcedure._Nombre, AT( '.', toProcedure._Nombre, OCCURS( '.', ._Nombre) ) + 1 ) ENDIF + *-- Verificación de Procedure repetido + IF ._Procedure_Count > 0 AND ASCAN( ._aProcNames, toProcedure._Nombre, 1, 0, 0, 1+2+4 ) > 0 THEN + .writeErrorLog( '* Duplicated Method "' + toProcedure._Nombre + '" of object "' ; + + ._Nombre + '" of class "' + ._Parent + '" in line ' + TRANSFORM(toProcedure._Inicio) ) + ENDIF + ._Procedure_Count = ._Procedure_Count + 1 DIMENSION ._Procedures( ._Procedure_Count ) + DIMENSION ._aProcNames( ._Procedure_Count ) ._Procedures( ._Procedure_Count ) = toProcedure + ._aProcNames( ._Procedure_Count ) = toProcedure._Nombre ENDWITH && THIS ENDPROC