Skip to content

Commit

Permalink
- nil values are now displayed correctly in interactive mode (-i)
Browse files Browse the repository at this point in the history
- Minor changes and improvements in Sidef and Perl deparsers.# Please enter the commit message for your changes. Lines starting
  • Loading branch information
trizen committed Nov 22, 2015
1 parent 70b4957 commit adebde5
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 14 deletions.
3 changes: 2 additions & 1 deletion bin/sidef
Original file line number Diff line number Diff line change
Expand Up @@ -501,7 +501,8 @@ EOT
? "$result"
: eval { $result->can('dump') } ? $result->dump
: $result
: $result
: defined($result) ? $result
: 'nil'
);
}
redo;
Expand Down
18 changes: 9 additions & 9 deletions lib/Sidef/Deparse/Perl.pm
Original file line number Diff line number Diff line change
Expand Up @@ -1033,8 +1033,8 @@ HEADER

# Check arity
@args == 1
or die "[ERROR] Incorrect number of arguments for $obj->{act}\() in"
. " `$obj->{file}' at line $obj->{line} (expected 1 argument)\n";
or die "[ERROR] Incorrect number of arguments for $obj->{act}\() at"
. " $obj->{file} line $obj->{line} (expected 1 argument)\n";

# Generate code
$code = qq~do{do{$args[0]} or CORE::die "$obj->{act}\Q$obj->{code}\E failed ~
Expand All @@ -1045,7 +1045,7 @@ HEADER
# Check arity
@args == 2
or die "[ERROR] Incorrect number of arguments for $obj->{act}\() at"
. " `$obj->{file}' line $obj->{line} (expected 2 arguments)\n";
. " $obj->{file} line $obj->{line} (expected 2 arguments)\n";

# Generate code
$code = "do{"
Expand All @@ -1061,12 +1061,6 @@ HEADER
my @args = $self->deparse_args($obj->{arg});
$code = qq~Sidef::Types::Bool::Bool->new(CORE::warn(@args, " at \Q$obj->{file}\E line $obj->{line}\\n"))~;
}
elsif ($ref eq 'Sidef::Parser') {
$code = $ref . '->new';
}
elsif ($ref eq 'Sidef') {
$code = $self->make_constant($ref, 'new', "Sidef$refaddr");
}
elsif ($ref eq 'Sidef::Object::Object') {
$code = $self->make_constant($ref, 'new', "Object$refaddr");
}
Expand Down Expand Up @@ -1104,6 +1098,12 @@ HEADER
elsif ($ref eq 'Sidef::Types::Glob::Pipe') {
$code = $self->make_constant($ref, 'new', "Pipe$refaddr", map { $self->_dump_string($_) } @{$obj});
}
elsif ($ref eq 'Sidef::Parser') {
$code = $ref . '->new';
}
elsif ($ref eq 'Sidef') {
$code = $self->make_constant($ref, 'new', "Sidef$refaddr");
}

# Array indices
if (exists $expr->{ind}) {
Expand Down
9 changes: 6 additions & 3 deletions lib/Sidef/Deparse/Sidef.pm
Original file line number Diff line number Diff line change
Expand Up @@ -331,11 +331,14 @@ package Sidef::Deparse::Sidef {
elsif ($ref eq 'Sidef::Meta::Assert') {
$code = $obj->{act} . $self->deparse_args($obj->{arg});
}
elsif ($ref eq 'Sidef::Meta::Error' or $ref eq 'Sidef::Meta::Warning') {
$code = $obj->{act} . $self->deparse_args($obj->{arg});
elsif ($ref eq 'Sidef::Meta::Error') {
$code = 'die' . $self->deparse_args($obj->{arg});
}
elsif ($ref eq 'Sidef::Meta::Warning') {
$code = 'warn' . $self->deparse_args($obj->{arg});
}
elsif ($ref eq 'Sidef::Eval::Eval') {
$code = 'eval(' . $self->deparse_script($obj->{expr}) . ')';
$code = 'eval' . $self->deparse_args($obj->{expr});
}
elsif ($ref eq 'Sidef::Parser') {
$code = 'Parser';
Expand Down
1 change: 0 additions & 1 deletion lib/Sidef/Parser.pm
Original file line number Diff line number Diff line change
Expand Up @@ -1652,7 +1652,6 @@ package Sidef::Parser {
: "Sidef::Meta::Warning"
)->new(
arg => $arg,
act => $action,
line => $self->{line},
file => $self->{file_name},
)
Expand Down

0 comments on commit adebde5

Please sign in to comment.