From f57e87939f92878da00338aad489b695d6cd597e Mon Sep 17 00:00:00 2001 From: jnthn Date: Fri, 3 Feb 2012 22:32:55 +0100 Subject: [PATCH] Align 'scoped' more closely with STD. --- src/Perl6/Grammar.pm | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/Perl6/Grammar.pm b/src/Perl6/Grammar.pm index e08e56dfe26..4aa1df5eff1 100644 --- a/src/Perl6/Grammar.pm +++ b/src/Perl6/Grammar.pm @@ -1386,18 +1386,19 @@ grammar Perl6::Grammar is HLL::Grammar { <.panic: '"supersede" not yet implemented'> } - rule scoped($*SCOPE) {<.end_keyword> [ + token scoped($*SCOPE) { + <.end_keyword> + [ :my $*TYPENAME := ''; - :my $*DOC := $*DECLARATOR_DOCS; :my $*DOCEE; <.attach_docs> + <.ws> [ - | - | + | + | | - | - | + + | [<.ws>]+ { if +$ > 1 { $/.CURSOR.panic("Multiple prefix constraints not yet supported"); @@ -1406,14 +1407,15 @@ grammar Perl6::Grammar is HLL::Grammar { } | - ] + ] <.ws> || >{ my $t := $.Str; $/.CURSOR.panic("In \"$*SCOPE\" declaration, typename $t must be predeclared (or marked as declarative with :: prefix)"); } # drop through || { $/.CURSOR.panic("Malformed $*SCOPE") } - ] } + ] + } token variable_declarator { :my $*IN_DECL := 'variable';