version 1.8, 1994/10/24 19:15:58
|
version 1.13, 1995/10/07 17:38:15
|
Line 64
|
Line 64
|
include search-order.fs |
include search-order.fs |
include float.fs |
include float.fs |
|
|
: compile-@local ( n -- ) |
: compile-@local ( n -- ) \ new compile-fetch-local |
case |
case |
0 of postpone @local0 endof |
0 of postpone @local0 endof |
1 cells of postpone @local1 endof |
1 cells of postpone @local1 endof |
Line 73 include float.fs
|
Line 73 include float.fs
|
( otherwise ) dup postpone @local# , |
( otherwise ) dup postpone @local# , |
endcase ; |
endcase ; |
|
|
: compile-f@local ( n -- ) |
: compile-f@local ( n -- ) \ new compile-f-fetch-local |
case |
case |
0 of postpone f@local0 endof |
0 of postpone f@local0 endof |
1 floats of postpone f@local1 endof |
1 floats of postpone f@local1 endof |
Line 134 variable locals-dp \ so here's the speci
|
Line 134 variable locals-dp \ so here's the speci
|
postpone lp@ postpone c! ; |
postpone lp@ postpone c! ; |
|
|
: create-local ( " name" -- a-addr ) |
: create-local ( " name" -- a-addr ) |
\ defines the local "name"; the offset of the local shall be stored in a-addr |
\ defines the local "name"; the offset of the local shall be |
|
\ stored in a-addr |
create |
create |
immediate |
immediate restrict |
here 0 , ( place for the offset ) ; |
here 0 , ( place for the offset ) ; |
|
|
: lp-offset ( n1 -- n2 ) |
: lp-offset ( n1 -- n2 ) |
Line 263 locals-types definitions
|
Line 264 locals-types definitions
|
|
|
: -- ( addr wid 0 ... -- ) |
: -- ( addr wid 0 ... -- ) |
} |
} |
[char] } word drop ; |
[char] } parse 2drop ; |
|
|
forth definitions |
forth definitions |
|
|
Line 474 forth definitions
|
Line 475 forth definitions
|
: definer! ( definer xt -- ) |
: definer! ( definer xt -- ) |
\ gives the word represented by xt the behaviour associated with definer |
\ gives the word represented by xt the behaviour associated with definer |
over 1 and if |
over 1 and if |
does-code! |
swap [ 1 invert ] literal and does-code! |
else |
else |
code-address! |
code-address! |
then ; |
then ; |
Line 497 forth definitions
|
Line 498 forth definitions
|
OF POSTPONE laddr# >body @ lp-offset, POSTPONE d! ENDOF |
OF POSTPONE laddr# >body @ lp-offset, POSTPONE d! ENDOF |
[ ' flocal >definer ] literal |
[ ' flocal >definer ] literal |
OF POSTPONE laddr# >body @ lp-offset, POSTPONE f! ENDOF |
OF POSTPONE laddr# >body @ lp-offset, POSTPONE f! ENDOF |
abort" can only store TO value or local value" |
-&32 throw |
endcase |
endcase |
else |
else |
[ ' locals-wordlist >definer ] literal = |
[ ' locals-wordlist >definer ] literal = |
if |
if |
>body ! |
>body ! |
else |
else |
abort" can only store TO value" |
-&32 throw |
endif |
endif |
endif ; immediate |
endif ; immediate |
|
|