From 1f9b1dda95397e1216120352b06da116909dd92d Mon Sep 17 00:00:00 2001 From: Jonathan Worthington Date: Tue, 20 Apr 2010 02:40:17 +0200 Subject: [PATCH] Implement &[+] shortcut form for infix ops. --- src/Perl6/Actions.pm | 3 +++ src/Perl6/Grammar.pm | 16 +++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/Perl6/Actions.pm b/src/Perl6/Actions.pm index f5762daf41d..2a2bf9d86d8 100644 --- a/src/Perl6/Actions.pm +++ b/src/Perl6/Actions.pm @@ -682,6 +682,9 @@ method variable($/) { $past := $.ast; $past.unshift( PAST::Var.new( :name('$/') ) ); } + elsif $ { + $past := PAST::Op.new( :pirop('find_sub_not_null__Ps'), '&infix:<' ~ $.Str ~ '>' ); + } else { $past := make_variable($/, ~$/); } diff --git a/src/Perl6/Grammar.pm b/src/Perl6/Grammar.pm index ef7bdbacbbd..f2059d91817 100644 --- a/src/Perl6/Grammar.pm +++ b/src/Perl6/Grammar.pm @@ -728,11 +728,17 @@ token variable { } }> {} [ - | ? - | - | $=[\d+] - | - | $=['$'] $=[<[/_!]>] + || '&' + [ + | '[' ~ ']' + ] + || [ + | ? + | + | $=[\d+] + | + | $=['$'] $=[<[/_!]>] + ] ] [ && $[0] eq '.' }> [ <.unsp> | '\\' | ]