my $r;
my $c = 1;
for (; not null $op->sibling; $op = $op->sibling) {
- my $n = name($op);
- next if $n eq 'nextstate';
my ($rc, $lc) = $self->inspect($op);
- $r = add $r, scale $c, $rc if defined $rc;
- if (zero $lc) {
- $c = 1 - count $r;
- return $r, $c ? { 0 => $c } : undef
- }
+ return $rc, $lc if defined $rc and not defined $lc;
+ $r = add $r, scale $c, $rc;
$c *= count $lc;
}
my ($self, $op) = @_;
$op = $op->first;
- my ($r, $l) = $self->inspect($op);
- if (name($op) ne 'const') {
- my $c = 1 - count $r;
- $l = $c ? { list => $c } : 0;
+ if (name($op) eq 'gv') {
+ return undef, { list => 1 };
}
- return $r, $l;
+
+ $self->inspect($op);
}
sub pp_aassign {