--- gforth/glocals.fs 1995/01/30 18:47:50 1.9 +++ gforth/glocals.fs 1995/10/07 17:38:15 1.13 @@ -64,7 +64,7 @@ include search-order.fs include float.fs -: compile-@local ( n -- ) +: compile-@local ( n -- ) \ new compile-fetch-local case 0 of postpone @local0 endof 1 cells of postpone @local1 endof @@ -73,7 +73,7 @@ include float.fs ( otherwise ) dup postpone @local# , endcase ; -: compile-f@local ( n -- ) +: compile-f@local ( n -- ) \ new compile-f-fetch-local case 0 of postpone f@local0 endof 1 floats of postpone f@local1 endof @@ -137,7 +137,7 @@ variable locals-dp \ so here's the speci \ defines the local "name"; the offset of the local shall be \ stored in a-addr create - immediate + immediate restrict here 0 , ( place for the offset ) ; : lp-offset ( n1 -- n2 ) @@ -475,7 +475,7 @@ forth definitions : definer! ( definer xt -- ) \ gives the word represented by xt the behaviour associated with definer over 1 and if - does-code! + swap [ 1 invert ] literal and does-code! else code-address! then ; @@ -498,14 +498,14 @@ forth definitions OF POSTPONE laddr# >body @ lp-offset, POSTPONE d! ENDOF [ ' flocal >definer ] literal OF POSTPONE laddr# >body @ lp-offset, POSTPONE f! ENDOF - abort" can only store TO value or local value" + -&32 throw endcase else [ ' locals-wordlist >definer ] literal = if >body ! else - abort" can only store TO value" + -&32 throw endif endif ; immediate