# New Ticket Created by "Carl Mäsak" # Please include the string: [perl #113590] # in the subject line of all future correspondence about this issue. # <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=113590 >
<adu> I can't track this bug <adu> omg, I think I found the bug <adu> rel_op:sym«<=» is not matching '<=' <adu> why? <adu> rel_op:sym<!=> matches '!=' fine <pmichaud> adu: gist? <adu> http://pastebin.com/raw.php?i=FcAiMAU2 <adu> pmichaud: masak: yes <adu> r: my grammar binop { rule TOP { <rel_op> }; proto token rel_op {*}; token rel_op:sym<!=> { <sym> }; }; say binop.parse('!=') <p6eval> rakudo b12854: OUTPUT«q[!=] rel_op => q[!=] sym => q[!=]» <adu> (showing success) <adu> r: my grammar binop { rule TOP { <rel_op> }; proto token rel_op {*}; token rel_op:sym«<=» { <sym> }; }; say binop.parse('<=') <p6eval> rakudo b12854: OUTPUT«#<failed match>» <pmichaud> r: my grammar binop { proto token rel_op {*}; my $x = token rel_op:sym«!=» { <sym> }; say $x; } <p6eval> rakudo b12854: OUTPUT«rel_op:sym«!=»» <pmichaud> ...that's the problem. The regex engine expects those «'s to be converted to single angles. * masak submits rakudobug <pmichaud> in Actions.pm <pmichaud> { if $<deflongname> { %*RX<name> := $<deflongname>[0].Str } } <pmichaud> is likely the culprit. <pmichaud> It needs to normalize the name of protoregex candidates. <adu> hmm <pmichaud> adu: in the meantime, you can do <pmichaud> r: my grammar binop { rule TOP { <rel_op> }; proto token rel_op {*}; token rel_op:sym<le> { '<=' }; }; say binop.parse('<='); <p6eval> rakudo b12854: OUTPUT«q[<=] rel_op => q[<=]» <adu> oh ok, that works