Author: pmichaud
Date: Sat Nov  8 09:34:16 2008
New Revision: 32450

Modified:
   trunk/languages/perl6/src/parser/grammar.pg

Log:
[rakudo]:  Closing } in regex/token/rule can terminate statements (RT #57874)


Modified: trunk/languages/perl6/src/parser/grammar.pg
==============================================================================
--- trunk/languages/perl6/src/parser/grammar.pg (original)
+++ trunk/languages/perl6/src/parser/grammar.pg Sat Nov  8 09:34:16 2008
@@ -154,10 +154,13 @@
     '{'
     <statement_block>
     [ '}' || <panic: Missing '}'> ]
-    [ \h* <.unv>? \n <.MARK_STATEMENT_END> ]?
+    <.BLOCK_STATEMENT_END>?
     {*}
 }
 
+token BLOCK_STATEMENT_END {
+    [ \h* <.unv>? \n <.MARK_STATEMENT_END> ]
+}
 
 rule statementlist {
     [<statement><.eat_terminator> ]*
@@ -811,19 +814,22 @@
 rule regex_declarator_regex {
     $<sym>='regex'
     <identifier>?
-    <before '{'> <quote_expression: :regex> {*}
+    <before '{'> <quote_expression: :regex><.BLOCK_STATEMENT_END>?
+    {*}
 }
 
 rule regex_declarator_token {
     $<sym>='token'
     <identifier>?
-    <before '{'> <quote_expression: :regex :ratchet> {*}
+    <before '{'> <quote_expression: :regex :ratchet><.BLOCK_STATEMENT_END>?
+    {*}
 }
 
 rule regex_declarator_rule {
     $<sym>='rule'
     <identifier>?
-    <before '{'> <quote_expression: :regex :ratchet :sigspace> {*}
+    <before '{'> <quote_expression: :regex :ratchet 
:sigspace><.BLOCK_STATEMENT_END>?
+    {*}
 }
 
 ##  S05 shows semilist as being a list of statements, in order

Reply via email to