-Each ARG is an arithmetic expression to be evaluated. Evaluation
-is done in long integers with no check for overflow, though division
-by 0 is trapped and flagged as an error. The following list of
-operators is grouped into levels of equal-precedence operators.
-The levels are listed in order of decreasing precedence.
-
- - unary minus
- ! logical NOT
- * / % multiplication, division, remainder
- + - addition, subtraction
- <= >= < > comparison
- == != equality inequality
- = assignment
+Evaluate arithmetic expressions.
+
+Evaluate each ARG as an arithmetic expression. Evaluation is done in
+fixed-width integers with no check for overflow, though division by 0
+is trapped and flagged as an error. The following list of operators is
+grouped into levels of equal-precedence operators. The levels are listed
+in order of decreasing precedence.
+
+ id++, id-- variable post-increment, post-decrement
+ ++id, --id variable pre-increment, pre-decrement
+ -, + unary minus, plus
+ !, ~ logical and bitwise negation
+ ** exponentiation
+ *, /, % multiplication, division, remainder
+ +, - addition, subtraction
+ <<, >> left and right bitwise shifts
+ <=, >=, <, > comparison
+ ==, != equality, inequality
+ & bitwise AND
+ ^ bitwise XOR
+ | bitwise OR
+ && logical AND
+ || logical OR
+ expr ? expr : expr
+ conditional operator
+ =, *=, /=, %=,
+ +=, -=, <<=, >>=,
+ &=, ^=, |= assignment