version 1.2, 1998/10/10 10:28:36
|
version 1.5, 1999/03/23 20:24:24
|
Line 1
|
Line 1
|
\ Structural Conditionals 12dec92py |
\ Structural Conditionals 12dec92py |
|
|
\ Copyright (C) 1995-1997 Free Software Foundation, Inc. |
\ Copyright (C) 1995,1996,1997 Free Software Foundation, Inc. |
|
|
\ This file is part of Gforth. |
\ This file is part of Gforth. |
|
|
Line 91 variable backedge-locals
|
Line 91 variable backedge-locals
|
dup cs-item? ; |
dup cs-item? ; |
|
|
: cs-push-part ( -- list addr ) |
: cs-push-part ( -- list addr ) |
locals-list wordlist-id @ here ; |
locals-list @ here ; |
|
|
: cs-push-orig ( -- orig ) |
: cs-push-orig ( -- orig ) |
cs-push-part dead-code @ |
cs-push-part dead-code @ |
Line 124 variable backedge-locals
|
Line 124 variable backedge-locals
|
POSTPONE ?branch >mark ; immediate restrict |
POSTPONE ?branch >mark ; immediate restrict |
|
|
: ?DUP-IF ( compilation -- orig ; run-time n -- n| ) \ gforth question-dupe-if |
: ?DUP-IF ( compilation -- orig ; run-time n -- n| ) \ gforth question-dupe-if |
\G This is the preferred alternative to the idiom "?DUP IF", since it can be |
\G This is the preferred alternative to the idiom "@code{?DUP IF}", since it can be |
\G better handled by tools like stack checkers. Besides, it's faster. |
\G better handled by tools like stack checkers. Besides, it's faster. |
POSTPONE ?dup-?branch >mark ; immediate restrict |
POSTPONE ?dup-?branch >mark ; immediate restrict |
|
|
Line 296 Defer exit-like ( -- )
|
Line 296 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 forcing an early return from a definition. Before |
|
\G @code{EXIT}ing you must clean up the return stack and |
|
\G @code{UNLOOP} any outstanding @code{?DO}...@code{LOOP}s. |
exit-like |
exit-like |
POSTPONE ;s |
POSTPONE ;s |
POSTPONE unreachable ; immediate restrict |
POSTPONE unreachable ; immediate restrict |