develooper Front page | perl.cvs.parrot | Postings from January 2009

[svn:parrot] r35057 - branches/rvar/languages/perl6/src/parser

From:
jonathan
Date:
January 6, 2009 10:05
Subject:
[svn:parrot] r35057 - branches/rvar/languages/perl6/src/parser
Message ID:
20090106180536.16842CB9F9@x12.develooper.com
Author: jonathan
Date: Tue Jan  6 10:05:35 2009
New Revision: 35057

Modified:
   branches/rvar/languages/perl6/src/parser/actions.pm

Log:
[rakudo] Re-instate functionality of ;;, and set multi_invocant on parameters. This makes some tests that passed for the wrong reasons before now fail, which I'll resolve soon.

Modified: branches/rvar/languages/perl6/src/parser/actions.pm
==============================================================================
--- branches/rvar/languages/perl6/src/parser/actions.pm	(original)
+++ branches/rvar/languages/perl6/src/parser/actions.pm	Tue Jan  6 10:05:35 2009
@@ -926,7 +926,8 @@
         ##  loop through parameters of signature
         my $arity := $<parameter> ?? +@($<parameter>) !! 0;
         $block.arity($arity);
-        my $i     := 0;
+        my $i         := 0;
+        my $multi_inv := 1;
         while $i < $arity {
             my $var    := $( $<parameter>[$i] );
             my $name   := $var.name();
@@ -967,6 +968,9 @@
             }
             $sigparam.push(PAST::Val.new(:value($readtype),:named('readtype')));
 
+            $sigparam.push(PAST::Val.new(:value($multi_inv),:named('multi_invocant')));
+            if substr($<param_sep>[$i], 0, 2) eq ';;' { $multi_inv := 0; }
+
             $loadinit.push($sigparam);
             $i++;
         }



nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About