Inline initial state in next-match loop
parent
44d36dab9c
commit
034bda42ca
|
@ -51,8 +51,8 @@ PRIVATE>
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
:: (next-match) ( i string regexp word: ( i string regexp -- j ) reverse? -- i start end ? )
|
:: (next-match) ( i string regexp quot: ( i string regexp -- j ) reverse? -- i start end ? )
|
||||||
i string regexp word execute dup [| j |
|
i string regexp quot call dup [| j |
|
||||||
j i j
|
j i j
|
||||||
reverse? [ swap [ 1+ ] bi@ ] when
|
reverse? [ swap [ 1+ ] bi@ ] when
|
||||||
string
|
string
|
||||||
|
@ -61,10 +61,10 @@ PRIVATE>
|
||||||
: search-range ( i string reverse? -- seq )
|
: search-range ( i string reverse? -- seq )
|
||||||
[ drop dup 1+ -1 ] [ length 1 ] if range boa ; inline
|
[ drop dup 1+ -1 ] [ length 1 ] if range boa ; inline
|
||||||
|
|
||||||
:: next-match ( i string regexp word reverse? -- i start end ? )
|
:: next-match ( i string regexp quot: ( i string regexp -- j ) reverse? -- i start end ? )
|
||||||
f f f f
|
f f f f
|
||||||
i string reverse? search-range
|
i string reverse? search-range
|
||||||
[ [ 2drop 2drop ] dip string regexp word reverse? (next-match) dup ] find 2drop ; inline
|
[ [ 2drop 2drop ] dip string regexp quot reverse? (next-match) dup ] find 2drop ; inline
|
||||||
|
|
||||||
: do-next-match ( i string regexp -- i start end ? )
|
: do-next-match ( i string regexp -- i start end ? )
|
||||||
dup next-match>>
|
dup next-match>>
|
||||||
|
@ -151,7 +151,7 @@ DEFER: compile-next-match
|
||||||
: compile-next-match ( regexp -- regexp )
|
: compile-next-match ( regexp -- regexp )
|
||||||
dup '[
|
dup '[
|
||||||
dup \ next-initial-word = [
|
dup \ next-initial-word = [
|
||||||
drop _ [ compile-regexp dfa>> ] [ reverse-regexp? ] bi
|
drop _ [ compile-regexp dfa>> def>> ] [ reverse-regexp? ] bi
|
||||||
'[ { array-capacity string regexp } declare _ _ next-match ]
|
'[ { array-capacity string regexp } declare _ _ next-match ]
|
||||||
(( i string regexp -- i start end string )) simple-define-temp
|
(( i string regexp -- i start end string )) simple-define-temp
|
||||||
] when
|
] when
|
||||||
|
|
Loading…
Reference in New Issue