| cell% 2* field prim-c-code |
cell% 2* field prim-c-code |
| cell% 2* field prim-forth-code |
cell% 2* field prim-forth-code |
| cell% 2* field prim-stack-string |
cell% 2* field prim-stack-string |
| |
cell% field prim-items-wordlist \ unique items |
| item% max-effect * field prim-effect-in |
item% max-effect * field prim-effect-in |
| item% max-effect * field prim-effect-out |
item% max-effect * field prim-effect-out |
| cell% field prim-effect-in-end |
cell% field prim-effect-in-end |
| 2variable last-name-filename |
2variable last-name-filename |
| Variable function-number 0 function-number ! |
Variable function-number 0 function-number ! |
| |
|
| \ for several reasons stack items of a word are stored in a wordlist |
|
| \ since neither forget nor marker are implemented yet, we make a new |
|
| \ wordlist for every word and store it in the variable items |
|
| variable itemsqq |
|
| |
|
| \ a few more set ops |
\ a few more set ops |
| |
|
| : bit-equivalent ( w1 w2 -- w3 ) |
: bit-equivalent ( w1 w2 -- w3 ) |
| r@ item-first @ if |
r@ item-first @ if |
| rdrop false exit |
rdrop false exit |
| endif |
endif |
| r@ item-name 2@ itemsqq @ search-wordlist 0= abort" bug" |
r@ item-name 2@ prim prim-items-wordlist @ search-wordlist 0= abort" bug" |
| execute @ |
execute @ |
| dup r@ = |
dup r@ = |
| if \ item first appeared in output |
if \ item first appeared in output |
| { item typ } |
{ item typ } |
| typ item item-type ! |
typ item item-type ! |
| typ type-stack @ item item-stack !default |
typ type-stack @ item item-stack !default |
| item item-name 2@ itemsqq @ search-wordlist 0= if \ new name |
item item-name 2@ prim prim-items-wordlist @ search-wordlist 0= if |
| item item-name 2@ nextname item declare |
item item-name 2@ nextname item declare |
| item item-first on |
item item-first on |
| \ typ type-c-name 2@ type space type ." ;" cr |
\ typ type-c-name 2@ type space type ." ;" cr |
| ['] declaration map-items ; |
['] declaration map-items ; |
| |
|
| : declarations ( -- ) |
: declarations ( -- ) |
| wordlist dup itemsqq ! set-current |
wordlist dup prim prim-items-wordlist ! set-current |
| prim prim-effect-in prim prim-effect-in-end @ declaration-list |
prim prim-effect-in prim prim-effect-in-end @ declaration-list |
| prim prim-effect-out prim prim-effect-out-end @ declaration-list ; |
prim prim-effect-out prim prim-effect-out-end @ declaration-list ; |
| |
|