code: static boolean isBinaryOperatorType(Token type) {
      switch (type) {
        case OR:
        case AND:
        case BITOR:
        case BITXOR:
        case BITAND:
        case EQ:
        case NE:
        case SHEQ:
        case SHNE:
        case LT:
        case GT:
        case LE:
        case GE:
        case INSTANCEOF:
        case IN:
        case LSH:
        case RSH:
        case URSH:
        case ADD:
        case SUB:
        case MUL:
        case DIV:
        case MOD:
        case EXPONENT:
          return true;
  
        default:
          return false;
      }
    }
docs: An operator with two operands that does not assign a value to either.
  Once you cut through the layers of rules, these all parse similarly, taking
  LeftHandSideExpression operands on either side.
  Comma is not included, because it takes AssignmentExpression operands, making its syntax
  different.