From f52ccae1587cb54c8c392f3b3b330315f00cd745 Mon Sep 17 00:00:00 2001 From: Stefan O'Rear Date: Tue, 14 Sep 2010 01:22:21 -0700 Subject: [PATCH] Parse my ($foo, $bar) --- src/Niecza/Actions.pm | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Niecza/Actions.pm b/src/Niecza/Actions.pm index 429c4364..8e326a71 100644 --- a/src/Niecza/Actions.pm +++ b/src/Niecza/Actions.pm @@ -1741,10 +1741,17 @@ sub scoped { my ($cl, $M) = @_; $M->{package_declarator} // $M->{multi_declarator})->{_ast}; } -# :: Op (but adds decls) +# :: Op sub declarator { my ($cl, $M) = @_; if ($M->{signature}) { - $M->sorry("Signature declarations NYI"); + my @p = @{ $M->{signature}{_ast}->params }; + # TODO: keep the original signature around somewhere := can find it + for (@p) { + # TODO: fanciness checks + $_ = Op::Lexical->new(node($M), name => $_->slot, list => $_->list, + hash => $_->hash, declaring => 1); + } + $M->{_ast} = Op::SimpleParcel->new(node($M), items => \@p); return; } $M->{_ast} = $M->{variable_declarator} ? $M->{variable_declarator}{_ast} :