\ Structural Conditionals 12dec92py 0 constant defstart : ?struc ( flag -- ) abort" unstructured " ; : sys? ( sys -- ) dup 0= ?struc ; : >mark ( -- sys ) here 0 , ; : >resolve ( sys -- ) here over - swap ! ; : mark ; immediate restrict : IF compile ?branch >mark ; immediate restrict : THEN sys? dup @ ?struc >resolve ; immediate restrict : ELSE sys? compile AHEAD swap compile THEN ; immediate restrict ' THEN Alias ENDIF immediate restrict : BEGIN here ; immediate restrict : WHILE sys? compile IF swap ; immediate restrict : AGAIN sys? compile branch resolve REPEAT leavings ! drop ; immediate restrict \ Structural Conditionals 12dec92py : DO compile (do) here ; immediate restrict : ?DO compile (?do) (leave) here ; immediate restrict : FOR compile (for) here ; immediate restrict : loop] dup