From fc0d3ed9cfebd853db2a2ab26993a186a29180b1 Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Sat, 25 Feb 2023 10:09:33 -0500 Subject: implement leave --- core.fth | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'core.fth') diff --git a/core.fth b/core.fth index 0f00ba8..bcdd577 100644 --- a/core.fth +++ b/core.fth @@ -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 -- cgit v1.2.3