diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2016-10-16 10:25:02 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2016-10-16 10:25:02 +0300 |
commit | 2d63bc3ee2a686560d29e1eb7b433deb45fd7619 (patch) | |
tree | 21b3f2b5c0b1e4de312bd4227bf840d0ae4ee08c /profile.c | |
parent | 8b0d41a9bfe9e97c8580e40eb34c0a1889663b38 (diff) | |
download | egawk-2d63bc3ee2a686560d29e1eb7b433deb45fd7619.tar.gz egawk-2d63bc3ee2a686560d29e1eb7b433deb45fd7619.tar.bz2 egawk-2d63bc3ee2a686560d29e1eb7b433deb45fd7619.zip |
Implement unary plus for real, including for pretty printing.
Diffstat (limited to 'profile.c')
-rw-r--r-- | profile.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -463,10 +463,13 @@ cleanup: case Op_field_spec: case Op_field_spec_lhs: case Op_unary_minus: + case Op_unary_plus: case Op_not: t1 = pp_pop(); if (is_binary(t1->type) - || (((OPCODE) t1->type) == pc->opcode && pc->opcode == Op_unary_minus)) + || (((OPCODE) t1->type) == pc->opcode + && (pc->opcode == Op_unary_minus + || pc->opcode == Op_unary_plus))) pp_parenthesize(t1); /* optypes table (eval.c) includes space after ! */ @@ -1198,6 +1201,7 @@ prec_level(int type) return 13; case Op_unary_minus: + case Op_unary_plus: case Op_not: return 12; @@ -1284,6 +1288,7 @@ is_scalar(int type) case Op_postincrement: case Op_postdecrement: case Op_unary_minus: + case Op_unary_plus: case Op_not: return true; |