| -4 Constant :dovar |
-4 Constant :dovar |
| -5 Constant :douser |
-5 Constant :douser |
| -6 Constant :dodefer |
-6 Constant :dodefer |
| -7 Constant :dodoes |
-7 Constant :dostruc |
| -8 Constant :doesjump |
-8 Constant :dodoes |
| |
-9 Constant :doesjump |
| |
|
| >CROSS |
>CROSS |
| |
|
| UNTIL |
UNTIL |
| 2 cells + count cr ." CROSS: Exists: " type 4 spaces drop |
2 cells + count cr ." CROSS: Exists: " type 4 spaces drop |
| swap cell+ ! |
swap cell+ ! |
| ELSE true ABORT" CROSS: Ghostnames inconsistent" |
ELSE true abort" CROSS: Ghostnames inconsistent " |
| THEN ; |
THEN ; |
| |
|
| : resolve ( ghost tcfa -- ) |
: resolve ( ghost tcfa -- ) |
| by Constant |
by Constant |
| Builder AConstant |
Builder AConstant |
| |
|
| |
Build: ( d -- ) T , , H ; |
| |
DO: ( ghost -- d ) T dup cell+ @ swap @ H ;DO |
| |
Builder 2Constant |
| |
|
| Build: T 0 , H ; |
Build: T 0 , H ; |
| by Constant |
by Constant |
| Builder Value |
Builder Value |
| Builder Defer |
Builder Defer |
| by Defer :dodefer resolve |
by Defer :dodefer resolve |
| |
|
| |
\ Sturctures 23feb95py |
| |
|
| |
>CROSS |
| |
: nalign ( addr1 n -- addr2 ) |
| |
\ addr2 is the aligned version of addr1 wrt the alignment size n |
| |
1- tuck + swap invert and ; |
| |
>TARGET |
| |
|
| |
Build: >r rot r@ nalign dup T , H ( align1 size offset ) |
| |
+ swap r> nalign ; |
| |
DO: T @ H + ;DO |
| |
Builder Field |
| |
by Field :dostruc resolve |
| |
|
| |
: struct T 0 1 chars H ; |
| |
: end-struct T 2Constant H ; |
| |
|
| |
: cells: ( n -- size align ) |
| |
T cells 1 cells H ; |
| |
|
| |
\ ' 2Constant Alias2 end-struct |
| |
\ 0 1 T Chars H 2Constant struct |
| |
|
| \ structural conditionals 17dec92py |
\ structural conditionals 17dec92py |
| |
|
| >CROSS |
>CROSS |