From 239bad36c1d5468de0752e8d59264358939a0713 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Wed, 30 Dec 2020 19:38:10 -0500 Subject: Add unary & to bit Also unary + and fix precedence of unary -. --- bin/bit.y | 4 +++- bin/man1/bit.1 | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'bin') diff --git a/bin/bit.y b/bin/bit.y index 61b6f465..2b2ee27c 100644 --- a/bin/bit.y +++ b/bin/bit.y @@ -63,7 +63,9 @@ expr: | expr 'G' { $$ = $1 << 30; } | expr 'T' { $$ = $1 << 40; } | '~' expr { $$ = ~$2; } - | '-' expr { $$ = -$2; } + | '&' expr %prec '~' { $$ = MASK($2); } + | '+' expr %prec '~' { $$ = +$2; } + | '-' expr %prec '~' { $$ = -$2; } | expr '*' expr { $$ = $1 * $3; } | expr '/' expr { $$ = $1 / $3; } | expr '%' expr { $$ = $1 % $3; } diff --git a/bin/man1/bit.1 b/bin/man1/bit.1 index 06fd182f..b91a10e1 100644 --- a/bin/man1/bit.1 +++ b/bin/man1/bit.1 @@ -27,6 +27,11 @@ The .Sy -> operator is used for arithmetic shift. .It +The unary +.Sy & +operator is equivalent to +.Sy (1 << x) - 1 . +.It The postfix operators .Sy K , .Sy M , -- cgit 1.4.1