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)