diff options
Diffstat (limited to 'sanctuary.fs')
| -rw-r--r-- | sanctuary.fs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/sanctuary.fs b/sanctuary.fs index d006985..ff4a266 100644 --- a/sanctuary.fs +++ b/sanctuary.fs @@ -11,14 +11,14 @@ : >mark here 0 d, ; : >resolve dup here swap - 4 - swap d! ; -: begin <mark ; immediate -: again branch <resolve ; immediate -: until ?branch <resolve ; immediate -: if ?branch >mark ; immediate -: else branch >mark swap >resolve ; immediate -: then >resolve ; immediate -: while ?branch >mark ; immediate -: repeat branch swap <resolve >resolve ; immediate +: begin <mark ; immediate compile-only +: again branch <resolve ; immediate compile-only +: until ?branch <resolve ; immediate compile-only +: if ?branch >mark ; immediate compile-only +: else branch >mark swap >resolve ; immediate compile-only +: then >resolve ; immediate compile-only +: while ?branch >mark ; immediate compile-only +: repeat branch swap <resolve >resolve ; immediate compile-only : ?dup dup 0<> if dup then ; @@ -27,10 +27,10 @@ : ?find ?dup if find 0= if 2drop abort then else abort then ; : 'h parse-name ?find ; : ' 'h >body ; -: [compile] ' ( word ) compile, ; immediate -: ['] ' ( word ) [compile] literal ; immediate +: [compile] ' ( word ) compile, ; immediate compile-only +: ['] ' ( word ) [compile] literal ; immediate compile-only : postpone 'h ( word ) dup immediate? if >body compile, - else >body [compile] literal ['] compile, compile, then ; immediate + else >body [compile] literal ['] compile, compile, then ; immediate compile-only : cells 8 * ; : cell+ 8 + ; |
