Author: lwall
Date: 2010-07-09 02:13:08 +0200 (Fri, 09 Jul 2010)
New Revision: 31584

Modified:
   docs/Perl6/Spec/S05-regex.pod
Log:
[S05] also define how * does multi dispatch inside regexes
delete <...> et al. since they're redundant with {...}


Modified: docs/Perl6/Spec/S05-regex.pod
===================================================================
--- docs/Perl6/Spec/S05-regex.pod       2010-07-08 21:04:28 UTC (rev 31583)
+++ docs/Perl6/Spec/S05-regex.pod       2010-07-09 00:13:08 UTC (rev 31584)
@@ -16,8 +16,8 @@
 
     Created: 24 Jun 2002
 
-    Last Modified: 11 Jun 2010
-    Version: 125
+    Last Modified: 8 Jul 2010
+    Version: 126
 
 This document summarizes Apocalypse 5, which is about the new regex
 syntax.  We now try to call them I<regex> rather than "regular
@@ -1127,7 +1127,7 @@
 match.  The symbol is specified as part of the "long name".  It may also
 be matched within the rule using C<< <sym> >>, like this:
 
-    proto token sigil { }
+    proto token sigil {*}
     multi token sigil:sym<$>  { <sym> }
     multi token sigil:sym<@>  { <sym> }
     multi token sigil:sym<%>  { <sym> }
@@ -1147,6 +1147,13 @@
 tie, a normal multiple dispatch is made using the arguments to the
 remaining variants, assuming they can be differentiated by type.
 
+The proto calls into the subdispatcher when it sees a C<*> that
+cannot be a quantifier and is the only thing in its bracket.  Therefore
+you can put items before and after the subdispatch by putting
+the C<*> into square brackets:
+
+proto token foo { <prestuff> [*] <poststuff> }
+
 =item *
 
 The use of a hash variable in patterns is reserved.
@@ -1574,15 +1581,6 @@
 
 =item *
 
-The C<< <...> >>, C<< <???> >>, and C<< <!!!> >> special tokens
-have the same "not-defined-yet" meanings within regexes that the bare
-elipses have in ordinary code.  (However, by the recursive rules above,
-C<< <!!> >> is equivalent to C<< <?> >>, which matches the null string.
-Likewise C<< <!!before x> >> is just like C<< <?before x> >>, except
-that it is ignored by the longest-token matcher.)
-
-=item *
-
 A leading C<*> indicates that the following pattern allows a
 partial match.  It always succeeds after matching as many characters
 as possible.  (It is not zero-width unless 0 characters match.)

Reply via email to