version 1.37, 1998/10/14 22:23:12
|
version 1.44, 2000/08/09 20:04:05
|
Line 1
|
Line 1
|
\ A powerful locals implementation |
\ A powerful locals implementation |
|
|
\ Copyright (C) 1995 Free Software Foundation, Inc. |
\ Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc. |
|
|
\ This file is part of Gforth. |
\ This file is part of Gforth. |
|
|
Line 292 locals-types definitions
|
Line 292 locals-types definitions
|
postpone laddr# @ lp-offset, ; |
postpone laddr# @ lp-offset, ; |
|
|
\ you may want to make comments in a locals definitions group: |
\ you may want to make comments in a locals definitions group: |
' \ alias \ immediate |
' \ alias \ ( compilation 'ccc<newline>' -- ; run-time -- ) \ core-ext,block-ext backslash |
' ( alias ( immediate |
\G Comment till the end of the line if @code{BLK} contains 0 (i.e., |
|
\G while not loading a block), parse and discard the remainder of the |
|
\G parse area. Otherwise, parse and discard all subsequent characters |
|
\G in the parse area corresponding to the current line. |
|
immediate |
|
|
|
' ( alias ( ( compilation 'ccc<close-paren>' -- ; run-time -- ) \ core,file paren |
|
\G Comment, usually till the next @code{)}: parse and discard all |
|
\G subsequent characters in the parse area until ")" is |
|
\G encountered. During interactive input, an end-of-line also acts as |
|
\G a comment terminator. For file input, it does not; if the |
|
\G end-of-file is encountered whilst parsing for the ")" delimiter, |
|
\G Gforth will generate a warning. |
|
immediate |
|
|
forth definitions |
forth definitions |
|
|
Line 311 also locals-types
|
Line 324 also locals-types
|
\ the returned nfa denotes a word that produces what W: produces |
\ the returned nfa denotes a word that produces what W: produces |
\ !! do the whole thing without nextname |
\ !! do the whole thing without nextname |
drop nextname |
drop nextname |
['] W: >name ; |
['] W: >head-noprim ; |
|
|
previous |
previous |
|
|
Line 324 create new-locals-map ( -- wordlist-map
|
Line 337 create new-locals-map ( -- wordlist-map
|
' drop A, \ rehash method |
' drop A, \ rehash method |
' drop A, |
' drop A, |
|
|
slowvoc @ |
new-locals-map mappedwordlist Constant new-locals-wl |
slowvoc on |
|
vocabulary new-locals |
\ slowvoc @ |
slowvoc ! |
\ slowvoc on |
new-locals-map ' new-locals >body wordlist-map A! \ !! use special access words |
\ vocabulary new-locals |
|
\ slowvoc ! |
|
\ new-locals-map ' new-locals >body wordlist-map A! \ !! use special access words |
|
|
variable old-dpp |
variable old-dpp |
|
|
Line 337 variable old-dpp
|
Line 352 variable old-dpp
|
dp old-dpp ! |
dp old-dpp ! |
locals-dp dpp ! |
locals-dp dpp ! |
lastxt get-current |
lastxt get-current |
also new-locals |
get-order new-locals-wl swap 1+ set-order |
also locals definitions locals-types |
also locals definitions locals-types |
0 TO locals-wordlist |
0 TO locals-wordlist |
0 postpone [ ; immediate |
0 postpone [ ; immediate |