diff options
| author | Luis Mochan <mochan@fis.unam.mx> | 2021-12-15 12:51:48 -0600 |
|---|---|---|
| committer | Luis Mochan <mochan@fis.unam.mx> | 2021-12-15 12:51:48 -0600 |
| commit | ac3232563d692f76a1493880b4bd4b5f3112be30 (patch) | |
| tree | 26b02850f083431ebe435c89313441ac24f5c45b | |
| parent | df286d0a88b12c8999eb7f1b54d8f15967c913a4 (diff) | |
| download | perlweeklychallenge-club-ac3232563d692f76a1493880b4bd4b5f3112be30.tar.gz perlweeklychallenge-club-ac3232563d692f76a1493880b4bd4b5f3112be30.tar.bz2 perlweeklychallenge-club-ac3232563d692f76a1493880b4bd4b5f3112be30.zip | |
Add unary +
| -rwxr-xr-x | challenge-143/wlmb/perl/ch-1.pl | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/challenge-143/wlmb/perl/ch-1.pl b/challenge-143/wlmb/perl/ch-1.pl index 4f0ebd8ec4..80c20d3932 100755 --- a/challenge-143/wlmb/perl/ch-1.pl +++ b/challenge-143/wlmb/perl/ch-1.pl @@ -60,12 +60,13 @@ sub term { sub simple { my $op=$token->[0]; my $val=$token->[1]; - die "Unrecognized expression: $previous\n" unless defined $op && $op=~/[-(N]/; + die "Unrecognized expression: $previous\n" unless defined $op && $op=~/[-+(N]/; token(); - return -simple() if $op eq '-'; - return $val if $op eq 'N'; - my $result=expression(); - $op=$token->[0]; + return -simple() if $op eq '-'; # unary - + return simple() if $op eq '+'; # unary + + return $val if $op eq 'N'; # number + my $result=expression(); # parenthesized expression + $op=$token->[0]; # closing parenthesis should follow die "Unbalanced parenthesis: $previous\n" unless defined $op and $op eq ')'; token(); return $result; |
