Re: [perl #133541] Grammer bug <alnum> vs <alpha>

[email protected] ("Patrick R. Michaud via RT") Fri, 28 Sep 2018 07:18:49 -0700
Newsgroups perl.perl6.compiler
Message-ID <[email protected]>
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 <[email protected]> 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 <[email protected]>
> > 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
> > [email protected]
> >