Author: larry Date: Wed Aug 2 09:00:38 2006 New Revision: 10539 Modified: doc/trunk/design/syn/S05.pod
Log: Tweaks to allow <foo+bar>. Modified: doc/trunk/design/syn/S05.pod ============================================================================== --- doc/trunk/design/syn/S05.pod (original) +++ doc/trunk/design/syn/S05.pod Wed Aug 2 09:00:38 2006 @@ -16,7 +16,7 @@ Date: 24 Jun 2002 Last Modified: 2 Aug 2006 Number: 5 - Version: 30 + Version: 31 This document summarizes Apocalypse 5, which is about the new regex syntax. We now try to call them I<regex> because they haven't been @@ -629,6 +629,38 @@ / <sign>? <mantissa> <exponent>? / +The first character after the identifier determines the treatment of +the rest of the text before the closing angle. The underlying semantics +is that of a function or method call, so if the first character is +a left parenthesis, it really is a call: + + <foo('bar')> + +If the first character is a colon, the rest of the text (following any +whitespace) is passed as a string, so the previous may also be written as: + + <foo: bar> + +If the first character is whitespace, the subsequent text is passed as regex, +so: + + <foo bar> + +is more or less equivalent to + + <foo(/bar/)> + +If the first character is a plus or minus, the initial identifier taken +as a character class, so + + <foo+bar-baz> + +is equivalent to + + <+foo+bar-baz> + +(See below.) + =item * The special named assertions include: @@ -816,6 +848,10 @@ / <-[a..z_]> <-alpha> / +This is essentially the same as using negative lookahead and dot: + + / <![a..z_]> . <!alpha> . / + =item * Character classes can be combined (additively or subtractively) within @@ -824,9 +860,11 @@ / <[a..z]-[aeiou]+xdigit> / # consonant or hex digit If such a combination starts with a named character class, a leading -C<+> is required: +C<+> is allowed but not required, provided the next character is a +character set operation: - / <+alpha-[Jj]> / # J-less alpha + / <+alpha-[Jj]> / # J-less alpha + / <alpha-[Jj]> / # same thing =item *