! Copyright (C) 2009 Daniel Ehrenberg.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs combinators combinators.short-circuit
-kernel kernel.private math namespaces regexp.classes
+kernel kernel.private math namespaces quotations regexp.classes
regexp.transition-tables sequences sequences.private sets
strings unicode words ;
IN: regexp.compiler
[ question>> question>quot ] [ yes>> ] [ no>> ] tri
[ (execution-quot) ] bi@
'[ 2dup @ _ _ if ]
- ] [ '[ _ execute ] ] if ;
+ ] [ 1quotation ] if ;
: execution-quot ( next-state -- quot )
dup sequence? [ first ] when
! Copyright (C) 2008, 2009 Doug Coleman, Daniel Ehrenberg.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays classes compiler.units kernel
-kernel.private lexer make math ranges namespaces regexp.ast
-regexp.compiler regexp.negation regexp.parser sequences
-sequences.private splitting strings vocabs.loader words ;
+kernel.private lexer make math ranges namespaces quotations
+regexp.ast regexp.compiler regexp.negation regexp.parser
+sequences sequences.private splitting strings vocabs.loader
+words ;
IN: regexp
TUPLE: regexp
M: lookahead question>quot
! Returns ( index string -- ? )
- term>> ast>dfa dfa>shortest-word '[ f _ execute ] ;
+ term>> ast>dfa dfa>shortest-word 1quotation [ f ] prepose ;
: <reversed-option> ( ast -- reversed )
"r" string>options <with-options> ;
! Returns ( index string -- ? )
term>> <reversed-option>
ast>dfa dfa>reverse-shortest-word
- '[ [ 1 - ] dip f _ execute ] ;
+ 1quotation [ [ 1 - ] dip f ] prepose ;
: match-index-from ( i string regexp -- index/f )
! This word is unsafe. It assumes that i is a fixnum