# 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.