* source/pp/ppcomp.c
* source/compiler/harbour.c
* Corrected compiler warnings.
* source/compiler/harbour.slx
* Small optimization in handling of s_sLastBlock
* tests/tstblock.prg
+ Added complex early macro test.
50 lines
722 B
Plaintext
50 lines
722 B
Plaintext
PROCEDURE Main()
|
|
|
|
LOCAL i, bBlock[3]
|
|
|
|
MEMVAR Var1, Var2, Var3, Macro
|
|
PRIVATE Var1, Var2, Var3, Macro
|
|
|
|
M->Var1 := "Var1"
|
|
M->Var2 := "Var2"
|
|
M->Var3 := "Var3"
|
|
|
|
CLS
|
|
|
|
FOR i = 1 TO 3
|
|
M->Macro := "Var" + Str( i, 1 )
|
|
bBlock[i] := {|| &Macro }
|
|
NEXT
|
|
|
|
? "Early (Simple):"
|
|
|
|
FOR i = 1 TO 3
|
|
? Eval( bBlock[i] )
|
|
NEXT
|
|
|
|
FOR i = 1 TO 3
|
|
M->Macro := "Var" + Str( i, 1 )
|
|
bBlock[i] := {|| &Macro + "!" }
|
|
NEXT
|
|
|
|
?
|
|
? "Early (Complex):"
|
|
|
|
FOR i = 1 TO 3
|
|
? Eval( bBlock[i] )
|
|
NEXT
|
|
|
|
FOR i = 1 TO 3
|
|
M->Macro := "Var" + Str( i, 1 )
|
|
bBlock[i] := {|| &(Macro) }
|
|
NEXT
|
|
|
|
?
|
|
? "Late:"
|
|
|
|
FOR i = 1 TO 3
|
|
? Eval( bBlock[i] )
|
|
NEXT
|
|
|
|
RETURN
|