| Number:n "," Number:m "}" => [[ n m <from-to> ]]
Repeated = Element:e "{" Times:t => [[ e t <times> ]]
+ | Element:e "??" => [[ e <maybe> ]]
+ | Element:e "*?" => [[ e <star> ]]
+ | Element:e "+?" => [[ e <plus> ]]
| Element:e "?" => [[ e <maybe> ]]
| Element:e "*" => [[ e <star> ]]
| Element:e "+" => [[ e <plus> ]]
USING: kernel namespaces make xmode.rules xmode.tokens
xmode.marker.state xmode.marker.context xmode.utilities
xmode.catalog sequences math assocs combinators strings
-regexp splitting ascii regexp.backend unicode.case
+regexp splitting ascii unicode.case regexp.matchers
ascii combinators.short-circuit accessors ;
-! regexp.backend is for the regexp class
! Next two words copied from parser-combinators
! Just like head?, but they optionally ignore case
+! Copyright (C) 2008 Slava Pestov.
+! See http://factorcode.org/license.txt for BSD license.
USING: accessors xmode.tokens xmode.keyword-map kernel
sequences vectors assocs strings memoize unicode.case
-regexp regexp.backend ; ! regexp.backend has the regexp class
+regexp ;
IN: xmode.rules
TUPLE: string-matcher string ignore-case? ;