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 [[ |