Various types of operators:
OTbinary binary
OTunary unary
OTleaf leaf
OTcommut commutative (e1 op e2) == (e2 op e1)
(assoc == !=)
OTassoc associative (e1 op (e2 op e3)) == ((e1 op e2) op e3)
(also commutative)
OTassign assignment = op= i++ i-- i=-i str=
OTpost post inc or post dec operator
OTeop0e if (e op 0) => e
OTeop00 if (e op 0) => 0
OTeop1e if (e op 1) => e
OTsideff there are side effects to the operator (assign call
post ?: && ||)
OTconv type conversion operator that could appear on lhs of
assignment operator
OTlogical logical operator (result is 0 or 1)
OTwid high order bits of operation are irrelevant
OTopeq an op= operator
OTop an operator that has a corresponding op=
OTcall function call
OTrtol operators that evaluate right subtree first then left
OTrel == != < <= > >= operators
OTrel2 < <= > >= operators
OTdef definition operator (assign call post asm)
OTae potential common subexpression operator
OTboolnop operation is a nop if boolean result is desired
Various types of operators: OTbinary binary OTunary unary OTleaf leaf OTcommut commutative (e1 op e2) == (e2 op e1) (assoc == !=) OTassoc associative (e1 op (e2 op e3)) == ((e1 op e2) op e3) (also commutative) OTassign assignment = op= i++ i-- i=-i str= OTpost post inc or post dec operator OTeop0e if (e op 0) => e OTeop00 if (e op 0) => 0 OTeop1e if (e op 1) => e OTsideff there are side effects to the operator (assign call post ?: && ||) OTconv type conversion operator that could appear on lhs of assignment operator OTlogical logical operator (result is 0 or 1) OTwid high order bits of operation are irrelevant OTopeq an op= operator OTop an operator that has a corresponding op= OTcall function call OTrtol operators that evaluate right subtree first then left OTrel == != < <= > >= operators OTrel2 < <= > >= operators OTdef definition operator (assign call post asm) OTae potential common subexpression operator OTboolnop operation is a nop if boolean result is desired