From 51c596c9670d5e47f4a9c20d83c00de4261ebf71 Mon Sep 17 00:00:00 2001 From: jnthn Date: Sat, 5 Dec 2009 17:52:18 +0000 Subject: [PATCH] Support for class Dog { does Smell }. --- src/Perl6/Actions.pm | 10 ++++++++++ src/Perl6/Grammar.pm | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/src/Perl6/Actions.pm b/src/Perl6/Actions.pm index 9044b14ac86..b61c732751e 100644 --- a/src/Perl6/Actions.pm +++ b/src/Perl6/Actions.pm @@ -515,6 +515,16 @@ method package_declarator:sym($/) { make $.ast; } method package_declarator:sym($/) { make $.ast; } method package_declarator:sym($/) { make $.ast; } +method package_declarator:sym($/) { + our @PACKAGE; + @PACKAGE[0].traits.push(PAST::Op.new( + :pasttype('call'), + :name('&trait_mod:'), + $.ast + )); + make PAST::Stmts.new(); +} + method package_def($/, $key?) { our @PACKAGE; diff --git a/src/Perl6/Grammar.pm b/src/Perl6/Grammar.pm index e0e7497dc41..b980d24c090 100644 --- a/src/Perl6/Grammar.pm +++ b/src/Perl6/Grammar.pm @@ -466,6 +466,11 @@ token package_declarator:sym { } +token package_declarator:sym { + <.ws> + +} + rule package_def { :my $*IN_DECL := 'package'; ?