From 761d05a257e737e634258431b0e655c56f8c71d6 Mon Sep 17 00:00:00 2001 From: Solomon Foster Date: Wed, 17 Feb 2010 09:35:37 -0500 Subject: [PATCH] Add obs method and port the smart version of rand from STD.pm. --- src/Perl6/Grammar.pm | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Perl6/Grammar.pm b/src/Perl6/Grammar.pm index c7e5f2203ef..262e3991718 100644 --- a/src/Perl6/Grammar.pm +++ b/src/Perl6/Grammar.pm @@ -116,6 +116,11 @@ method is_name($name) { !pir::isnull__IP($test); } +# "when" arg assumes more things will become obsolete after Perl 6 comes out... +method obs ($old, $new, $when = ' in Perl 6') { + self.panic("Unsupported use of $old;$when please use $new"); +} + ## Lexer stuff token apostrophe { @@ -776,7 +781,11 @@ proto token term { <...> } token term:sym { <.nofun> } token term:sym { <.nofun> } -token term:sym { <.nofun> } +token term:sym { + ยป + [ <.obs('rand(N)', 'N.rand or (1..N).pick')> ]? + [ <.obs('rand()', 'rand')> ]? +} token term:sym<...> { ? } token term:sym { ? }