--- gforth/kernel/cloop.fs 2003/08/25 14:17:53 1.6 +++ gforth/kernel/cloop.fs 2007/12/31 19:02:25 1.11 @@ -1,12 +1,12 @@ \ Structural Conditionals, loops part 12dec92py -\ Copyright (C) 1995,1996,1997,1999,2001,2003 Free Software Foundation, Inc. +\ Copyright (C) 1995,1996,1997,1999,2001,2003,2006,2007 Free Software Foundation, Inc. \ This file is part of Gforth. \ Gforth is free software; you can redistribute it and/or \ modify it under the terms of the GNU General Public License -\ as published by the Free Software Foundation; either version 2 +\ as published by the Free Software Foundation, either version 3 \ of the License, or (at your option) any later version. \ This program is distributed in the hope that it will be useful, @@ -15,21 +15,21 @@ \ GNU General Public License for more details. \ You should have received a copy of the GNU General Public License -\ along with this program; if not, write to the Free Software -\ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA. +\ along with this program. If not, see http://www.gnu.org/licenses/. \ Structural Conditionals 12dec92py -Variable leavings +\ this works with flash -: (leave) here leavings @ , leavings ! ; +: (leave) -1 , ; : LEAVE postpone branch (leave) ; immediate restrict : ?LEAVE postpone 0= postpone ?branch (leave) ; immediate restrict -: DONE ( addr -- ) leavings @ - BEGIN 2dup u<= WHILE dup @ swap >resolve REPEAT - leavings ! drop ; immediate restrict +: DONE ( addr -- ) here swap ?DO + I @ ['] branch = I @ ['] ?branch = or I @ ['] (?do) = or + I cell+ @ -1 = and IF I cell+ >resolve THEN + cell +LOOP ; immediate restrict \ Structural Conditionals 12dec92py