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 | 27fef8b782291fb68b643d67bdc2cc0757290591 (patch) | |
tree | 775f7cdf6a2f6ef3a4e5ebbfac904e1cc2d4dfd7 /bin | |
parent | Implement sizeof in order (diff) | |
download | src-27fef8b782291fb68b643d67bdc2cc0757290591.tar.gz src-27fef8b782291fb68b643d67bdc2cc0757290591.zip |
Support simple assignment in order
Diffstat (limited to 'bin')
-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 4327c00a..8700ded4 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); } ; |