| cfalign alias-mask lastflags cset ; |
cfalign alias-mask lastflags cset ; |
| |
|
| : input-stream-header ( "name" -- ) |
: input-stream-header ( "name" -- ) |
| name name-too-short? header, ; |
parse-name name-too-short? header, ; |
| |
|
| : input-stream ( -- ) \ general |
: input-stream ( -- ) \ general |
| \G switches back to getting the name from the input stream ; |
\G switches back to getting the name from the input stream ; |
| ' , is compile, |
' , is compile, |
| [THEN] |
[THEN] |
| |
|
| |
has? ec 0= [IF] |
| defer basic-block-end ( -- ) |
defer basic-block-end ( -- ) |
| |
|
| :noname ( -- ) |
:noname ( -- ) |
| 0 compile-prim1 ; |
0 compile-prim1 ; |
| is basic-block-end |
is basic-block-end |
| |
[THEN] |
| |
|
| has? peephole [IF] |
has? peephole [IF] |
| |
|
| ;-hook ?struc |
;-hook ?struc |
| [ has? xconds [IF] ] exit-like [ [THEN] ] |
[ has? xconds [IF] ] exit-like [ [THEN] ] |
| here 5 cells + postpone aliteral postpone (does>2) [compile] exit |
here 5 cells + postpone aliteral postpone (does>2) [compile] exit |
| finish-code dodoes, |
[ has? peephole [IF] ] finish-code [ [THEN] ] 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 |
| |
|
| : last? ( -- false / nfa nfa ) |
: last? ( -- false / nfa nfa ) |
| latest ?dup ; |
latest ?dup ; |
| |
|
| |
has? ec 0= [IF] |
| : (reveal) ( nt wid -- ) |
: (reveal) ( nt wid -- ) |
| wordlist-id dup >r |
wordlist-id dup >r |
| @ over ( name>link ) ! |
@ over ( name>link ) ! |
| |
|
| \ make entry in wordlist-map |
\ make entry in wordlist-map |
| ' (reveal) f83search reveal-method ! |
' (reveal) f83search reveal-method ! |
| |
[ELSE] |
| |
: (reveal) ( nt wid -- ) |
| |
dup >r @ over ! r> ! ; |
| |
[THEN] |
| |
|
| Variable warnings ( -- addr ) \ gforth |
Variable warnings ( -- addr ) \ gforth |
| G -1 warnings T ! |
G -1 warnings T ! |
| if \ it is still hidden |
if \ it is still hidden |
| dup ( name>link ) @ 1 xor ( nt wid ) |
dup ( name>link ) @ 1 xor ( nt wid ) |
| 2dup >r name>string r> check-shadow ( nt wid ) |
2dup >r name>string r> check-shadow ( nt wid ) |
| |
[ has? ec [IF] ] |
| |
(reveal) |
| |
[ [ELSE] ] |
| dup wordlist-map @ reveal-method perform |
dup wordlist-map @ reveal-method perform |
| |
[ [THEN] ] |
| else |
else |
| drop |
drop |
| then |
then |
| then ; |
then ; |
| |
|
| |
has? EC 0= [IF] |
| : rehash ( wid -- ) |
: rehash ( wid -- ) |
| dup wordlist-map @ rehash-method perform ; |
dup wordlist-map @ rehash-method perform ; |
| |
[THEN] |
| |
|
| ' reveal alias recursive ( compilation -- ; run-time -- ) \ gforth |
' reveal alias recursive ( compilation -- ; run-time -- ) \ gforth |
| \g Make the current definition visible, enabling it to call itself |
\g Make the current definition visible, enabling it to call itself |