Precedence
     Operator              Associativity
     ()                 Left to right
unary: ++   --   !   +   -  (cast)                 Right to left
      *      /      %                Left to right
        +     -                 Left to right
      <     <=     >     >=              Left to right
      ==   !=     &               Left to right
      ^                 Left to right
      |                  Left to right
      &&                  Left to right
      ||                  Left to right
      ? :                 Right to left
      =     +=     -=     *=     /=           Right to left