summary refs log tree commit diff
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
commit239bad36c1d5468de0752e8d59264358939a0713 (patch)
treefc66228e70eaf305c3f646b2521c4236efb8b3fd
parentSupport unary + in order (diff)
downloadsrc-239bad36c1d5468de0752e8d59264358939a0713.tar.gz
src-239bad36c1d5468de0752e8d59264358939a0713.zip
Add unary & to bit
Also unary + and fix precedence of unary -.
Diffstat (limited to '')
-rw-r--r--bin/bit.y4
-rw-r--r--bin/man1/bit.15
2 files changed, 8 insertions, 1 deletions
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 ,
021-01-20Use mtags for sh in source-filterJune McEnroe 2021-01-20Generate tags for sh files in mtagsJune McEnroe Only matches functions declared at the beginnings of lines, but I'm fine with that. 2021-01-20Add messy sh lexerJune McEnroe Surprisingly seems to work for everything I looked at in my repos. 2021-01-20Add all target to git.causal.agency MakefileJune McEnroe 2021-01-20Remove Lua supportJune McEnroe Lua support is unused and the dlsym fwrite/write hacks horrify me. Clean it up. 2021-01-20Fix tests for diff spansJune McEnroe 2021-01-20Avoid matching ':' in make tagsJune McEnroe Otherwise a :: rule includes one of the ':'s in the tag name. 2021-01-19Prefer tag matches not preceded by [[:alnum:]]June McEnroe Otherwise the "id" in "void" matches for "void id". 2021-01-19Escape \ and / in mtags search patternsJune McEnroe 2021-01-20Use mtags in source-filterJune McEnroe 2021-01-19Add mtags to generate tags for make and mdocJune McEnroe 2021-01-19Map tags to IDs using only [[:alnum:]-._]June McEnroe 2021-01-19Don't use a pager if reading standard inputJune McEnroe 2021-01-19Support BSD make syntax and match *.amJune McEnroe These don't really go together, but... 2021-01-19Match tab following escaped newline in make assignmentsJune McEnroe Otherwise it ends up going into Shell state. 2021-01-18Allow matching lexers using first input lineJune McEnroe