version 1.4, 1996/09/30 13:16:11
|
version 1.5, 1996/10/01 16:25:59
|
Line 276 Defer source ( -- addr count ) \ core
|
Line 276 Defer source ( -- addr count ) \ core
|
: (compile) ( -- ) \ gforth |
: (compile) ( -- ) \ gforth |
r> dup cell+ >r @ compile, ; |
r> dup cell+ >r @ compile, ; |
|
|
\ not the most efficient implementation of POSTPONE, but simple |
: postpone, ( w xt -- ) |
: POSTPONE ( -- ) \ core |
\g Compiles the compilation semantics represented by @var{w xt}. |
COMP' swap POSTPONE aliteral compile, ; immediate restrict |
dup ['] execute = |
|
if |
|
drop compile, |
|
else |
|
dup ['] compile, = |
|
if |
|
drop POSTPONE (compile) compile, |
|
else |
|
swap POSTPONE aliteral compile, |
|
then |
|
then ; |
|
|
|
: POSTPONE ( "name" -- ) \ core |
|
\g Compiles the compilation semantics of @var{name}. |
|
COMP' postpone, ; immediate restrict |
|
|
: interpret/compile: ( interp-xt comp-xt "name" -- ) \ gforth |
: interpret/compile: ( interp-xt comp-xt "name" -- ) \ gforth |
Create immediate swap A, A, |
Create immediate swap A, A, |