version 1.94, 2001/03/11 22:50:49
|
version 1.95, 2001/03/17 21:36:41
|
Line 1777 Comment ( Comment \
|
Line 1777 Comment ( Comment \
|
ELSE postpone literal postpone gexecute THEN ; |
ELSE postpone literal postpone gexecute THEN ; |
immediate |
immediate |
|
|
: (cc) compile call T a, H ; ' (cc) IS colon, |
: (cc) compile call T >body a, H ; ' (cc) IS colon, |
|
|
: [G'] |
: [G'] |
\G ticks a ghost and returns its address |
\G ticks a ghost and returns its address |
Line 1976 Cond: ; ( -- ) restrict?
|
Line 1976 Cond: ; ( -- ) restrict?
|
state off |
state off |
;Resolve @ |
;Resolve @ |
IF ;Resolve @ ;Resolve cell+ @ resolve |
IF ;Resolve @ ;Resolve cell+ @ resolve |
['] prim-resolved ;Resolve @ >comp ! THEN |
['] colon-resolved ;Resolve @ >comp ! THEN |
Interpreting comp-state ! |
Interpreting comp-state ! |
;Cond |
;Cond |
Cond: [ restrict? state off Interpreting comp-state ! ;Cond |
Cond: [ restrict? state off Interpreting comp-state ! ;Cond |
Line 1994 Create GhostDummy ghostheader
|
Line 1994 Create GhostDummy ghostheader
|
GhostDummy >link ! GhostDummy |
GhostDummy >link ! GhostDummy |
tlastcfa @ >tempdp dodoes, tempdp> ; |
tlastcfa @ >tempdp dodoes, tempdp> ; |
|
|
|
: g>body ( ghost -- body ) |
|
>link @ T >body H ; |
|
: does-resolved ( ghost -- ) |
|
dup g>body alit, >end @ g>body colon, ; |
|
|
>TARGET |
>TARGET |
Cond: DOES> restrict? |
Cond: DOES> restrict? |
compile (does>) doeshandler, |
compile (does>) doeshandler, |
\ resolve words made by builders |
\ resolve words made by builders |
tdoes @ ?dup IF @ T here H resolve THEN |
tdoes @ ?dup IF @ dup T here H resolve |
|
['] prim-resolved swap >comp ! THEN |
;Cond |
;Cond |
: DOES> switchrom doeshandler, T here H !does depth T ] H ; |
: DOES> switchrom doeshandler, T here H !does depth T ] H ; |
|
|
Line 2075 Cond: DOES> restrict?
|
Line 2081 Cond: DOES> restrict?
|
postpone TCreate |
postpone TCreate |
[ [THEN] ] ; |
[ [THEN] ] ; |
|
|
: g>body ( ghost -- body ) |
|
>link @ T >body H ; |
|
: gdoes> ( ghost -- addr flag ) |
: gdoes> ( ghost -- addr flag ) |
executed-ghost @ |
executed-ghost @ |
state @ IF gexecute true EXIT THEN |
state @ IF gexecute true EXIT THEN |
Line 2127 Builder 2Constant
|
Line 2131 Builder 2Constant
|
|
|
BuildSmart: ; |
BuildSmart: ; |
by: :dovar ( ghost -- addr ) ;DO |
by: :dovar ( ghost -- addr ) ;DO |
compile: alit, ;compile |
\ compile: alit, ;compile |
Builder Create |
Builder Create |
|
|
T has? rom H [IF] |
T has? rom H [IF] |