summaryrefslogtreecommitdiff
path: root/profile.c
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2016-10-16 10:25:02 +0300
committerArnold D. Robbins <arnold@skeeve.com>2016-10-16 10:25:02 +0300
commit2d63bc3ee2a686560d29e1eb7b433deb45fd7619 (patch)
tree21b3f2b5c0b1e4de312bd4227bf840d0ae4ee08c /profile.c
parent8b0d41a9bfe9e97c8580e40eb34c0a1889663b38 (diff)
downloadgawk-2d63bc3ee2a686560d29e1eb7b433deb45fd7619.tar.gz
Implement unary plus for real, including for pretty printing.
Diffstat (limited to 'profile.c')
-rw-r--r--profile.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/profile.c b/profile.c
index 623da3ff..f9c7c809 100644
--- a/profile.c
+++ b/profile.c
@@ -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;