summary refs log tree commit diff
path: root/bin/bit.y
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-12-30 19:38:10 -0500
committerJune McEnroe <june@causal.agency>2020-12-30 19:38:10 -0500
commitde4fbddfffe9c3cf39114608e3d3e5268c3cc2e4 (patch)
tree090f384940e79437b54dbf795b209d8fa1c06a31 /bin/bit.y
parentSupport unary + in order (diff)
downloadsrc-de4fbddfffe9c3cf39114608e3d3e5268c3cc2e4.tar.gz
src-de4fbddfffe9c3cf39114608e3d3e5268c3cc2e4.zip
Add unary & to bit
Also unary + and fix precedence of unary -.
Diffstat (limited to 'bin/bit.y')
-rw-r--r--bin/bit.y4
1 files changed, 3 insertions, 1 deletions
diff --git a/bin/bit.y b/bin/bit.y
index 583a0280..33347ff5 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; }