Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: The usage of <ALIAS=\IDENT> of Regexp::Grammars

by DamianConway (Beadle)
on Aug 16, 2012 at 04:12 UTC ( #987693=note: print w/ replies, xml ) Need Help??


in reply to The usage of <ALIAS=\IDENT> of Regexp::Grammars

The bug is that Perl does not always pass the complete raw regex into an overload 'qr', so the module cannot always convert it correctly. :-(

In this case, Perl intercepts the \l of the \ldelim and treats it as a "convert the following to lowercase" escape, before Regexp::Grammars ever gets to see the grammar.

The workaround for the current release is not to use rulenames that start with 'l', 'u', 'L', 'U', 'Q', or 'E' in a matchref. Which sucks, I know.

The long term solution (which was just uploaded to CPAN as Regexp::Grammars version 1.020) is to change the entire matchref syntax from <\IDENT> to <\_IDENT>. Yes, that's horribly backwards incompatible, but it's the only solution that doesn't involve some deep and scary hacking on the Perl core. I'm sorry.

Damian


Comment on Re: The usage of <ALIAS=\IDENT> of Regexp::Grammars
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://987693]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2015-07-08 02:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (93 votes), past polls