code: static boolean isAssociative(Token type) {
      switch (type) {
        case MUL:
        case AND:
        case OR:
        case BITOR:
        case BITXOR:
        case BITAND:
          return true;
        default:
          return false;
      }
    }
docs: Returns true if the operator is associative.
  e.g. (a * b) * c = a * (b * c)
  Note: "+" is not associative because it is also the concatenation
  for strings. e.g. "a" + (1 + 2) is not "a" + 1 + 2