* tests/longdev.prg
* tests/hbpptest/hbpptest.prg
* tests/testcgi.prg
* tests/foreach.prg
* tests/onidle.prg
* tests/tstchbx.prg
* tests/codebl.prg
* tests/tstdbi.prg
* tests/vmasort.prg
* tests/tstasort.prg
* tests/testbrw.prg
* tests/inkeytst.prg
* tests/testrdd2.prg
* tests/keywords.prg
* tests/testhtml.prg
* tests/readhrb.prg
* tests/stripem.prg
* tests/wvtext.prg
* tests/testpre.prg
* tests/seconds.prg
* tests/fsplit.prg
* tests/mousetst.prg
* contrib/hbmysql/tmysql.prg
* contrib/hbct/numconv.prg
* contrib/hbct/ctmisc.prg
* contrib/hbodbc/todbc.prg
* contrib/hbapollo/tests/apollo.prg
* contrib/hbnf/acctyear.prg
* contrib/hbnf/acctadj.prg
* contrib/hbnf/nwsem.prg
* contrib/hbnf/week.prg
* contrib/hbnf/acctmnth.prg
* contrib/hbnf/savearr.prg
* contrib/hbnf/madd.prg
* contrib/hbnf/mouse1.prg
* contrib/hbnf/month.prg
* contrib/hbnf/findith.prg
* contrib/hbnf/acctweek.prg
* contrib/hbnf/pegs.prg
* contrib/hbnf/acctqtr.prg
* contrib/hbnf/nooccur.prg
* contrib/hbnf/dayofyr.prg
* contrib/hbnf/menu1.prg
* contrib/hbnf/sqzn.prg
* contrib/hbnf/asum.prg
* contrib/hbnf/aavg.prg
* contrib/hbnf/any2any.prg
* contrib/hbnf/adessort.prg
* contrib/hbnf/amedian.prg
* contrib/hbnf/blink.prg
* contrib/hbnf/qtr.prg
* contrib/hbnf/aredit.prg
* contrib/hbnf/xbox.prg
* contrib/hbnf/ftround.prg
* contrib/hbnf/invclr.prg
* contrib/hbnf/tempfile.prg
* contrib/hbnf/diskfunc.prg
* contrib/hbnf/mouse2.prg
* contrib/hbnf/daytobow.prg
* contrib/hbnf/anomatch.prg
* contrib/hbnf/datecnfg.prg
* contrib/hbnf/tbwhile.prg
* contrib/hbnf/year.prg
* contrib/hbnf/elapsed.prg
* contrib/hbnf/dfile.prg
* contrib/hbnf/clrsel.prg
* contrib/hbmisc/twirler.prg
* contrib/hbmisc/fileread.prg
* contrib/hbmisc/stringp.prg
* contrib/hbgf/hbgfw32/winctrl.prg
* contrib/hbgf/hbgfw32/form.prg
* contrib/hbgf/hbgfos2/winctrl.prg
* contrib/hbgf/hbgfos2/tform.prg
* contrib/hbtip/httpcln.prg
* contrib/hbvpdf/hbvpdf.prg
* contrib/hbvpdf/hbvpdft.prg
* contrib/examples/guestbk/guestbk.prg
* contrib/examples/pe/editorhi.prg
* Some more general code cleanups ( if() -> iif() ).
142 lines
3.7 KiB
Plaintext
142 lines
3.7 KiB
Plaintext
/*
|
|
* $Id$
|
|
*/
|
|
|
|
PROCEDURE MAIN()
|
|
LOCAL A:={ "one ", "two ", "three" }
|
|
LOCAL AA:={ "AA-one ", "AA-two ", "AA-three", "AA-four " }
|
|
LOCAL c:="abcdefghij"
|
|
LOCAL enum:="b"
|
|
LOCAL bb, cc
|
|
LOCAL i
|
|
|
|
/*
|
|
test(@a,b)
|
|
test(a,@b)
|
|
test(@a,@b)
|
|
*/
|
|
? "========================================================"
|
|
? "before loop: ENUM=",ENUM
|
|
? 'before loop: a[1]=',a[1], 'a[2]=',a[2], 'a[3]=',a[3]
|
|
FOR EACH enum IN A
|
|
? "start: ENUM=", ENUM
|
|
IF ENUM = 'two'
|
|
ENUM := UPPER( ENUM )
|
|
ENDIF
|
|
? "end: ENUM=", ENUM, "| index:", ENUM:__enumIndex, "| value:", ENUM:__enumValue, "| base: ", VALTYPE(ENUM:__enumBase)
|
|
NEXT
|
|
? "after loop ENUM=", ENUM
|
|
? 'after loop: a[1]=',a[1], 'a[2]=',a[2], 'a[3]=',a[3]
|
|
? "-----------------"
|
|
?
|
|
inkey(0)
|
|
|
|
|
|
? "========================================================"
|
|
? "Testing passing by reference"
|
|
? "before loop: ENUM=",ENUM
|
|
? 'after loop: a[1]=',a[1], 'a[2]=',a[2], 'a[3]=',a[3]
|
|
FOR EACH ENUM IN A
|
|
IF UPPER(ENUM) = 'TWO'
|
|
ENUM := UPPER( ENUM )
|
|
? "before passing by @ | ENUM=", ENUM, "| index:", ENUM:__enumIndex, "| value:", ENUM:__enumValue, "| base: ", VALTYPE(ENUM:__enumBase)
|
|
testBYREF( @ENUM )
|
|
? " after passing by @ | ENUM=", ENUM, "| index:", ENUM:__enumIndex, "| value:", ENUM:__enumValue, "| base: ", VALTYPE(ENUM:__enumBase)
|
|
ENDIF
|
|
NEXT
|
|
? "after loop ENUM=", ENUM
|
|
? 'after loop: a[1]=',a[1], 'a[2]=',a[2], 'a[3]=',a[3]
|
|
inkey(0)
|
|
|
|
? "========================================================"
|
|
? "Testing BREAK"
|
|
? "before loop: ENUM=",ENUM
|
|
? 'after loop: a[1]=',a[1], 'a[2]=',a[2], 'a[3]=',a[3]
|
|
BEGIN SEQUENCE
|
|
FOR EACH enum IN A DESCEND
|
|
? "loop: ENUM=", ENUM, "| index:", ENUM:__enumIndex, "| value:", ENUM:__enumValue, "| base: ", VALTYPE(ENUM:__enumBase)
|
|
TESTbreak( ENUM )
|
|
NEXT
|
|
|
|
RECOVER USING i
|
|
? "after loop ENUM=", ENUM
|
|
? 'after loop: a[1]=',a[1], 'a[2]=',a[2], 'a[3]=',a[3]
|
|
? "recover variable i=", i
|
|
END SEQUENCE
|
|
inkey(0)
|
|
|
|
? "========================================================"
|
|
? "before loop: ENUM=",ENUM
|
|
? 'before loop: c=',c
|
|
BEGIN SEQUENCE
|
|
FOR EACH enum IN c
|
|
? "start: ENUM=", ENUM
|
|
IF enum = 'd'
|
|
enum := UPPER( enum )
|
|
ENDIF
|
|
Testbreak( enum )
|
|
? "end: ENUM=", ENUM, "| index:", ENUM:__enumIndex, "| value:", ENUM:__enumValue, "| base: ", VALTYPE(ENUM:__enumBase)
|
|
NEXT
|
|
RECOVER USING i
|
|
? "after loop ENUM=", ENUM
|
|
? 'after loop: c=', c
|
|
? "recover variable i=", i
|
|
END SEQUENCE
|
|
|
|
|
|
? "========================================================"
|
|
FOR EACH enum,bb,cc IN A,AA,c
|
|
? enum, enum:__enumIndex, enum:__enumValue
|
|
? bb, bb:__enumIndex, bb:__enumValue
|
|
? cc, cc:__enumIndex, cc:__enumValue
|
|
NEXT
|
|
inkey(0)
|
|
|
|
? "========================================================"
|
|
FOR EACH enum,bb,cc IN A,AA,c DESCEND
|
|
? enum, enum:__enumIndex, enum:__enumValue
|
|
? bb, bb:__enumIndex, bb:__enumValue
|
|
? cc, cc:__enumIndex, cc:__enumValue
|
|
NEXT
|
|
|
|
FOR EACH enum IN a
|
|
BEGIN SEQUENCE
|
|
IF enum = '2'
|
|
BREAK
|
|
ENDIF
|
|
END SEQUENCE
|
|
NEXT
|
|
|
|
FOR EACH enum IN a
|
|
BEGIN SEQUENCE
|
|
IF enum = '2'
|
|
? "Breaking... enum=", enum
|
|
BREAK enum
|
|
ENDIF
|
|
RECOVER USING enum
|
|
? "after recovery: enum=", enum
|
|
END SEQUENCE
|
|
NEXT
|
|
|
|
RETURN
|
|
|
|
|
|
PROCEDURE TESTbreak( v )
|
|
IF v = '2' .or. v = 'd'
|
|
? "issuing break"
|
|
BREAK( v )
|
|
ENDIF
|
|
|
|
RETURN
|
|
|
|
PROCEDURE TESTBYREF( enum )
|
|
? "start of testBYREF ENUM=", ENUM
|
|
FOR EACH ENUM IN {1,2,3}
|
|
? " -testBYREF=", ENUM
|
|
NEXT
|
|
? "end of loop: ENUM=", ENUM
|
|
ENUM := "22222"
|
|
? "end of testBYREF ENUM=", ENUM
|
|
RETURN
|
|
|