Skip to content

Commit

Permalink
Perlito5 - add .= operator
Browse files Browse the repository at this point in the history
  • Loading branch information
fglock committed Dec 21, 2011
1 parent 638b11c commit ff049c7
Show file tree
Hide file tree
Showing 12 changed files with 393 additions and 381 deletions.
2 changes: 1 addition & 1 deletion lib5/Perlito5/Javascript/Emitter.pm
Expand Up @@ -941,7 +941,7 @@ package GLOBAL;
return scalar ($str)
}
else {
die(('not implemented: Decl ' . chr(39) . $self->{decl} . (chr(39))))
die((('not implemented: Decl ' . chr(39)) . $self->{decl} . (chr(39))))
}
}
}
Expand Down
1 change: 1 addition & 0 deletions lib5/Perlito5/Macro.pm
Expand Up @@ -262,6 +262,7 @@ package GLOBAL;
($Hash_a->{'infix:<' . chr(38) . chr(61) . '>'} = 'infix:<' . chr(38) . '>');
($Hash_a->{'infix:<' . chr(47) . chr(47) . chr(61) . '>'} = 'infix:<' . chr(47) . chr(47) . '>');
($Hash_a->{'infix:<' . chr(126) . chr(61) . '>'} = 'list:<' . chr(126) . '>');
($Hash_a->{'infix:<.' . chr(61) . '>'} = 'list:<.>');
$Hash_a
});
sub op_assign {
Expand Down
6 changes: 3 additions & 3 deletions lib5/Perlito5/Perl5/Emitter.pm
Expand Up @@ -608,7 +608,7 @@ package GLOBAL;
my $List__ = bless \@_, "ARRAY";
((my $self) = $List__->[0]);
((my $level) = $List__->[1]);
return scalar ((Perl5::tab($level) . 'if (' . $self->{cond}->emit_perl5() . (') ' . chr(123) . chr(10)) . (($self->{body} ? (Main::join([ map { $_->emit_perl5_indented(($level + 1)) } @{( $self->{body}->stmts() )} ], (chr(59) . chr(10))) . (chr(10))) : '')) . Perl5::tab($level) . (chr(125)) . ((($self->{otherwise} && scalar( @{$self->{otherwise}->stmts()} )) ? ((chr(10) . Perl5::tab($level) . ('else ' . chr(123) . chr(10)) . Main::join([ map { $_->emit_perl5_indented(($level + 1)) } @{( $self->{otherwise}->stmts() )} ], (chr(59) . chr(10))) . (chr(10)) . Perl5::tab($level) . (chr(125)))) : ''))))
return scalar ((Perl5::tab($level) . 'if (' . $self->{cond}->emit_perl5() . (') ' . chr(123) . chr(10)) . (($self->{body} ? (Main::join([ map { $_->emit_perl5_indented(($level + 1)) } @{( $self->{body}->stmts() )} ], (chr(59) . chr(10))) . (chr(10))) : '')) . Perl5::tab($level) . (chr(125)) . ((($self->{otherwise} && scalar( @{$self->{otherwise}->stmts()} )) ? (((chr(10)) . Perl5::tab($level) . ('else ' . chr(123) . chr(10)) . Main::join([ map { $_->emit_perl5_indented(($level + 1)) } @{( $self->{otherwise}->stmts() )} ], (chr(59) . chr(10))) . (chr(10)) . Perl5::tab($level) . (chr(125)))) : ''))))
}
}

Expand Down Expand Up @@ -724,7 +724,7 @@ package GLOBAL;
($str = ($str . (Perl5::tab(($level + 1)) . 'my ' . $field->emit_perl5() . ' ' . chr(61) . ' ' . chr(36) . '_[' . $i . ']' . chr(59) . (chr(10)))));
($i = ($i + 1))
};
(Perl5::tab($level) . 'sub ' . $self->{name} . (' ' . chr(123) . chr(10)) . Perl5::tab(($level + 1)) . 'my ' . $invocant->emit_perl5() . ' ' . chr(61) . ' ' . chr(36) . '_[0]' . chr(59) . (chr(10)) . $str . "".(Main::join(([ map { $_->emit_perl5_indented(($level + 1)) } @{( (defined $self->{block} ? $self->{block} : ($self->{block} ||= bless([], 'ARRAY'))) )} ]), (chr(59) . chr(10)))) . (chr(10)) . Perl5::tab($level) . (chr(125)))
(Perl5::tab($level) . 'sub ' . $self->{name} . (' ' . chr(123) . chr(10)) . Perl5::tab(($level + 1)) . 'my ' . $invocant->emit_perl5() . ' ' . chr(61) . ' ' . chr(36) . '_[0]' . chr(59) . (chr(10)) . $str . Main::join(([ map { $_->emit_perl5_indented(($level + 1)) } @{( (defined $self->{block} ? $self->{block} : ($self->{block} ||= bless([], 'ARRAY'))) )} ]), (chr(59) . chr(10))) . (chr(10)) . Perl5::tab($level) . (chr(125)))
}
}

Expand Down Expand Up @@ -785,7 +785,7 @@ package GLOBAL;
((my $self) = $List__->[0]);
((my $level) = $List__->[1]);
if (((($self->{mod} eq 'v6') || ($self->{mod} eq 'strict')) || ($self->{mod} eq 'feature'))) {
return scalar ((chr(10) . Perl5::tab($level) . (chr(35) . ' use ' . $self->{mod} . ' ' . chr(10))))
return scalar (((chr(10)) . Perl5::tab($level) . (chr(35) . ' use ' . $self->{mod} . ' ' . chr(10))))
};
(Perl5::tab($level) . 'use ' . $self->{mod})
}
Expand Down
5 changes: 5 additions & 0 deletions lib5/Perlito5/Precedence.pm
Expand Up @@ -424,6 +424,11 @@ package GLOBAL;
(my $Hash_a = bless {}, 'HASH');
($Hash_a->{'assoc'} = 'right');
$Hash_a
});
add_op('infix', '.' . chr(61), $prec, do {
(my $Hash_a = bless {}, 'HASH');
($Hash_a->{'assoc'} = 'right');
$Hash_a
});
($prec = ($prec - 1));
add_op('prefix', 'not', $prec);
Expand Down
482 changes: 241 additions & 241 deletions src5/lib/Perlito5/Javascript/Emitter.pm

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion src5/lib/Perlito5/Macro.pm
Expand Up @@ -233,7 +233,8 @@ class Apply {
'infix:<|=>' => 'infix:<|>',
'infix:<&=>' => 'infix:<&>',
'infix:<//=>' => 'infix:<//>',
'infix:<~=>' => 'list:<~>',
'infix:<~=>' => 'list:<~>', # XXX Perl6
'infix:<.=>' => 'list:<.>',
);

method op_assign {
Expand Down

0 comments on commit ff049c7

Please sign in to comment.