version 1.47, 2001/09/16 10:20:39
|
version 1.51, 2003/01/20 17:07:37
|
Line 633 forth definitions
|
Line 633 forth definitions
|
endif ; |
endif ; |
|
|
: >definer ( xt -- definer ) |
: >definer ( xt -- definer ) |
\ this gives a unique identifier for the way the xt was defined |
\G @var{Definer} is a unique identifier for the way the @var{xt} |
\ words defined with different does>-codes have different definers |
\G was defined. Words defined with different @code{does>}-codes |
\ the definer can be used for comparison and in definer! |
\G have different definers. The definer can be used for |
|
\G comparison and in @code{definer!}. |
dup >does-code |
dup >does-code |
?dup-if |
?dup-if |
nip 1 or |
nip 1 or |
Line 644 forth definitions
|
Line 645 forth definitions
|
then ; |
then ; |
|
|
: definer! ( definer xt -- ) |
: definer! ( definer xt -- ) |
\ gives the word represented by xt the behaviour associated with definer |
\G The word represented by @var{xt} changes its behaviour to the |
|
\G behaviour associated with @var{definer}. |
over 1 and if |
over 1 and if |
swap [ 1 invert ] literal and does-code! |
swap [ 1 invert ] literal and does-code! |
else |
else |
Line 683 interpret/compile: TO ( c|w|d|r "name" -
|
Line 685 interpret/compile: TO ( c|w|d|r "name" -
|
\ don't use 'locals|'! use '{'! A portable and free '{' |
\ don't use 'locals|'! use '{'! A portable and free '{' |
\ implementation is compat/anslocals.fs |
\ implementation is compat/anslocals.fs |
BEGIN |
BEGIN |
name 2dup s" |" compare 0<> |
name 2dup s" |" str= 0= |
WHILE |
WHILE |
(local) |
(local) |
REPEAT |
REPEAT |