Skip to content

Commit

Permalink
Perlito5 - fix 'use strict' - #25
Browse files Browse the repository at this point in the history
  • Loading branch information
fglock committed Oct 24, 2014
1 parent 269af47 commit 55e36b5
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 5 deletions.
22 changes: 21 additions & 1 deletion perlito5.pl
Expand Up @@ -585,6 +585,15 @@ sub Perlito5::Grammar::Precedence::precedence_parse {
}
1;
package main;
package Perlito5X::strict;
sub Perlito5X::strict::import {
$Perlito5::STRICT = 1
}
sub Perlito5X::strict::unimport {
$Perlito5::STRICT = 0
}
1;
package main;
package Perlito5::Grammar::Bareword;
# use strict
sub Perlito5::Grammar::Bareword::the_object {
Expand Down Expand Up @@ -5333,7 +5342,7 @@ sub Perlito5::Grammar::Use::expand_use {
my $stmt = shift;
my $module_name = $stmt->mod();
return
if $module_name eq 'strict' || $module_name eq 'warnings' || $module_name eq 'feature';
if $module_name eq 'warnings' || $module_name eq 'feature';
$module_name = $Perlito_internal_module{$module_name}
if exists($Perlito_internal_module{$module_name});
my $filename = modulename_to_filename($module_name);
Expand Down Expand Up @@ -9628,22 +9637,33 @@ package Perlito5::AST::Apply;
}
my %emit_js = ('infix:<=~>' => sub {
my $self = $_[0];
my $level = $_[1];
my $wantarray = $_[2];
emit_regex_javascript2('=~', $self->{'arguments'}->[0], $self->{'arguments'}->[1], $level, $wantarray)
}, 'infix:<!~>' => sub {
my $self = $_[0];
my $level = $_[1];
my $wantarray = $_[2];
emit_regex_javascript2('!~', $self->{'arguments'}->[0], $self->{'arguments'}->[1], $level, $wantarray)
}, 'p5:s' => sub {
my $self = $_[0];
my $level = $_[1];
my $wantarray = $_[2];
emit_regex_javascript2('=~', Perlito5::AST::Var->new('sigil' => '$', 'namespace' => '', 'name' => '_'), $self, $level, $wantarray)
}, 'p5:m' => sub {
my $self = $_[0];
my $level = $_[1];
my $wantarray = $_[2];
emit_regex_javascript2('=~', Perlito5::AST::Var->new('sigil' => '$', 'namespace' => '', 'name' => '_'), $self, $level, $wantarray)
}, 'p5:tr' => sub {
my $self = $_[0];
my $level = $_[1];
my $wantarray = $_[2];
emit_regex_javascript2('=~', Perlito5::AST::Var->new('sigil' => '$', 'namespace' => '', 'name' => '_'), $self, $level, $wantarray)
}, 'p5:qr' => sub {
my $self = shift;
my $level = shift;
my $wantarray = shift;
'p5qr(' . Perlito5::Javascript2::to_str($self->{'arguments'}->[0]) . ', "' . $self->{'arguments'}->[1] . '")'
}, '__PACKAGE__' => sub {
my $self = $_[0];
Expand Down
6 changes: 2 additions & 4 deletions src5/lib/Perlito5/Grammar/Use.pm
Expand Up @@ -214,10 +214,8 @@ sub expand_use {
my $stmt = shift;

my $module_name = $stmt->mod;
return
if $module_name eq 'strict'
|| $module_name eq 'warnings'
|| $module_name eq 'feature';
return if $module_name eq 'warnings'
|| $module_name eq 'feature';

$module_name = $Perlito_internal_module{$module_name}
if exists $Perlito_internal_module{$module_name};
Expand Down
11 changes: 11 additions & 0 deletions src5/lib/Perlito5/Javascript2/Emitter.pm
Expand Up @@ -1644,27 +1644,38 @@ package Perlito5::AST::Apply;
my %emit_js = (
'infix:<=~>' => sub {
my $self = $_[0];
my $level = $_[1];
my $wantarray = $_[2];
emit_regex_javascript2( '=~', $self->{arguments}->[0], $self->{arguments}->[1], $level, $wantarray );
},
'infix:<!~>' => sub {
my $self = $_[0];
my $level = $_[1];
my $wantarray = $_[2];
emit_regex_javascript2( '!~', $self->{arguments}->[0], $self->{arguments}->[1], $level, $wantarray );
},
'p5:s' => sub {
my $self = $_[0];
my $level = $_[1];
my $wantarray = $_[2];
emit_regex_javascript2( '=~', Perlito5::AST::Var->new( sigil => '$', namespace => '', name => '_' ), $self, $level, $wantarray );
},
'p5:m' => sub {
my $self = $_[0];
my $level = $_[1];
my $wantarray = $_[2];
emit_regex_javascript2( '=~', Perlito5::AST::Var->new( sigil => '$', namespace => '', name => '_' ), $self, $level, $wantarray );
},
'p5:tr' => sub {
my $self = $_[0];
my $level = $_[1];
my $wantarray = $_[2];
emit_regex_javascript2( '=~', Perlito5::AST::Var->new( sigil => '$', namespace => '', name => '_' ), $self, $level, $wantarray );
},
'p5:qr' => sub {
my $self = shift;
my $level = shift;
my $wantarray = shift;
# p5qr( $str, $modifier );
'p5qr(' . Perlito5::Javascript2::to_str( $self->{arguments}[0] ) . ', "' . $self->{arguments}[1] . '")';
},
Expand Down

0 comments on commit 55e36b5

Please sign in to comment.