\ test file for ficl \ test ANSI CORE stuff first... -1 set-order \ set up local variable regressions before { gets redefined! : local1 { a b c | clr -- c b a 0 } c b a clr ; : local2 { | clr -- 0 } clr ; : local3 { a b | c } a to c b to a c to b a b ; include tester.fr include core.fr { -> } \ test double stuff testing 2>r 2r> 2r@ : 2r1 2>r r> r> swap ; : 2r2 swap >r >r 2r> ; : 2r3 2>r 2r@ R> R> 2DUP >R >R SWAP 2r> ; { 1 2 2r1 -> 1 2 } { 1 2 2r2 -> 1 2 } { 1 2 2r3 -> 1 2 1 2 1 2 } { -> } \ Now test ficl extras and optional word-sets testing locals { 1 2 3 local1 -> 3 2 1 0 } { local2 -> 0 } { 1 local2 -> 1 0 } { 1 2 local3 -> 2 1 } testing :noname { :noname 1 ; execute -> 1 } { 1 2 3 -rot -> 3 1 2 } testing default search order { get-order -> forth-wordlist 1 } { only definitions get-order -> forth-wordlist 1 } testing forget here constant fence { fence forget fence -> here } testing within { -1 1 0 within -> true } { 0 1s 2 within -> true } { -100 0 -1 within -> true } { -1 1 2 within -> false } { -1 1 -2 within -> false } { 1 -5 5 within -> true } { 33000 32000 34000 within -> true } { 0x80000000 0x7f000000 0x81000000 within -> true } testing exception words : exc1 1 throw ; : exctest1 [ ' exc1 ] literal catch ; : exc2 exctest1 1 = if 2 throw endif ; : exctest2 [ ' exc2 ] literal catch ; : exctest? ' catch ; { exctest1 -> 1 } { exctest2 -> 2 } { exctest? abort -> -1 } testing refill \ from file loading 0 [if] .( Error ) [else] 1 [if] [else] .( Error ) [then] [then] \ refill from evaluate string { -> } { s" 1 refill 2 " evaluate -> 1 0 2 } testing prefixes { 0x10 -> decimal 16 } { hex 0d10 -> decimal 10 } { hex 100 -> decimal 256 } testing number builder { 1 -> 1 } { 3. -> 3 0 } s" ficlwin" environment? [if] drop testing OOP support include ooptest.fr [endif]