[svn:parrot] r35774 - in trunk/languages/perl6/src: builtins parser

[email protected]
Newsgroups perl.cvs.parrot
Message-ID <[email protected]>
Author: jonathan
Date: Mon Jan 19 14:19:34 2009
New Revision: 35774

Modified:
   trunk/languages/perl6/src/builtins/assign.pir
   trunk/languages/perl6/src/parser/grammar-oper.pg

Log:
[rakudo] Make //= work (but see RT#61880 for discussion on this patch).

Modified: trunk/languages/perl6/src/builtins/assign.pir
==============================================================================
--- trunk/languages/perl6/src/builtins/assign.pir	(original)
+++ trunk/languages/perl6/src/builtins/assign.pir	Mon Jan 19 14:19:34 2009
@@ -202,6 +202,23 @@
 .end
 
 
+=item infix:<//=>
+
+Implemented here as infix:// reduces to a PAST node rather than a call.
+
+=cut
+
+.sub 'infix://='
+    .param pmc a
+    .param pmc b
+    $I0 = 'defined'(a)
+    if $I0 goto done
+    'infix:='(a, b)
+  done:
+    .return (a)
+.end
+
+
 .sub '!REDUCEMETAOPCHAIN'
     .param string opname
     .param string identity

Modified: trunk/languages/perl6/src/parser/grammar-oper.pg
==============================================================================
--- trunk/languages/perl6/src/parser/grammar-oper.pg	(original)
+++ trunk/languages/perl6/src/parser/grammar-oper.pg	Mon Jan 19 14:19:34 2009
@@ -143,6 +143,7 @@
 proto infix:<::=> is equiv(infix:<:=>) { ... }
 proto infix:<.=> is equiv(infix:<:=>) { ... }
 proto infix:«=>» is equiv(infix:<:=>) { ... }
+proto infix:<//=> is equiv(infix:<:=>) { ... }
 
 ## loose unary
 proto prefix:<true> is precedence('h=') is subname('true') { ... }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.