( ipif DAY 05.04.2001 )

( interpretive if control structure )

: [else]
    1
    begin
      nextword dup
      if  
        2dup s" [if]"   compare 
        0= if 2drop 1+                 else 
        2dup s" [else]" compare 
        0= if 2drop 1- dup  if 1+ then else 
        s" [then]" compare 
        0= if       1-                 then
        then  then   
      else 2drop refill  and
      then dup 0=
    until  drop 
;  immediate

: [if]
  0= if postpone [else] then
; immediate

: [then] ; immediate

: [defined] ( -- f ) \ "name"
  nextword  sfind  
  if drop true 
  else 2drop false then
; immediate

: [undefined]  ( -- f ) \ "name"
  postpone [defined] 0=
; immediate
