15.6.2.2532 [IF] bracket-if TOOLS EXT
Compilation:
Execution:
If flag is true, do nothing. Otherwise, skipping leading spaces, parse and discard space-delimited words from the parse area, including nested occurrences of [IF] ... [THEN] and [IF] ... [ELSE] ... [THEN], until either the word [ELSE] or the word [THEN] has been parsed and discarded. If the parse area becomes exhausted, it is refilled as with REFILL. [IF] is an immediate word.
An ambiguous condition exists if [IF] is POSTPONEd, or if the end of the input buffer is reached and cannot be refilled before the terminating [ELSE] or [THEN] is parsed.
See:
Rationale:
Implementation:
ContributeContributions
ruv [93] POSTPONE [IF]Request for clarification2019-07-10 14:52:51
Why does an ambiguous condition exist if [IF]
is POSTPONE
d? And why does not it spread to[ELSE]
?
What can be wrong with:
: [UNLESS] 0= POSTPONE [IF] ; IMMEDIATE