Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Perlito5 - perl5 - fix emitted code for $$x[0]
  • Loading branch information
fglock committed Oct 4, 2012
1 parent 414f594 commit 805d42e
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 0 deletions.
6 changes: 6 additions & 0 deletions perlito5.pl
Expand Up @@ -10695,6 +10695,9 @@ package Perlito5::AST::Index;
((my $v) = $self->{'obj'});
return (($v->emit_perl5($level) . '[' . $self->{'index_exp'}->emit_perl5() . ']'))
};
if (($self->{'obj'}->isa('Perlito5::AST::Apply') && ($self->{'obj'}->{'code'} eq 'prefix:<$>'))) {
return (($self->{'obj'}->{'arguments'}->[0]->emit_perl5($level) . '->[' . $self->{'index_exp'}->emit_perl5($level) . ']'))
};
($self->{'obj'}->emit_perl5($level) . '->[' . $self->{'index_exp'}->emit_perl5() . ']')
}
}};
Expand All @@ -10707,6 +10710,9 @@ package Perlito5::AST::Lookup;
((my $v) = $self->{'obj'});
return (($v->emit_perl5($level) . '{' . $self->autoquote($self->{'index_exp'})->emit_perl5($level) . '}'))
};
if (($self->{'obj'}->isa('Perlito5::AST::Apply') && ($self->{'obj'}->{'code'} eq 'prefix:<$>'))) {
return (($self->{'obj'}->{'arguments'}->[0]->emit_perl5($level) . '->{' . $self->autoquote($self->{'index_exp'})->emit_perl5($level) . '}'))
};
($self->{'obj'}->emit_perl5($level) . '->{' . $self->autoquote($self->{'index_exp'})->emit_perl5($level) . '}')
}
}};
Expand Down
16 changes: 16 additions & 0 deletions src5/lib/Perlito5/Perl5/Emitter.pm
Expand Up @@ -153,6 +153,14 @@ package Perlito5::AST::Index;
return $v->emit_perl5($level) . '[' . $self->{index_exp}->emit_perl5() . ']';
}

if ( $self->{obj}->isa('Perlito5::AST::Apply')
&& $self->{obj}->{code} eq 'prefix:<$>'
)
{
# $$a[0] ==> $a->[0]
return $self->{obj}{arguments}[0]->emit_perl5($level) . '->[' . $self->{index_exp}->emit_perl5($level) . ']';
}

$self->{obj}->emit_perl5($level) . '->[' . $self->{index_exp}->emit_perl5() . ']';
}
}
Expand All @@ -172,6 +180,14 @@ package Perlito5::AST::Lookup;
return $v->emit_perl5($level) . '{' . $self->autoquote($self->{index_exp})->emit_perl5($level) . '}';
}

if ( $self->{obj}->isa('Perlito5::AST::Apply')
&& $self->{obj}->{code} eq 'prefix:<$>'
)
{
# $$a{0} ==> $a->{0}
return $self->{obj}{arguments}[0]->emit_perl5($level) . '->{' . $self->autoquote($self->{index_exp})->emit_perl5($level) . '}';
}

$self->{obj}->emit_perl5($level) . '->{' . $self->autoquote($self->{index_exp})->emit_perl5($level) . '}';
}
}
Expand Down

0 comments on commit 805d42e

Please sign in to comment.