Author: chromatic
Date: Sun Jun 10 22:40:19 2007
New Revision: 18916
Modified:
trunk/languages/perl6/src/parser/grammar_rules.pg
Log:
[Perl 6] Parse module names with version numbers and optional blocks.
Modified: trunk/languages/perl6/src/parser/grammar_rules.pg
==============================================================================
--- trunk/languages/perl6/src/parser/grammar_rules.pg (original)
+++ trunk/languages/perl6/src/parser/grammar_rules.pg Sun Jun 10 22:40:19 2007
@@ -194,14 +194,13 @@
token scope_declarator { [ my | our ] }
token class_declarator { [ class | grammar | module | role | package ] }
-token class_block {
+rule class_block {
<scope_declarator>?
<class_declarator>
- $<name>:=[ <'::'>? <name> | <?null> ] ;
- <block>
+ $<name>:=[ <'::'>? <name> [ - <version_number> ]? | <?null> ]
+ [ ; | <block> ]
}
-
## XXX: These are just placeholder regexes for demonstration,
## they certainly need to be expanded to be more complete.
@@ -209,6 +208,7 @@
token variable { \$! | \$/ | \$_ | <sigil> <twigil>? <name> }
token sigil { <[EMAIL PROTECTED]&]> | <'::'> }
token name { <ident> [ <'::'> <ident> ]* }
+token version_number { \d+ \. \d+ \. \d+ }
token integer {
| 0 [ b <[01]>+ [ _ <[01]>+ ]*