| 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 |
| 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 |