Ticket moved to https://github.com/rakudo/rakudo/issues/2697

On 2015-09-25 14:06:27, duff wrote:
> On Sat Jul 25 12:03:18 2015, moritz wrote:
> > This script here:
> >
> > # BEGIN SCRIPT
> > my grammar PgTokenizer {
> > token double_quote_normal { <-[\\"]>+ }
> > token double_quote_escape { [\\ . ]+ }
> > token double_quote {
> > \"
> > [
> > | <.double_quote_normal>
> > | <.double_quote_escape>
> > ]*
> > \"
> > }
> > token single_quote_normal { <-['\\]>+ }
> > token single_quote_escape { [ \'\' || \\ . ]+ }
> > token single_quote {
> > \'
> > [
> > | <.single_quote_normal>
> > | <.single_quote_escape>
> > ]*
> > \'
> > }
> > token placeholder { '?' }
> > token normal { <-[?"']>+ }
> >
> > token TOP {
> > ^
> > (
> > | <normal>
> > | <placeholder>
> > | <single_quote>
> > | <double_quote>
> > )*
> > $
> > }
> > }
> >
> > say PgTokenizer.parse(q['a\.b''cd?', "\"?", ?])
> > # END SCRIPT
> >
> > use to match successfully (and presumably did with 2015.06, otherwise
> > we'd have had rakudo star test failures), but doesn't match anymore
> > with
> > rakudo 2015.07.
> >
> > If one changes the || to | in single_quote_escape, it matches again.
> >
> > I think this is a bug, because the two alternatives are mutually
> > exclusive, and thus | vs || shouldn't matter.
> >
>
> For someone who has time to actually fix this in case I don't get to
> it:
>
> I bisected rakudo and got
>
https://github.com/rakudo/rakudo/commit/d3785097e46b45eb51e1039c2e3f725dbdcfdf7b
> as the commit that introduced the change. Since this just bumps the
> NQP version, further bisection of nqp showed that
> https://github.com/perl6/nqp/commit/583419120b0ec9a3c2fef1a61e2993526fbebcd5
> was the real culprit.
>
> that's all I've got for now.
>
>
> -Scott (PerlJam/perlpilot)

Reply via email to