Skip to content

Commit 3fe2854

Browse files
committed
Perlito5 - perl5 emitter - grep, sort
1 parent fa4c162 commit 3fe2854

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

perlito5.pl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11694,13 +11694,13 @@ package Perlito5::AST::Apply;
1169411694
if (($self->{'code'} eq 'package')) {
1169511695
return ('package ' . $self->{'namespace'})
1169611696
};
11697-
if (($code eq 'map')) {
11697+
if (((($code eq 'map') || ($code eq 'grep')) || ($code eq 'sort'))) {
1169811698
if ($self->{'special_arg'}) {
11699-
return ('map {' . chr(10) . join(';' . chr(10), map {
11699+
return ($code . ' {' . chr(10) . join(';' . chr(10), map {
1170011700
(Perlito5::Perl5::tab(($level + 1)) . $_->emit_perl5(($level + 1)))
1170111701
} @{$self->{'special_arg'}->{'stmts'}}) . chr(10) . Perlito5::Perl5::tab($level) . '} ' . $self->emit_perl5_args(($level + 1)))
1170211702
};
11703-
return ('map(' . $self->emit_perl5_args(($level + 1)) . ')')
11703+
return ($code . '(' . $self->emit_perl5_args(($level + 1)) . ')')
1170411704
};
1170511705
if (($code eq 'infix:<x>')) {
1170611706
return ('join("", ' . join(' x ', map($_->emit_perl5(($level + 1)), @{$self->{'arguments'}})) . ')')

src5/lib/Perlito5/Perl5/Emitter.pm

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -373,18 +373,18 @@ package Perlito5::AST::Apply;
373373
}
374374
if ($self->{code} eq 'package') { return 'package ' . $self->{namespace} }
375375

376-
if ($code eq 'map') {
376+
if ($code eq 'map' || $code eq 'grep' || $code eq 'sort') {
377377

378378
if ( $self->{special_arg} ) {
379379
# TODO - test 'special_arg' type (scalar, block, ...)
380-
return "map {\n"
380+
return "$code {\n"
381381
. join(";\n", map { Perlito5::Perl5::tab($level+1) . $_->emit_perl5( $level + 1 ) } @{$self->{special_arg}{stmts}} ) . "\n"
382382
. Perlito5::Perl5::tab($level) . "} "
383383

384384
. $self->emit_perl5_args($level+1);
385385
}
386386

387-
return 'map(' . $self->emit_perl5_args($level+1) . ')'
387+
return "$code(" . $self->emit_perl5_args($level+1) . ')'
388388
}
389389

390390
if ($code eq 'infix:<x>') {

0 commit comments

Comments
 (0)