From ff40fab5c307c39972fb317f636220c574ecf629 Mon Sep 17 00:00:00 2001 From: Stefan O'Rear Date: Thu, 16 Sep 2010 14:22:14 -0700 Subject: [PATCH] Restore := to macrohood --- lib/SAFE.setting | 5 ----- src/Niecza/Actions.pm | 6 ++++++ 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/SAFE.setting b/lib/SAFE.setting index c7886a6c..1ae9fc67 100644 --- a/lib/SAFE.setting +++ b/lib/SAFE.setting @@ -297,11 +297,6 @@ sub prefix:<++>($v) { $v = ($v + 1); $v } sub postfix:<-->($v) { my $old = $v; $v = ($v - 1); $old } sub postfix:<++>($v) { my $old = $v; $v = ($v + 1); $old } -sub infix:<:=> is rawcall { Q:CgOp { - (prog [bind 0 (pos 0) (pos 1)] [pos 0]) } } -sub infix:<::=> is rawcall { Q:CgOp { - (prog [bind 1 (pos 0) (pos 1)] [pos 0]) } } - sub prefix:<~>($v) { $v.Str } # should be Stringy sub prefix:($v) { $v.Bool } sub prefix:<->($v) { 0 - $v } diff --git a/src/Niecza/Actions.pm b/src/Niecza/Actions.pm index 9c56ad85..6b4434f3 100644 --- a/src/Niecza/Actions.pm +++ b/src/Niecza/Actions.pm @@ -984,6 +984,12 @@ sub INFIX { my ($cl, $M) = @_; if ($s eq '&infix:') { # XXX macro $M->{_ast} = Op::Conditional->new(node($M), check => $l, true => $M->{middle}{_ast}, false => $r); + } elsif ($s eq '&infix:<:=>') { + $M->{_ast} = Op::Bind->new(node($M), readonly => 0, lhs => $l, + rhs => $r); + } elsif ($s eq '&infix:<::=>') { + $M->{_ast} = Op::Bind->new(node($M), readonly => 1, lhs => $l, + rhs => $r); } elsif ($s eq '&infix:<,>') { #XXX STD bug causes , in setting to be parsed as left assoc my @r;