diff options
author | Clyne Sullivan <clyne@bitgloo.com> | 2023-02-25 10:09:33 -0500 |
---|---|---|
committer | Clyne Sullivan <clyne@bitgloo.com> | 2023-02-25 10:09:33 -0500 |
commit | fc0d3ed9cfebd853db2a2ab26993a186a29180b1 (patch) | |
tree | 618730ac12c318950c24ef40fe21a839216a5c4a | |
parent | 34e5d76f9851f13a2c6611de065c229bafb17378 (diff) |
implement leave
-rw-r--r-- | compat.txt | 2 | ||||
-rw-r--r-- | core.fth | 7 |
2 files changed, 6 insertions, 3 deletions
@@ -88,7 +88,7 @@ yes 6.1.1710 IMMEDIATE (as "imm") yes 6.1.1720 INVERT yes 6.1.1730 J yes 6.1.1750 KEY - 6.1.1760 LEAVE +yes 6.1.1760 LEAVE yes 6.1.1780 LITERAL yes 6.1.1800 LOOP yes 6.1.1805 LSHIFT @@ -73,11 +73,14 @@ : until ['] _jmp0 , , drop ; imm : again postpone repeat ; imm -: do postpone 2>r here ; imm +: do ['] _lit , here 0 , ['] >r , postpone 2>r here ; imm : unloop postpone 2r> ['] 2drop , ; imm +: leave postpone unloop postpone 2r> + ['] drop , ['] >r , ['] exit , ; imm : +loop postpone 2r> ['] rot , ['] + , ['] 2dup , postpone 2>r ['] - , ['] 0= , ['] _jmp0 , , - postpone unloop ; imm + postpone unloop + here swap ! ['] r> , ['] drop , ; imm : loop 1 postpone literal postpone +loop ; imm : i postpone r@ ; imm : j postpone 2r> postpone r@ ['] -rot , postpone 2>r ; imm |