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.
