diff options
-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); } ; |