* contrib/dot/pp.prg
* Completed management of Variable Scoping.
* Modified rest of Error Handlers to check type of :Args (Harbour bug).
* contrib/dot/test.prg
+ Added test of private value after function call
70 lines
916 B
Plaintext
70 lines
916 B
Plaintext
PROCEDURE Main
|
|
|
|
LOCAL cLocal
|
|
PRIVATE cName
|
|
|
|
CLEAR SCREEN
|
|
|
|
Alert( "Testinf PP as Interpreter... " )
|
|
|
|
USE test
|
|
IF ! File( "test" + IndexExt() )
|
|
INDEX on FIELD->First TO First
|
|
ELSE
|
|
SET INDEX TO First
|
|
ENDIF
|
|
|
|
GO TOP
|
|
|
|
cName := FIELD->First + FIELD->Last
|
|
|
|
IF cName == FIELD->First + FIELD->Last
|
|
? "Ok"
|
|
ELSE
|
|
? "Err"
|
|
ENDIF
|
|
|
|
DO CASE
|
|
CASE cName == First // Not exact!
|
|
? "Err"
|
|
|
|
CASE cName = First // But still equal
|
|
? "Ok"
|
|
|
|
OTHERWISE
|
|
? "Err"
|
|
ENDCASE
|
|
|
|
REPLACE First WITH "From PP"
|
|
|
|
? FIELD->First
|
|
|
|
cLocal := "in main"
|
|
? Test()
|
|
? cLocal
|
|
? cName
|
|
|
|
? cFromTest
|
|
? TestPrv
|
|
|
|
RETURN
|
|
|
|
FUNCTION Test
|
|
|
|
PRIVATE TestPrv
|
|
PUBLIC cFromTest
|
|
|
|
? cName
|
|
? cLocal
|
|
|
|
M->TestPrv := "Private of Test"
|
|
Test2()
|
|
|
|
RETURN ProcName()
|
|
|
|
PROCEDURE Test2
|
|
|
|
? ProcName(), ProcLine(), M->testPrv
|
|
|
|
RETURN
|