Current Path : /sys/boot/ficl/softwords/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //sys/boot/ficl/softwords/ifbrack.fr |
\ ** ficl/softwords/ifbrack.fr \ ** ANS conditional compile directives [if] [else] [then] \ ** Requires ficl 2.0 or greater... \ \ $FreeBSD: release/9.1.0/sys/boot/ficl/softwords/ifbrack.fr 94290 2002-04-09 17:45:28Z dcs $ hide : ?[if] ( c-addr u -- c-addr u flag ) 2dup s" [if]" compare-insensitive 0= ; : ?[else] ( c-addr u -- c-addr u flag ) 2dup s" [else]" compare-insensitive 0= ; : ?[then] ( c-addr u -- c-addr u flag ) 2dup s" [then]" compare-insensitive 0= >r 2dup s" [endif]" compare-insensitive 0= r> or ; set-current : [else] ( -- ) 1 \ ( level ) begin begin parse-word dup while \ ( level addr len ) ?[if] if \ ( level addr len ) 2drop 1+ \ ( level ) else \ ( level addr len ) ?[else] if \ ( level addr len ) 2drop 1- dup if 1+ endif else ?[then] if 2drop 1- else 2drop endif endif endif ?dup 0= if exit endif \ level repeat 2drop \ level refill 0= until \ level drop ; immediate : [if] ( flag -- ) 0= if postpone [else] then ; immediate : [then] ( -- ) ; immediate : [endif] ( -- ) ; immediate previous