Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid
 
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 wandering the Monastery: (9)
As of 2014-07-22 23:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (130 votes), past polls