Changeset: 55 Changeset: 55 Se incorporan todas las mejoras y arreglos de bugs
This commit is contained in:
BIN
TESTS/DATOS_READONLY/fb2p_test_bug_estructural.vct
Normal file
BIN
TESTS/DATOS_READONLY/fb2p_test_bug_estructural.vct
Normal file
Binary file not shown.
BIN
TESTS/DATOS_READONLY/fb2p_test_bug_estructural.vcx
Normal file
BIN
TESTS/DATOS_READONLY/fb2p_test_bug_estructural.vcx
Normal file
Binary file not shown.
BIN
TESTS/DATOS_READONLY/fb2p_test_bug_metodo_movido.vct
Normal file
BIN
TESTS/DATOS_READONLY/fb2p_test_bug_metodo_movido.vct
Normal file
Binary file not shown.
BIN
TESTS/DATOS_READONLY/fb2p_test_bug_metodo_movido.vcx
Normal file
BIN
TESTS/DATOS_READONLY/fb2p_test_bug_metodo_movido.vcx
Normal file
Binary file not shown.
@@ -0,0 +1,127 @@
|
||||
DEFINE CLASS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion as FxuTestCase OF FxuTestCase.prg
|
||||
|
||||
#IF .F.
|
||||
LOCAL THIS AS ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion OF ut__foxbin2prg__c_conversor_base__IdentificarBloquesDeExclusion.PRG
|
||||
#ENDIF
|
||||
|
||||
#DEFINE C_PROC 'PROCEDURE'
|
||||
#DEFINE C_ENDPROC 'ENDPROC'
|
||||
#DEFINE C_TEXT 'TEXT'
|
||||
#DEFINE C_ENDTEXT 'ENDTEXT'
|
||||
#DEFINE C_IF_F '#IF .F.'
|
||||
#DEFINE C_ENDIF '#ENDIF'
|
||||
icObj = NULL
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Setup
|
||||
THIS.icObj = NEWOBJECT("c_conversor_prg_a_bin", "FOXBIN2PRG.PRG")
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION TearDown
|
||||
THIS.icObj = NULL
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Evaluate_results
|
||||
LPARAMETERS taExpected_Pos, taPos, tnPos_Count
|
||||
|
||||
LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG"
|
||||
loObj = THIS.icObj
|
||||
|
||||
IF PCOUNT() = 0
|
||||
THIS.messageout( "* Support method, not a valid test." )
|
||||
RETURN .T.
|
||||
ENDIF
|
||||
|
||||
THIS.messageout( "Pares de posiciones esperados: " + TRANSFORM(tnPos_Count) )
|
||||
FOR I = 1 TO tnPos_Count
|
||||
THIS.messageout( "Posici<63>n de Inicio/Fin esperados: " + TRANSFORM(taExpected_Pos(I,1)) + ',' + TRANSFORM(taExpected_Pos(I,2)) )
|
||||
ENDFOR
|
||||
|
||||
THIS.assertequals( ALEN(taExpected_Pos,1), ALEN(taPos,1), "Posici<63>n de Inicio/Fin" )
|
||||
|
||||
FOR I = 1 TO tnPos_Count
|
||||
THIS.assertequals( TRANSFORM(taExpected_Pos(I,1)) + ',' + TRANSFORM(taExpected_Pos(I,2)) ;
|
||||
, TRANSFORM(taPos(I,1)) + ',' + TRANSFORM(taPos(I,2)) ;
|
||||
, "Posici<63>n de Inicio/Fin" )
|
||||
ENDFOR
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_ObtenerLaUbicacionDelBloque_IF_ENDIF_CuandoCodigoCon_IF_ENDIF_predominante_esEvaluado
|
||||
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(2,2)
|
||||
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
|
||||
loObj = THIS.icObj
|
||||
|
||||
*-- Input and expected params
|
||||
STORE '' TO lcMethod
|
||||
laExpected_Pos(1,1) = 3
|
||||
laExpected_Pos(1,2) = 5
|
||||
laExpected_Pos(2,1) = 7
|
||||
laExpected_Pos(2,2) = 9
|
||||
|
||||
TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2+4
|
||||
<<C_PROC>> myMethod_B
|
||||
*-- Code Block
|
||||
<<C_IF_F>>
|
||||
<<C_TEXT>>
|
||||
<<C_ENDIF>>
|
||||
*-- Code Block
|
||||
<<C_IF_F>>
|
||||
<<C_ENDTEXT>>
|
||||
<<C_ENDIF>>
|
||||
<<C_ENDPROC>>
|
||||
ENDTEXT
|
||||
|
||||
lnLineas = ALINES( laLineas, lcMethod )
|
||||
|
||||
*-- Test
|
||||
loObj.identificarBloquesDeExclusion( @laLineas, lnLineas, , @laPos, @lnPos_Count )
|
||||
|
||||
THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count )
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_ObtenerLaUbicacionDelBloque_TEXT_ENDTEXT_CuandoCodigoCon_TEXT_ENDTEXT_predominante_esEvaluado
|
||||
LOCAL lcMethod, laLineas(1), lnLineas, laPos(1,2), lnPos_Count, laExpected_Pos(2,2)
|
||||
LOCAL loObj AS c_conversor_prg_a_bin OF "FOXBIN2PRG.PRG"
|
||||
loObj = THIS.icObj
|
||||
|
||||
*-- Input and expected params
|
||||
STORE '' TO lcMethod
|
||||
laExpected_Pos(1,1) = 3
|
||||
laExpected_Pos(1,2) = 5
|
||||
laExpected_Pos(2,1) = 7
|
||||
laExpected_Pos(2,2) = 9
|
||||
|
||||
TEXT TO lcMethod NOSHOW TEXTMERGE FLAGS 1 PRETEXT 1+2+4
|
||||
<<C_PROC>> myMethod_B
|
||||
*-- Code Block
|
||||
<<C_TEXT>>
|
||||
<<C_IF_F>>
|
||||
<<C_ENDTEXT>>
|
||||
*-- Code Block
|
||||
<<C_TEXT>>
|
||||
<<C_ENDIF>>
|
||||
<<C_ENDTEXT>>
|
||||
<<C_ENDPROC>>
|
||||
ENDTEXT
|
||||
|
||||
lnLineas = ALINES( laLineas, lcMethod )
|
||||
|
||||
*-- Test
|
||||
loObj.identificarBloquesDeExclusion( @laLineas, lnLineas, , @laPos, @lnPos_Count )
|
||||
|
||||
THIS.Evaluate_results( @laExpected_Pos, @laPos, lnPos_Count )
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
ENDDEFINE
|
||||
175
TESTS/ut__foxbin2prg__c_conversor_bin_a_prg__indentarMemo.prg
Normal file
175
TESTS/ut__foxbin2prg__c_conversor_bin_a_prg__indentarMemo.prg
Normal file
@@ -0,0 +1,175 @@
|
||||
DEFINE CLASS ut__foxbin2prg__c_conversor_bin_a_prg__indentarMemo AS FxuTestCase OF FxuTestCase.prg
|
||||
|
||||
#IF .F.
|
||||
LOCAL THIS AS ut__foxbin2prg__c_conversor_bin_a_prg__indentarMemo OF ut__foxbin2prg__c_conversor_bin_a_prg__indentarMemo.PRG
|
||||
#ENDIF
|
||||
|
||||
#DEFINE C_FB2P_VALUE_I '<fb2p_value>'
|
||||
#DEFINE C_FB2P_VALUE_F '</fb2p_value>'
|
||||
#DEFINE CR_LF CHR(13) + CHR(10)
|
||||
#DEFINE C_CR CHR(13)
|
||||
#DEFINE C_LF CHR(10)
|
||||
#DEFINE C_TAB CHR(9)
|
||||
#DEFINE C_PROC 'PROCEDURE'
|
||||
#DEFINE C_ENDPROC 'ENDPROC'
|
||||
#DEFINE C_TEXT 'TEXT'
|
||||
#DEFINE C_ENDTEXT 'ENDTEXT'
|
||||
#DEFINE C_IF_F '#IF .F.'
|
||||
#DEFINE C_ENDIF '#ENDIF'
|
||||
#DEFINE C_DEFINE_CLASS 'DEFINE CLASS'
|
||||
#DEFINE C_ENDDEFINE_CLASS 'ENDDEFINE'
|
||||
icObj = NULL
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION SETUP
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG"
|
||||
SET PROCEDURE TO 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
oFXU_LIB = CREATEOBJECT('CL_FXU_CONFIG')
|
||||
oFXU_LIB.setup_comun()
|
||||
|
||||
THIS.icObj = NEWOBJECT("c_conversor_bin_a_prg", "FOXBIN2PRG.PRG")
|
||||
loObj = THIS.icObj
|
||||
loObj.l_Test = .T.
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION TearDown
|
||||
#IF .F.
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
#ENDIF
|
||||
THIS.icObj = NULL
|
||||
|
||||
IF VARTYPE(oFXU_LIB) = "O"
|
||||
oFXU_LIB.teardown_comun()
|
||||
oFXU_LIB = NULL
|
||||
ENDIF
|
||||
RELEASE PROCEDURE 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Evaluate_results
|
||||
LPARAMETERS toEx AS EXCEPTION, tnCodError_Esperado, tcMemo, tcMemo_Salida, tcMemo_Esperado
|
||||
|
||||
#IF .F.
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
#ENDIF
|
||||
LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG"
|
||||
loObj = THIS.icObj
|
||||
|
||||
IF PCOUNT() = 0
|
||||
THIS.messageout( "* Support method, not a valid test." )
|
||||
RETURN .T.
|
||||
ENDIF
|
||||
|
||||
IF ISNULL(toEx)
|
||||
*-- Algunos ajustes para mejor visualizaci<63>n de caracteres especiales
|
||||
tcMemo = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcMemo )
|
||||
tcMemo_Esperado = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcMemo_Esperado )
|
||||
tcMemo_Salida = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcMemo_Salida )
|
||||
|
||||
*-- Visualizaci<63>n de valores
|
||||
THIS.messageout( ' Memo de entrada:' )
|
||||
THIS.messageout( '[' + tcMemo + ']' )
|
||||
|
||||
THIS.messageout( REPLICATE('-',80) )
|
||||
|
||||
THIS.messageout( ' Memo esperado:' )
|
||||
THIS.messageout( '[' + tcMemo_Esperado + ']' )
|
||||
|
||||
|
||||
*-- Evaluaci<63>n de valores
|
||||
THIS.assertequals( '[' + tcMemo_Esperado + ']', '[' + tcMemo_Salida + ']', "Contenido del Memo de PROCEDURE" )
|
||||
|
||||
ELSE
|
||||
*-- Evaluaci<63>n de errores
|
||||
THIS.messageout( "Error " + TRANSFORM(toEx.ERRORNO) + ', ' + TRANSFORM(toEx.MESSAGE) )
|
||||
THIS.messageout( toEx.PROCEDURE + ', ' + TRANSFORM(toEx.LINENO) )
|
||||
THIS.messageout( TRANSFORM(toEx.LINECONTENTS) )
|
||||
|
||||
THIS.assertequals( tnCodError_Esperado, toEx.ERRORNO, 'Error' )
|
||||
ENDIF
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_evaluarUnMemo_PROCEDURE_YQuitarleLaCabecera_PROCEDURE_YElPie_ENDPROC_DejandoSoloElContenido
|
||||
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
|
||||
, lcMemo, lcMemo_Salida, lcMemo_Esperado ;
|
||||
, loEx AS EXCEPTION
|
||||
LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG"
|
||||
loObj = THIS.icObj
|
||||
loEx = NULL
|
||||
|
||||
*-- DATOS DE ENTRADA
|
||||
STORE 0 TO lnCodError
|
||||
|
||||
TEXT TO lcMemo TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||
<<'PROCEDURE miMetodo'>>
|
||||
Page1.Name = "Page1"
|
||||
<<'ENDPROC'>>
|
||||
|
||||
|
||||
ENDTEXT
|
||||
|
||||
*-- DATOS ESPERADOS
|
||||
STORE 0 TO lnCodError_Esperado
|
||||
|
||||
TEXT TO lcMemo_Esperado TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||
<<C_TAB>><<C_TAB>>Page1.Name = "Page1"
|
||||
ENDTEXT
|
||||
|
||||
|
||||
*-- TEST
|
||||
lcMemo_Salida = loObj.IndentarMemo( @lcMemo, C_TAB+C_TAB )
|
||||
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcMemo, @lcMemo_Salida, @lcMemo_Esperado )
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_evaluarUnMemo_PROCEDURE_YDarUnError_1098_Por_ProcedimientoSinCerrar
|
||||
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
|
||||
, lcMemo, lcMemo_Salida, lcMemo_Esperado ;
|
||||
, loEx AS EXCEPTION
|
||||
LOCAL loObj AS c_conversor_bin_a_prg OF "FOXBIN2PRG.PRG"
|
||||
loObj = THIS.icObj
|
||||
loEx = NULL
|
||||
|
||||
*-- DATOS DE ENTRADA
|
||||
STORE 0 TO lnCodError
|
||||
|
||||
TEXT TO lcMemo TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||
<<'PROCEDURE miMetodo'>>
|
||||
Page1.Name = "Page1"
|
||||
|
||||
|
||||
ENDTEXT
|
||||
|
||||
*-- DATOS ESPERADOS
|
||||
STORE 0 TO lnCodError_Esperado
|
||||
lnCodError_Esperado = 1098
|
||||
|
||||
TEXT TO lcMemo_Esperado TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||
<<C_TAB>><<C_TAB>>Page1.Name = "Page1"
|
||||
ENDTEXT
|
||||
|
||||
|
||||
*-- TEST
|
||||
TRY
|
||||
lcMemo_Salida = loObj.IndentarMemo( @lcMemo, C_TAB+C_TAB )
|
||||
CATCH TO loEx
|
||||
ENDTRY
|
||||
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcMemo, @lcMemo_Salida, @lcMemo_Esperado )
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
ENDDEFINE
|
||||
@@ -4892,7 +4892,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
||||
ENDIF
|
||||
|
||||
*-- Genero el m<>todo SIN indentar, ya que se hace luego
|
||||
*TEXT TO tcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||
*tcMethods2 = tcMethods
|
||||
*TEXT TO tcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||
* <<'PROCEDURE'>> <<tcMethodName>>
|
||||
* <<THIS.IndentarMemo( taCode(taMethods(I,2)) )>>
|
||||
* <<'ENDPROC'>>
|
||||
@@ -4901,7 +4902,6 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
||||
tcMethods = tcMethods + CR_LF + 'PROCEDURE ' + tcMethodName
|
||||
tcMethods = tcMethods + CR_LF + THIS.IndentarMemo( taCode(taMethods(I,2)) )
|
||||
tcMethods = tcMethods + CR_LF + 'ENDPROC'
|
||||
tcMethods = tcMethods + CR_LF
|
||||
ENDFOR
|
||||
ENDIF
|
||||
|
||||
@@ -5142,7 +5142,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
||||
LPARAMETERS tcMethod, tcIndentation
|
||||
*-- INDENTA EL C<>DIGO DE UN M<>TODO DADO Y QUITA LA CABECERA DE M<>TODO (PROCEDURE/ENDPROC) SI LA ENCUENTRA
|
||||
TRY
|
||||
LOCAL I, lcMethod, llProcedure, lnInicio, lnFin
|
||||
LOCAL I, X, lcMethod, llProcedure, lnInicio, lnFin, laLineas(1)
|
||||
lcMethod = ''
|
||||
llProcedure = ( LEFT(tcMethod,10) == 'PROCEDURE ' ;
|
||||
OR LEFT(tcMethod,17) == 'HIDDEN PROCEDURE ' ;
|
||||
@@ -5152,6 +5152,24 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
||||
IF VARTYPE(tcIndentation) # 'C'
|
||||
tcIndentation = ''
|
||||
ENDIF
|
||||
|
||||
*-- Quito las l<>neas en blanco luego del final del ENDPROC
|
||||
X = 0
|
||||
FOR I = lnFin TO 1 STEP -1
|
||||
IF NOT EMPTY(laLineas(I)) && <20>ltima l<>nea de c<>digo
|
||||
IF LEFT( laLineas(I), 10 ) <> C_ENDPROC
|
||||
ERROR 'Procedimiento sin cerrar. La <20>ltima l<>nea de c<>digo debe ser ENDPROC. [' + laLineas(1) + ']'
|
||||
ENDIF
|
||||
EXIT
|
||||
ENDIF
|
||||
X = X + 1
|
||||
ENDFOR
|
||||
|
||||
IF X > 0
|
||||
lnFin = lnFin - X
|
||||
DIMENSION laLineas(lnFin)
|
||||
ENDIF
|
||||
|
||||
|
||||
*-- Si encuentra la cabecera de un PROCEDURE, la saltea
|
||||
IF llProcedure
|
||||
@@ -5446,26 +5464,29 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
||||
LPARAMETERS tcMethods
|
||||
|
||||
*-- Finalmente, todos los m<>todos los ordeno y escribo juntos
|
||||
LOCAL laMethods(1), laCode(1), lnMethodCount, I
|
||||
LOCAL laMethods(1), laCode(1), lnMethodCount, I, lcMethods, lcMethods2
|
||||
|
||||
IF NOT EMPTY(tcMethods)
|
||||
STORE '' TO lcMethods, lcMethods2
|
||||
DIMENSION laMethods(1,3)
|
||||
THIS.SortMethod( @tcMethods, @laMethods, @laCode, '', @lnMethodCount )
|
||||
|
||||
FOR I = 1 TO lnMethodCount
|
||||
*-- Genero los m<>todos indentados
|
||||
*TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||
*TEXT TO lcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||
* <<C_TAB>><<laMethods(I,3)>>PROCEDURE <<laMethods(I,1)>>
|
||||
* <<THIS.IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) )>>
|
||||
* <<C_TAB>>ENDPROC
|
||||
|
||||
*ENDTEXT
|
||||
*-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso
|
||||
C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + C_TAB + laMethods(I,3) + 'PROCEDURE ' + laMethods(I,1)
|
||||
C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + THIS.IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) )
|
||||
C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF + C_TAB + 'ENDPROC'
|
||||
C_FB2PRG_CODE = C_FB2PRG_CODE + CR_LF
|
||||
lcMethods = lcMethods + CR_LF + C_TAB + laMethods(I,3) + 'PROCEDURE ' + laMethods(I,1)
|
||||
lcMethods = lcMethods + CR_LF + THIS.IndentarMemo( laCode(laMethods(I,2)), CHR(9) + CHR(9) )
|
||||
lcMethods = lcMethods + CR_LF + C_TAB + 'ENDPROC'
|
||||
lcMethods = lcMethods + CR_LF
|
||||
ENDFOR
|
||||
|
||||
C_FB2PRG_CODE = C_FB2PRG_CODE + lcMethods
|
||||
ENDIF
|
||||
|
||||
RETURN
|
||||
@@ -5480,8 +5501,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
||||
EXTERNAL ARRAY taMethods, taCode, taProtected, taPropsAndComments
|
||||
|
||||
TRY
|
||||
LOCAL lcMethod, lnProtectedItem, lnCommentRow, lcProcDef, lcMethods
|
||||
STORE '' TO lcMethod, lcProcDef, lcMethods
|
||||
LOCAL lcMethod, lnProtectedItem, lnCommentRow, lcProcDef, lcMethods, lcMethods2
|
||||
STORE '' TO lcMethod, lcProcDef, lcMethods, lcMethods2
|
||||
|
||||
IF tnMethodCount > 0 THEN
|
||||
FOR I = 1 TO tnMethodCount
|
||||
@@ -5517,7 +5538,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
||||
ENDIF
|
||||
|
||||
*-- C<>digo del m<>todo
|
||||
*TEXT TO lcMethods ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||
*TEXT TO lcMethods2 ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||
* <<THIS.IndentarMemo( taCode(taMethods(I,2)), CHR(9) + CHR(9) )>>
|
||||
* <<C_TAB>>ENDPROC
|
||||
|
||||
|
||||
Reference in New Issue
Block a user