# New Ticket Created by  David Warring 
# Please include the string:  [perl #120146]
# in the subject line of all future correspondence about this issue. 
# <URL: https://rt.perl.org:443/rt3/Ticket/Display.html?id=120146 >


The final parse below is failing to match (golfed from CSS::Grammar):

    use v6;
   #use Grammar::Tracer;

    grammar G {

        token nmstrt   {<[_ a..z A..Z]>}
        token nmreg    {<[_ \- a..z A..Z 0..9]>+}
        token ident    {'-'?<nmstrt><nmreg>*}
        token num      {[\+|\-]? (\d* \.)? \d+}

        proto token term { <...> }
        token term:sym<ident>      {<ident>}
        token term:sym<num>        {<num>}

    }

    say G.parse("-my-ident", :rule<ident>);   # parsing
    use v6;

    grammar G {

        token nmstrt   {<[_ a..z A..Z]>}
        token nmreg    {<[_ \- a..z A..Z 0..9]>+}
        token ident    {'-'?<nmstrt><nmreg>*}
        token num      {[\+|\-]? (\d* \.)? \d+}

        proto token term { <...> }
        token term:sym<ident>      {<ident>}
        token term:sym<num>        {<num>}

    }

    say G.parse("-my-ident", :rule<ident>);   # parsing
    say G.parse("my-ident", :rule<term>);     # parsing
    say G.parse("-my-ident", :rule<term>);    # not parsing

Parse failing on both Parrot and JVM.This has been a problem since about
29th Sept.

Parse succeeds if I uncomment 'use Grammar::Tracer', ie Heisenbug.
The final parse below is failing to match (golfed from CSS::Grammar):

    use v6;
   #use Grammar::Tracer;

    grammar G {

        token nmstrt   {<[_ a..z A..Z]>}
        token nmreg    {<[_ \- a..z A..Z 0..9]>+}
        token ident    {'-'?<nmstrt><nmreg>*}
        token num      {[\+|\-]? (\d* \.)? \d+}

        proto token term { <...> }
        token term:sym<ident>      {<ident>}
        token term:sym<num>        {<num>}

    }

    say G.parse("-my-ident", :rule<ident>);   # parsing
    use v6;

    grammar G {

        token nmstrt   {<[_ a..z A..Z]>}
        token nmreg    {<[_ \- a..z A..Z 0..9]>+}
        token ident    {'-'?<nmstrt><nmreg>*}
        token num      {[\+|\-]? (\d* \.)? \d+}

        proto token term { <...> }
        token term:sym<ident>      {<ident>}
        token term:sym<num>        {<num>}

    }

    say G.parse("-my-ident", :rule<ident>);   # parsing
    say G.parse("my-ident", :rule<term>);     # parsing
    say G.parse("-my-ident", :rule<term>);    # not parsing

Parse failing on both Parrot and JVM.This has been a problem since about 29th Sept.

Parse succeeds if I uncomment 'use Grammar::Tracer', ie Heisenbug.

Reply via email to