| : TO ( c|w|d|r "name" -- ) \ core-ext,local |
: TO ( c|w|d|r "name" -- ) \ core-ext,local |
| 0 0 0. 0.0e0 { c: clocal w: wlocal d: dlocal f: flocal } |
0 0 0. 0.0e0 { c: clocal w: wlocal d: dlocal f: flocal } |
| ' dup >definer |
' dup >definer |
| state @ |
|
| if |
|
| case |
case |
| [ ' locals-wordlist >definer ] literal \ value |
[ ' locals-wordlist >definer ] literal \ value |
| OF >body POSTPONE Aliteral POSTPONE ! ENDOF |
OF >body POSTPONE Aliteral POSTPONE ! 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 |
| -&32 throw |
-&32 throw |
| endcase |
endcase ; immediate |
| else |
interpretation: |
| [ ' locals-wordlist >definer ] literal = |
' dup >definer [ ' locals-wordlist >definer ] literal = |
| if |
if |
| >body ! |
>body ! |
| else |
else |
| -&32 throw |
-&32 throw |
| endif |
endif ; |
| endif ; immediate |
|
| |
|
| : locals| |
: locals| |
| \ don't use 'locals|'! use '{'! A portable and free '{' |
\ don't use 'locals|'! use '{'! A portable and free '{' |
| \ implementation is anslocals.fs |
\ implementation is compat/anslocals.fs |
| BEGIN |
BEGIN |
| name 2dup s" |" compare 0<> |
name 2dup s" |" compare 0<> |
| WHILE |
WHILE |