From b417e13b8b288e1d10735770c1e79b72d266e9a1 Mon Sep 17 00:00:00 2001 From: Stefan O'Rear Date: Sat, 24 Jul 2010 01:30:47 -0700 Subject: [PATCH] Implement ? and + in regexes --- RegexEngine.pm6 | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/RegexEngine.pm6 b/RegexEngine.pm6 index 8b800108..75184148 100644 --- a/RegexEngine.pm6 +++ b/RegexEngine.pm6 @@ -77,6 +77,14 @@ sub _rxstar($C, $sub) is export { _rxone($C)); } +sub _rxopt($C, $sub) is export { + _rxdisj($sub($C), _rxone($C)) +} + +sub _rxplus($C, $sub) is export { + _rxlazymap($sub($C), sub ($C) { _rxstar($C, $sub) }) +} + sub _rxstr($C, $str) is export { #say "_rxstr : " ~ ($C.str ~ (" @ " ~ ($C.from ~ (" ? " ~ $str)))); if $C.from + $str.chars <= $C.str.chars &&