Skip to content

Commit

Permalink
Perlito5 - perl6 - my sub
Browse files Browse the repository at this point in the history
  • Loading branch information
fglock committed Oct 15, 2013
1 parent 68a48a3 commit 890d83b
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
10 changes: 9 additions & 1 deletion perlito5.pl
Expand Up @@ -12811,12 +12811,20 @@ package Perlito5::AST::Sub;
if defined($self->{'block'}); if defined($self->{'block'});
return(['op' => 'prefix:<sub>', @parts]) return(['op' => 'prefix:<sub>', @parts])
if !$self->{'name'}; if !$self->{'name'};
my $is_our = 1;
$is_our = 0
if $self->{'decl'} eq 'my';
my $name = $self->{'name'}; my $name = $self->{'name'};
if ($Perlito5::PKG_NAME ne $self->{'namespace'}) { if ($Perlito5::PKG_NAME ne $self->{'namespace'}) {
$name = $self->{'namespace'} . '::' . $name; $name = $self->{'namespace'} . '::' . $name;
$is_our = 0
}
if ($is_our) {
return(['stmt' => ['keyword' => 'our'], ['keyword' => 'sub'], ['bareword' => $name], @parts])
}
else {
return(['stmt' => ['keyword' => 'sub'], ['bareword' => $name], @parts]) return(['stmt' => ['keyword' => 'sub'], ['bareword' => $name], @parts])
} }
return(['stmt' => ['keyword' => 'our'], ['keyword' => 'sub'], ['bareword' => $name], @parts])
} }
} }
package Perlito5::AST::Do; package Perlito5::AST::Do;
Expand Down
11 changes: 9 additions & 2 deletions src5/lib/Perlito5/Perl6/Emitter.pm
Expand Up @@ -678,14 +678,21 @@ package Perlito5::AST::Sub;
if defined $self->{block}; if defined $self->{block};
return [ op => 'prefix:<sub>', @parts ] if !$self->{name}; return [ op => 'prefix:<sub>', @parts ] if !$self->{name};


# TODO - 'my' subroutines my $is_our = 1; # our is default in perl5
$is_our = 0 if $self->{decl} eq 'my';


my $name = $self->{name}; my $name = $self->{name};
if ( $Perlito5::PKG_NAME ne $self->{namespace} ) { if ( $Perlito5::PKG_NAME ne $self->{namespace} ) {
$name = $self->{namespace} . "::" . $name; $name = $self->{namespace} . "::" . $name;
$is_our = 0;
}

if ($is_our) {
return [ stmt => [ keyword => 'our' ], [ keyword => 'sub' ], [ bareword => $name ], @parts ];
}
else {
return [ stmt => [ keyword => 'sub' ], [ bareword => $name ], @parts ]; return [ stmt => [ keyword => 'sub' ], [ bareword => $name ], @parts ];
} }
return [ stmt => [ keyword => 'our' ], [ keyword => 'sub' ], [ bareword => $name ], @parts ];
} }
} }


Expand Down

0 comments on commit 890d83b

Please sign in to comment.