Golfs to just the top grammar, which is the only one that returns Nil.

grammar Alnum1 {
    token TOP {<alnum>|<alnum>.*}
}
grammar AlnumReversed {
    token TOP {<alnum>.*|<alnum>}
}
grammar Alpha1 {
    token TOP {<alpha>|<alpha>.*}
}
my $rx = rx/^ [<alnum>|<alnum>.*] $/;

my $str="n~";

.say for "=========== <alnum> ==============",
 Alnum1.parse($str),
 "=========== <alnum> (reversed) ===",
 AlnumReversed.parse($str),
 "=========== <alpha> ==============",
 Alpha1.parse($str),
 "=========== Regex   ==============",
 $str ~~ $rx;


On Fri, Sep 28, 2018 at 7:19 AM Patrick R. Michaud via RT <
perl6-bugs-follo...@perl.org> wrote:

> The issue doesn't seem to be the underscore, because I get the same result
> even when converting the underscore into a letter ('b'):
>
> $ cat gentb.p6
> grammar G0 {
>         token TOP {<rport>|<ruport>.*}
>         regex rport { <type>}
>         rule ruport { <type>}
>         #token type {<alpha>+}
>         token type {<alnum>+}
> }
>
> grammar G1 {
>         token TOP {<rport>|<ruport>.*}
>         regex rport { <type>}
>         rule ruport { <type>}
>         token type {<alpha>+}
>         #token type {<alnum>+}
> }
> my $str="scbin<foo> bar";
> say "=========== <alnum> Example==============";
> say G0.parse($str);
> say "=========== <alpha> Example==============";
> say G1.parse($str);
>
> $ perl6 gentb.p6
> =========== <alnum> Example==============
> Nil
> =========== <alpha> Example==============
> 「scbin<foo> bar」
>  ruport => 「scbin」
>   type => 「scbin」
>    alpha => 「s」
>    alpha => 「c」
>    alpha => 「b」
>    alpha => 「i」
>    alpha => 「n」
> $
>
>
> On Fri, Sep 28, 2018 at 02:26:41AM -0700, Brent Laabs wrote:
> > Are you sure about that?  Underscore has been part of the specs
> (synopses)
> > for <alpha> for at least 10 years, probably longer.
> >
> >  >  "_" ~~ /<alpha>/
> > 「_」
> >  alpha => 「_」
> >
> > On Thu, Sep 27, 2018 at 7:52 PM Brandon Allbery <allber...@gmail.com>
> wrote:
> >
> > > "_" is not an alphabetic character. It's allowed in "alnum" because
> that
> > > is by intent what is \w in other regex implementations, which includes
> "_".
> > >
> > > On Thu, Sep 27, 2018 at 10:47 PM Vijayvithal <
> perl6-bugs-follo...@perl.org>
> > > wrote:
> > >
> > >> # New Ticket Created by  Vijayvithal
> > >> # Please include the string:  [perl #133541]
> > >> # in the subject line of all future correspondence about this issue.
> > >> # <URL: https://rt.perl.org/Ticket/Display.html?id=133541 >
> > >>
> > >>
> > >> In the attached code, the only difference between the Grammars G0 and
> G1
> > >> is the defination of token 'type' it is defined as <alpha> in one case
> > >> and as <alnum> in another.
> > >>
> > >> Since the string being matched is 'sc_in' both the alpha and alnum
> > >> tokens should have captured it. But we see the following result on
> > >> execution
> > >>
> > >> =========== <alnum> Example==============
> > >> Nil
> > >> =========== <alpha> Example==============
> > >> 「sc_in<foo> bar」
> > >> ruport => 「sc_in」
> > >> type => 「sc_in」
> > >> alpha => 「s」
> > >> alpha => 「c」
> > >> alpha => 「_」
> > >> alpha => 「i」
> > >> alpha => 「n」
> > >>
> > >>
> > >> Perl Version is
> > >>
> > >> This is Rakudo Star version 2018.06 built on MoarVM version 2018.06
> > >> implementing Perl 6.c.
> > >>
> > >>
> > >>
> > >> --
> > >> Vijayvithal
> > >> Dyumnin Semiconductors
> > >>
> > >
> > >
> > > --
> > > brandon s allbery kf8nh
> > > allber...@gmail.com
> > >
>
>

Reply via email to