X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FSub%2FNary.pm;h=5ff05745418108e0f388d291a7ccf046ec9bc75e;hb=5a4749d6f0c25cbc5b564453ac9abf338f660b82;hp=f408f8c50ff5fdd31d42ab622e401c8a8b4cf329;hpb=1a31caf5f555fb5f0b63ac682c7ea4b542282186;p=perl%2Fmodules%2FSub-Nary.git diff --git a/lib/Sub/Nary.pm b/lib/Sub/Nary.pm index f408f8c..5ff0574 100644 --- a/lib/Sub/Nary.pm +++ b/lib/Sub/Nary.pm @@ -202,11 +202,12 @@ $ops{$_} = 0 for qw/stub nextstate/; $ops{$_} = 1 for qw/padsv/; $ops{$_} = 'list' for qw/padav/; $ops{$_} = 'list' for qw/padhv rv2hv/; -$ops{$_} = 'list' for qw/padany flip match/; +$ops{$_} = 'list' for qw/padany flip match entereval/; sub enter { my ($self, $cv) = @_; + return 'list' if class($cv) ne 'CV'; my $op = $cv->ROOT; my $tag = tag($op); @@ -278,7 +279,7 @@ sub expect_any { return ($self->expect_list($op))[0] => 1 if name($op) eq 'return'; - if (class($op) eq 'LOGOP') { + if (class($op) eq 'LOGOP' and not null $op->first) { my @res; my ($p, $r); @@ -304,7 +305,7 @@ sub expect_any { return $self->expect_list($op); } -# Stolen from Sub::Deparse +# Stolen from B::Deparse sub padval { $_[0]->{cv}->[0]->PADLIST->ARRAYelt(1)->ARRAYelt($_[1]) }