-\ @(#) condcomp.fth 98/01/26 1.2\r
-\ Conditional Compilation support\r
-\\r
-\ Words: STRINGS= [IF] [ELSE] [THEN] EXISTS?\r
-\\r
-\ Lifted from X3J14 dpANS-6 document.\r
-\r
-anew task-condcomp.fth\r
-\r
-: [ELSE] ( -- )\r
- 1\r
- BEGIN \ level\r
- BEGIN\r
- BL WORD \ level $word\r
- COUNT DUP \ level adr len len\r
- WHILE \ level adr len\r
- 2DUP S" [IF]" COMPARE 0=\r
- IF \ level adr len\r
- 2DROP 1+ \ level'\r
- ELSE \ level adr len\r
- 2DUP S" [ELSE]"\r
- COMPARE 0= \ level adr len flag\r
- IF \ level adr len\r
- 2DROP 1- DUP IF 1+ THEN \ level'\r
- ELSE \ level adr len\r
- S" [THEN]" COMPARE 0=\r
- IF\r
- 1- \ level'\r
- THEN\r
- THEN\r
- THEN\r
- ?DUP 0= IF EXIT THEN \ level'\r
- REPEAT 2DROP \ level\r
- REFILL 0= UNTIL \ level\r
- DROP\r
-; IMMEDIATE\r
-\r
-: [IF] ( flag -- )\r
- 0=\r
- IF POSTPONE [ELSE]\r
- THEN\r
-; IMMEDIATE\r
-\r
-: [THEN] ( -- )\r
-; IMMEDIATE\r
-\r
-: EXISTS? ( <name> -- flag , true if defined )\r
- bl word find\r
- swap drop\r
-; immediate\r
+\ @(#) condcomp.fth 98/01/26 1.2
+\ Conditional Compilation support
+\
+\ Words: STRINGS= [IF] [ELSE] [THEN] EXISTS?
+\
+\ Lifted from X3J14 dpANS-6 document.
+
+anew task-condcomp.fth
+
+: [ELSE] ( -- )
+ 1
+ BEGIN \ level
+ BEGIN
+ BL WORD \ level $word
+ COUNT DUP \ level adr len len
+ WHILE \ level adr len
+ 2DUP S" [IF]" COMPARE 0=
+ IF \ level adr len
+ 2DROP 1+ \ level'
+ ELSE \ level adr len
+ 2DUP S" [ELSE]"
+ COMPARE 0= \ level adr len flag
+ IF \ level adr len
+ 2DROP 1- DUP IF 1+ THEN \ level'
+ ELSE \ level adr len
+ S" [THEN]" COMPARE 0=
+ IF
+ 1- \ level'
+ THEN
+ THEN
+ THEN
+ ?DUP 0= IF EXIT THEN \ level'
+ REPEAT 2DROP \ level
+ REFILL 0= UNTIL \ level
+ DROP
+; IMMEDIATE
+
+: [IF] ( flag -- )
+ 0=
+ IF POSTPONE [ELSE]
+ THEN
+; IMMEDIATE
+
+: [THEN] ( -- )
+; IMMEDIATE
+
+: EXISTS? ( <name> -- flag , true if defined )
+ bl word find
+ swap drop
+; immediate