# New Ticket Created by  "gabriele renzi" 
# Please include the string:  [perl #61086]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=61086 >


the default grammar for a newly generated language shell contains the
following lines:


rule integer { \d+ {*} }
rule quote {
     [ \' <string_literal: '\'' > \' | \" <string_literal: '"' > \" ]
     {*}
 }

since these are defined as "rule" they skip whitespace, so the second
declaration actually forces parsing of literals like
 " "
into
 ""
The attached patch modifies mk_language_shell to generate a grammar
that declares these as tokens and adds an additional test to the
default t/00-sanity.t generated for a new lanaguage shell that takes
this into account.

All parrot tests still pass, cause there is nothing testing
mk_language_shell output, AFAICT.
The documentation in languages/squaak/doc may be updated to reflect
the change but it seems the only direct reference is

languages/squaak/doc/tutorial_episode_3.pod:Rename the rule C<integer>
as C<integer_constant>, and C<quote>...
whereas it may say "token" but I guess it's pretty fine even like this.

Parrot svn at revision 33548.

Attachment: token_for_literal.patch
Description: Binary data

Reply via email to