Diff for /gforth/kernel/Attic/special.fs between versions 1.2 and 1.11

version 1.2, 1997/06/06 17:28:16 version 1.11, 1999/05/06 21:33:37
Line 1 Line 1
 \ words with non-default and non-immediate compilation semantics  \ words with non-default and non-immediate compilation semantics
   
 \ Copyright (C) 1996 Free Software Foundation, Inc.  \ Copyright (C) 1996,1998 Free Software Foundation, Inc.
   
 \ This file is part of Gforth.  \ This file is part of Gforth.
   
Line 21 Line 21
 \ this file comes last, because these words override cross' words.  \ this file comes last, because these words override cross' words.
   
 create s"-buffer /line chars allot  create s"-buffer /line chars allot
 :noname    [char] " parse  has? compiler 0= 
     /line min >r s"-buffer r@ cmove  [IF] : s" [ELSE] :noname [THEN]
     s"-buffer r> ;          [char] " parse
 :noname    [char] " parse postpone SLiteral ;          /line min >r s"-buffer r@ cmove
           s"-buffer r> ;
   has? compiler [IF]
   :noname [char] " parse postpone SLiteral ;
 interpret/compile: S" ( compilation 'ccc"' -- ; run-time -- c-addr u )  \ core,file     s-quote  interpret/compile: S" ( compilation 'ccc"' -- ; run-time -- c-addr u )  \ core,file     s-quote
     \G Compilation: Parse a string @i{ccc} delimited by a @code{"}
     \G (double quote). At run-time, return the length, @i{u}, and the
     \G start address, @i{c-addr} of the string. Interpretation: parse
     \G the string as before, and return @i{c-addr}, @i{u}. The
     \G string is stored in a temporary buffer which may be overwritten
     \G by subsequent uses of @code{S"}.
   [THEN]
   
   has? compiler [IF]
 : [IS] ( compilation "name" -- ; run-time xt -- ) \ possibly-gforth bracket-is  : [IS] ( compilation "name" -- ; run-time xt -- ) \ possibly-gforth bracket-is
     ' >body postpone ALiteral postpone ! ; immediate restrict      ' >body postpone ALiteral postpone ! ; immediate restrict
   
 :noname    ' >body ! ;  :noname    ' >body ! ;
 ' [IS]  ' [IS]
 interpret/compile: IS ( addr "name" -- ) \ gforth  interpret/compile: IS ( xt "name" -- ) \ gforth
   
 :noname    ' >body @ ;  :noname    ' >body @ ;
 :noname    ' >body postpone ALiteral postpone @ ;  :noname    ' >body postpone ALiteral postpone @ ;
Line 41  interpret/compile: What's ( "name" -- ad Line 52  interpret/compile: What's ( "name" -- ad
 :noname    [char] " parse type ;  :noname    [char] " parse type ;
 :noname    postpone (.") ,"  align ;  :noname    postpone (.") ,"  align ;
 interpret/compile: ." ( compilation 'ccc"' -- ; run-time -- )  \ core   dot-quote  interpret/compile: ." ( compilation 'ccc"' -- ; run-time -- )  \ core   dot-quote
     \G Compilation: Parse a string @i{ccc} delimited by a " (double
     \G quote). At run-time, display the string. Interpretation semantics
     \G for this word are undefined in ANS Forth. Gforth's interpretation
     \G semantics are to display the string. This is the simplest way to
     \G display a string from within a definition; see examples below.
   
 \ DOES>                                                17mar93py  \ DOES>                                                17mar93py
   
Line 48  interpret/compile: ." ( compilation 'ccc Line 64  interpret/compile: ." ( compilation 'ccc
     dodoes, here !does ]      dodoes, here !does ]
     defstart :-hook ;      defstart :-hook ;
 :noname  :noname
     ;-hook postpone (does>) ?struc dodoes,      ;-hook ?struc 
       [ has? xconds [IF] ] exit-like [ [THEN] ]
       postpone (does>) dodoes,
     defstart :-hook ;      defstart :-hook ;
 interpret/compile: DOES>  ( compilation colon-sys1 -- colon-sys2 ; run-time nest-sys -- ) \ core        does  interpret/compile: DOES>  ( compilation colon-sys1 -- colon-sys2 ; run-time nest-sys -- ) \ core        does
           
 ' IS Alias TO ( addr "name" -- ) \ core-ext  ' IS Alias TO ( w "name" -- ) \ core-ext
 immediate  immediate
   
   [THEN]
   
   has? compiler [IF]
   : interpret/compile? ( xt -- flag )
       >does-code ['] S" >does-code = ;
   [ELSE]
   : interpret/compile?
       false ;
   [THEN]
   

Removed from v.1.2  
changed lines
  Added in v.1.11


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