I have no opinion on the question posed, but I am very much looking forward to this module.
On Thu, Feb 5, 2015 at 5:01 AM, Ruslan Shvedov <[email protected]> wrote: > MarpaX::Regex <https://github.com/rns/MarpaX-Regex> saw some progress > recently: as an early preview, here is the BNFied version > <https://github.com/rns/MarpaX-Regex/blob/master/t/The_basics.t#L155> of > floating point regexp from perlretut > <http://perldoc.perl.org/perlretut.html#Building-a-regexp> (parses, but > ). Symbols, e.g. <start of line> ::= ^, can be defined for (arguably more) > readability. > > Perhaps I'm just "holy overanalyzing, Batman", but I have a question about > empty capturing groups: how to implement them > > as is, e.g. > > s ::= 'house' ( 'cat' |) > s ::= 'house' ( 'cat' ( 's' |) |) > > > or allow them only via an empty rule, e.g. > > s ::= 'house' ( 'cat' | empty ) > s ::= 'house' ( 'cat' ( 's' | empty ) | empty ) > empty ::= # empty rule > > > I'm afraid the right decision is support both, but would appreciate other > opinions. And any early feedback too. :) > > As a general (perhaps incomplete) observation, POSIX [1] and Perl6 [2] > seem to forbid empty capturing groups, while PCRE, ECMAscript, Java and > .Net allow them and according to a book [2] such groups can be used > intentionally, even if for the purposes MarpaX::Regex aims to serve. > > [1] the empty group `()' in `a()b' is invalid > > https://docs.freebsd.org/info/regex/regex.info.POSIX_Regular_Expression_Compiling.html > > [2] http://code.activestate.com/lists/perl6-compiler/9129/ > > [3] http://goo.gl/Fg2hbF > > -- > You received this message because you are subscribed to the Google Groups > "marpa parser" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "marpa parser" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
