Diff for /gforth/glocals.fs between versions 1.42 and 1.52

version 1.42, 1999/05/15 20:00:20 version 1.52, 2003/03/09 15:16:49
Line 1 Line 1
 \ A powerful locals implementation  \ A powerful locals implementation
   
 \ Copyright (C) 1995,1996,1997,1998 Free Software Foundation, Inc.  \ Copyright (C) 1995,1996,1997,1998,2000,2003 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 16 Line 16
   
 \ You should have received a copy of the GNU General Public License  \ You should have received a copy of the GNU General Public License
 \ along with this program; if not, write to the Free Software  \ along with this program; if not, write to the Free Software
 \ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  \ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
   
   
 \ More documentation can be found in the manual and in  \ More documentation can be found in the manual and in
Line 87 Line 87
   
 require search.fs  require search.fs
 require float.fs  require float.fs
   require extend.fs \ for case
   
 : compile-@local ( n -- ) \ gforth compile-fetch-local  : compile-@local ( n -- ) \ gforth compile-fetch-local
  case   case
Line 292  locals-types definitions Line 293  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 \ ( -- ) \ core-ext,block-ext backslash  ' \ alias \ ( compilation 'ccc<newline>' -- ; run-time -- ) \ core-ext,block-ext backslash
 \G Comment till the end of the line if @code{BLK} contains 0 (i.e.,  \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 while not loading a block), parse and discard the remainder of the
 \G parse area. Otherwise, parse and discard all subsequent characters  \G parse area. Otherwise, parse and discard all subsequent characters
Line 324  also locals-types Line 325  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 632  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 643  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 682  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

Removed from v.1.42  
changed lines
  Added in v.1.52


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>