version 1.11, 2001/02/24 17:24:45
|
version 1.16, 2003/01/20 17:07:41
|
Line 110 variable backedge-locals
|
Line 110 variable backedge-locals
|
: >mark ( -- orig ) |
: >mark ( -- orig ) |
cs-push-orig 0 , ; |
cs-push-orig 0 , ; |
: >resolve ( addr -- ) |
: >resolve ( addr -- ) |
here over - swap ! |
here swap ! |
0 last-compiled ! ; |
basic-block-end ; |
: <resolve ( addr -- ) here - , ; |
: <resolve ( addr -- ) , ; |
|
|
: BUT |
: BUT |
1 cs-roll ; immediate restrict |
1 cs-roll ; immediate restrict |
Line 158 Defer begin-like ( -- )
|
Line 158 Defer begin-like ( -- )
|
|
|
: BEGIN ( compilation -- dest ; run-time -- ) \ core |
: BEGIN ( compilation -- dest ; run-time -- ) \ core |
begin-like cs-push-part dest |
begin-like cs-push-part dest |
0 last-compiled ! ; immediate restrict |
basic-block-end ; immediate restrict |
|
|
Defer again-like ( dest -- addr ) |
Defer again-like ( dest -- addr ) |
' nip IS again-like |
' nip IS again-like |
Line 302 Defer exit-like ( -- )
|
Line 302 Defer exit-like ( -- )
|
' noop IS exit-like |
' noop IS exit-like |
|
|
: EXIT ( compilation -- ; run-time nest-sys -- ) \ core |
: EXIT ( compilation -- ; run-time nest-sys -- ) \ core |
\G Return to the calling definition; usually used as a way of |
\G Return to the calling definition; usually used as a way of |
\G forcing an early return from a definition. Before |
\G forcing an early return from a definition. Before |
\G @code{EXIT}ing you must clean up the return stack and |
\G @code{EXIT}ing you must clean up the return stack and |
\G @code{UNLOOP} any outstanding @code{?DO}...@code{LOOP}s. |
\G @code{UNLOOP} any outstanding @code{?DO}...@code{LOOP}s. |
exit-like |
exit-like |
POSTPONE ;s |
POSTPONE ;s |
|
basic-block-end |
POSTPONE unreachable ; immediate restrict |
POSTPONE unreachable ; immediate restrict |
|
|
: ?EXIT ( -- ) ( compilation -- ; run-time nest-sys f -- | nest-sys ) \ gforth |
: ?EXIT ( -- ) ( compilation -- ; run-time nest-sys f -- | nest-sys ) \ gforth |