[gforth] / gforth / glocals.fs  

gforth: gforth/glocals.fs

Diff for /gforth/glocals.fs between version 1.60 and 1.61

version 1.60, Mon Dec 31 18:40:24 2007 UTC version 1.61, Wed Dec 21 18:00:00 2011 UTC
Line 224 
Line 224 
 : create-local ( " name" -- a-addr )  : create-local ( " name" -- a-addr )
     \ defines the local "name"; the offset of the local shall be      \ defines the local "name"; the offset of the local shall be
     \ stored in a-addr      \ stored in a-addr
       dp
       locals-dp dpp !
     create      create
         immediate restrict          immediate restrict
         here 0 , ( place for the offset ) ;      here 0 , ( place for the offset )
       swap dpp ! ;
   
 : lp-offset ( n1 -- n2 )  : lp-offset ( n1 -- n2 )
 \ converts the offset from the frame start to an offset from lp and  \ converts the offset from the frame start to an offset from lp and
Line 313 
Line 316 
   
 \ these "locals" are used for comparison in TO  \ these "locals" are used for comparison in TO
   
   here locals-dp !
 c: some-clocal 2drop  c: some-clocal 2drop
 d: some-dlocal 2drop  d: some-dlocal 2drop
 f: some-flocal 2drop  f: some-flocal 2drop
 w: some-wlocal 2drop  w: some-wlocal 2drop
   locals-dp @ dp !
   
 \ the following gymnastics are for declaring locals without type specifier.  \ the following gymnastics are for declaring locals without type specifier.
 \ we exploit a feature of our dictionary: every wordlist  \ we exploit a feature of our dictionary: every wordlist
Line 351 
Line 356 
 \ slowvoc !  \ slowvoc !
 \ new-locals-map ' new-locals >body wordlist-map A! \ !! use special access words  \ new-locals-map ' new-locals >body wordlist-map A! \ !! use special access words
   
 variable old-dpp  
   
 \ and now, finally, the user interface words  \ and now, finally, the user interface words
 : { ( -- latestxt wid 0 ) \ gforth open-brace  : { ( -- latestxt wid 0 ) \ gforth open-brace
     dp old-dpp !  
     locals-dp dpp !  
     latestxt get-current      latestxt get-current
     get-order new-locals-wl swap 1+ set-order      get-order new-locals-wl swap 1+ set-order
     also locals definitions locals-types      also locals definitions locals-types
Line 367 
Line 368 
   
 : } ( latestxt wid 0 a-addr1 xt1 ... -- ) \ gforth close-brace  : } ( latestxt wid 0 a-addr1 xt1 ... -- ) \ gforth close-brace
     \ ends locals definitions      \ ends locals definitions
     ] old-dpp @ dpp !      ]
     begin      begin
         dup          dup
     while      while


Generate output suitable for use with a patch program
Legend:
Removed from v.1.60  
changed lines
  Added in v.1.61

CVS Admin

Powered by ViewCVS 1.0-dev
(Powered by ViewCVS)

ViewCVS and CVS Help