This chapter presents the listing of the file test_wft.wft which is here to
test some definitions.
|
Last update: |
3-January-1999 |
|
State (estimation) |
100% |
/* ===========================================================================
test_wf.wft Oliver Singla
Description: This file defines words to test wfroth.
=========================================================================== */forget <test_wf>
: <test_wf> ;
// *********************
// *** DEFERed words ***
// *********************
: test_defer1 1 . ;
: test_defer2 2 . ;
defer test_deferred
: test_defer
' test_defer1 is test_deferred test_deferred ' test_defer2 is test_deferred test_deferred ;// ***************************
// *** IF...[ELSE]...ENDIF ***
// ***************************
: test_if1
cr " Press a key " type key dup emit '0 '9 [within] IF space " is a digit" type ENDIF ;: test_if2
cr " Press a key " type key dup emit '0 '9 [within] space IF " is a digit" ELSE " is not a digit" ENDIF type ;: test_if3
cr " Press a key " type key dup emit dup '0 '9 [within] space IF drop " is a digit" ELSE dup 'a 'z [within] swap 'A 'Z [within] or IF " is a letter" ELSE " neither a digit or a letter" ENDIF ENDIF type ;// *****************************
// *** BEGIN..[BREAK]..AGAIN ***
// *****************************
: test_again1
cr " Press keys. Never stop" type cr BEGIN key emit AGAIN ;: test_again2
cr " Press keys. Stop on X" type cr BEGIN key dup emit'X == ?break
AGAIN ;// *****************************
// *** BEGIN..WHILE..REPEAT ***// *****************************
: test_while1
cr " Press keys. Stop on either X or x" type cr BEGIN keydup 'x == over 'X == or not
WHILE emit REPEAT drop ;: test_while2
cr " Press keys. Stop on either X or x or a digit [0..9]" type cr BEGIN keydup '0 '9 [within] ?break
dup 'x == over 'X == or not
WHILE emit REPEAT drop ;// *****************************
// *** CASE..ENDCASE ***// *****************************
: x10 10 ;
: x20 20 ;
: x30 30 ;
: test
// cr " Press keys. Stop on either X or x" type cr key CASE '0 OF " zero" type ENDOF '1 OF " one" type ENDOF '2 OF " two" type TIPOF '3 OF " thr" type ENDOF " neither 0 or 1" type ENDCASE drop x10 x20 x30 ;// *****************************
// *** TIMES..ENDTIMES ***// *****************************
: test_times1
cr 10 TIMES '* emit ENDTIMES cr ;/*
: test_times2
5 TIMEScr I . " ? " type
key dup 'X ?break 11 TIMES dup emit ENDTIMES drop ENDTIMES drop ;*/
: wait_key
BEGIN ?key ( WindowsPeekMsg ) UNTIL key ;: test
3 TIMES wait_key ENDTIMES emit emit emit ;