diff options
author | June McEnroe <june@causal.agency> | 2019-05-15 23:19:00 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2019-05-15 23:19:00 -0400 |
commit | 43730738b397cf1a501dde5d9aad0da0215d9fc7 (patch) | |
tree | 13d402082b94d04259c067251199318efcb70a9a | |
parent | Implement sizeof in order (diff) | |
download | src-43730738b397cf1a501dde5d9aad0da0215d9fc7.tar.gz src-43730738b397cf1a501dde5d9aad0da0215d9fc7.zip |
Support simple assignment in order
-rw-r--r-- | bin/man1/order.1 | 2 | ||||
-rw-r--r-- | bin/order.y | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/bin/man1/order.1 b/bin/man1/order.1 index 5a01ab4b..2eb730f1 100644 --- a/bin/man1/order.1 +++ b/bin/man1/order.1 @@ -31,4 +31,4 @@ $ order 'a & b << 1' does not support the .Sy (type) operator -or the assignment operators. +or the compound assignment operators. diff --git a/bin/order.y b/bin/order.y index 83d6a37f..a7bb817f 100644 --- a/bin/order.y +++ b/bin/order.y @@ -44,9 +44,10 @@ static int yylex(void); %} -%token Var Arr Inc Dec Sizeof Shl Shr Le Ge Eq Ne And Or +%token Var %left ',' +%right '=' %right '?' ':' %left Or %left And @@ -102,6 +103,7 @@ expr: | expr And expr { $$ = fmt("(%s && %s)", $1, $3); } | expr Or expr { $$ = fmt("(%s || %s)", $1, $3); } | expr '?' expr ':' expr { $$ = fmt("(%s ? %s : %s)", $1, $3, $5); } + | expr '=' expr { $$ = fmt("(%s = %s)", $1, $3); } | expr ',' expr { $$ = fmt("(%s, %s)", $1, $3); } ; |