| \ here docon: , docol: , dovar: , douser: , dodefer: , dofield: , |
\ here docon: , docol: , dovar: , douser: , dodefer: , dofield: , |
| \ here over - 2constant doers |
\ here over - 2constant doers |
| |
|
| |
[IFDEF] !does |
| |
: c-does> \ end of create part |
| |
Display? IF S" DOES> " Com# .string THEN ; |
| |
\ maxaligned /does-handler + ; \ !! no longer needed for non-cross stuff |
| |
[THEN] |
| |
|
| : c-lit ( addr1 -- addr2 ) |
: c-lit ( addr1 -- addr2 ) |
| Display? IF |
Display? IF |
| dup @ dup body> dup cfaligned over = swap in-dictionary? and if |
dup @ dup body> dup cfaligned over = swap in-dictionary? and if |
| drop c-call EXIT |
drop c-call EXIT |
| endif |
endif |
| endif |
endif |
| |
over 4 cells + over = if |
| |
over 1 cells + @ decompile-prim ['] call xt>threaded = >r |
| |
over 2 cells + @ ['] !does >body = >r |
| |
over 3 cells + @ decompile-prim ['] ;S xt>threaded = |
| |
r> and r> and |
| |
if drop c-does> 4 cells + EXIT endif |
| |
endif |
| \ !! test for cfa here, and print "['] ..." |
\ !! test for cfa here, and print "['] ..." |
| dup abs 0 <# #S rot sign #> 0 .string bl cemit |
dup abs 0 <# #S rot sign #> 0 .string bl cemit |
| endif |
endif |
| ELSE 2drop |
ELSE 2drop |
| THEN ; |
THEN ; |
| |
|
| [IFDEF] !does |
|
| : c-does> \ end of create part |
|
| Display? IF S" DOES> " Com# .string THEN ; |
|
| \ maxaligned /does-handler + ; \ !! no longer needed for non-cross stuff |
|
| [THEN] |
|
| |
|
| [IFDEF] (compile) |
[IFDEF] (compile) |
| : c-(compile) |
: c-(compile) |
| Display? |
Display? |
| [IFDEF] (abort") ' (abort") A, ' c-abort" A, [THEN] |
[IFDEF] (abort") ' (abort") A, ' c-abort" A, [THEN] |
| \ only defined if compiler is loaded |
\ only defined if compiler is loaded |
| [IFDEF] (compile) ' (compile) A, ' c-(compile) A, [THEN] |
[IFDEF] (compile) ' (compile) A, ' c-(compile) A, [THEN] |
| [IFDEF] !does ' !does A, ' c-does> A, [THEN] |
|
| 0 , here 0 , |
0 , here 0 , |
| |
|
| avariable c-extender |
avariable c-extender |