code: static JCTree.Tag optag(TokenKind token) {
          switch (token) {
          case BARBAR:
              return OR;
          case AMPAMP:
              return AND;
          case BAR:
              return BITOR;
          case BAREQ:
              return BITOR_ASG;
          case CARET:
              return BITXOR;
          case CARETEQ:
              return BITXOR_ASG;
          case AMP:
              return BITAND;
          case AMPEQ:
              return BITAND_ASG;
          case EQEQ:
              return JCTree.Tag.EQ;
          case BANGEQ:
              return NE;
          case LT:
              return JCTree.Tag.LT;
          case GT:
              return JCTree.Tag.GT;
          case LTEQ:
              return LE;
          case GTEQ:
              return GE;
          case LTLT:
              return SL;
          case LTLTEQ:
              return SL_ASG;
          case GTGT:
              return SR;
          case GTGTEQ:
              return SR_ASG;
          case GTGTGT:
              return USR;
          case GTGTGTEQ:
              return USR_ASG;
          case PLUS:
              return JCTree.Tag.PLUS;
          case PLUSEQ:
              return PLUS_ASG;
          case SUB:
              return MINUS;
          case SUBEQ:
              return MINUS_ASG;
          case STAR:
              return MUL;
          case STAREQ:
              return MUL_ASG;
          case SLASH:
              return DIV;
          case SLASHEQ:
              return DIV_ASG;
          case PERCENT:
              return MOD;
          case PERCENTEQ:
              return MOD_ASG;
          case INSTANCEOF:
              return TYPETEST;
          default:
              return NO_TAG;
          }
      }
docs: Return operation tag of binary operator represented by token,
  No_TAG if token is not a binary operator.