Fix bug in ?do

This commit is contained in:
Brad Nelson
2021-01-11 08:48:05 -08:00
parent faf1989296
commit 9a0d82e04b

View File

@ -90,16 +90,16 @@
( Counted Loops ) ( Counted Loops )
: for postpone >r postpone begin ; immediate : for postpone >r postpone begin ; immediate
: next postpone donext , ; immediate : next postpone donext , ; immediate
: do postpone swap postpone >r postpone >r 0 here ; immediate : dostart ( n n -- .. ) swap r> -rot >r >r >r ;
: ?do postpone swap postpone 2dup postpone < postpone if : docheck ( n -- f .. ) r> r> rot + dup r@ < -rot >r >r ;
postpone >r postpone >r here ; immediate : do postpone dostart here 0 ; immediate
: ?do postpone dostart 0 aliteral postpone ahead here swap ; immediate
: i postpone r@ ; immediate : i postpone r@ ; immediate
: j rp@ 3 cells - @ ; : j rp@ 3 cells - @ ;
: unloop postpone rdrop postpone rdrop ; immediate : unloop postpone rdrop postpone rdrop ; immediate
: +loop postpone r> postpone + postpone r> : +loop dup if postpone then else drop then
postpone 2dup postpone >r postpone >r postpone docheck postpone 0= postpone until
postpone < postpone 0= postpone until postpone unloop ; immediate
postpone unloop dup if postpone then then ; immediate
: loop 1 aliteral postpone +loop ; immediate : loop 1 aliteral postpone +loop ; immediate
( Constants and Variables ) ( Constants and Variables )