Skip to content

Commit

Permalink
- Added deparsing support for %s(...) and %S(...);
Browse files Browse the repository at this point in the history
- Minor performance improvement for parsing hyper-operators -- the operator is no longer stored inside a Sidef string.
  • Loading branch information
trizen committed Aug 21, 2015
1 parent 622a7d9 commit 90df3cb
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 3 deletions.
6 changes: 6 additions & 0 deletions lib/Sidef/Deparse/Sidef.pm
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,12 @@ package Sidef::Deparse::Sidef {
$code = 'return';
}
}
elsif ($ref eq 'Sidef::Module::OO') {
$code = "%s($obj->{module})";
}
elsif ($ref eq 'Sidef::Module::Func') {
$code = "%S($obj->{module})";
}
elsif ($ref eq 'Sidef::Types::Block::Gather') {
if (exists $addr{refaddr($obj->{block})}) {
$code = '';
Expand Down
2 changes: 1 addition & 1 deletion lib/Sidef/Parser.pm
Original file line number Diff line number Diff line change
Expand Up @@ -1933,7 +1933,7 @@ package Sidef::Parser {
push @{$opt{array}},
{
method => $self->{hyper_ops}{$opt{op_type}}[1],
arg => [Sidef::Types::String::String->new($opt{method})],
arg => [$opt{method}],
};
}

Expand Down
3 changes: 1 addition & 2 deletions lib/Sidef/Types/Array/Array.pm
Original file line number Diff line number Diff line change
Expand Up @@ -39,12 +39,11 @@ package Sidef::Types::Array::Array {
sub unroll_operator {
my ($self, $operator, $arg) = @_;

my @array;

if (ref $operator) {
$operator = $operator->get_value;
}

my @array;
if (defined $arg) {
foreach my $i (0 .. $#{$self}) {
push @array, $self->[$i]->get_value->$operator($arg->[$i]->get_value);
Expand Down

0 comments on commit 90df3cb

Please sign in to comment.