Diff for /gforth/regexp.fs between versions 1.11 and 1.12

version 1.11, 2008/08/09 20:44:03 version 1.12, 2008/08/09 20:56:35
Line 137  Variable varsmax Line 137  Variable varsmax
 0 Value end$  0 Value end$
 0 Value start$  0 Value start$
 : !end ( addr u -- addr )  over + to end$ dup to start$ ;  : !end ( addr u -- addr )  over + to end$ dup to start$ ;
 : $?1 ( addr -- addr flag ) dup end$ u< ;  : end-rex? ( addr -- addr flag ) dup end$ u< ;
 : ^? ( addr -- addr flag ) dup start$ u> ;  : start-rex? ( addr -- addr flag ) dup start$ u> ;
 : ?end ( addr -- addr ) ]] dup end$ u> ?LEAVE [[ ; immediate  : ?end ( addr -- addr ) ]] dup end$ u> ?LEAVE [[ ; immediate
   
 \ start and end  \ start and end
   
 : \^ ( addr -- addr ) \ regexp-pattern  : \^ ( addr -- addr ) \ regexp-pattern
     \G check for string start      \G check for string start
     ]] ^? ?LEAVE [[ ; immediate      ]] start-rex? ?LEAVE [[ ; immediate
 : \$ ( addr -- addr ) \ regexp-pattern  : \$ ( addr -- addr ) \ regexp-pattern
     \G check for string end      \G check for string end
     ]] $?1 ?LEAVE [[ ; immediate      ]] end-rex? ?LEAVE [[ ; immediate
   
 \ regexp block  \ regexp block
   
Line 179  Variable varsmax Line 179  Variable varsmax
     immediate      immediate
 : n*} ( sys n -- ) \ regexp-pattern  : n*} ( sys n -- ) \ regexp-pattern
     \G At least @var{n} pattern      \G At least @var{n} pattern
     >r ]] r> 1+ >r $?1 0= UNTIL dup [[ DONE, ]] drop [[      >r ]] r> 1+ >r end-rex? 0= UNTIL dup [[ DONE, ]] drop [[
     r@ IF r@ ]] r@ Literal u< IF  r> 1+ drops false  EXIT  THEN [[ THEN      r@ IF r@ ]] r@ Literal u< IF  r> 1+ drops false  EXIT  THEN [[ THEN
     r@ ]] r> 1+ Literal U+DO FORK BUT [[      r@ ]] r> 1+ Literal U+DO FORK BUT [[
     ]] IF  I' I - [[ r@ 1- ]] Literal + drops true UNLOOP EXIT  THEN  LOOP [[      ]] IF  I' I - [[ r@ 1- ]] Literal + drops true UNLOOP EXIT  THEN  LOOP [[

Removed from v.1.11  
changed lines
  Added in v.1.12


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>