code: public static int opPrec(JCTree.Tag op) {
          switch(op) {
          case POS:
          case NEG:
          case NOT:
          case COMPL:
          case PREINC:
          case PREDEC: return prefixPrec;
          case POSTINC:
          case POSTDEC:
          case NULLCHK: return postfixPrec;
          case ASSIGN: return assignPrec;
          case BITOR_ASG:
          case BITXOR_ASG:
          case BITAND_ASG:
          case SL_ASG:
          case SR_ASG:
          case USR_ASG:
          case PLUS_ASG:
          case MINUS_ASG:
          case MUL_ASG:
          case DIV_ASG:
          case MOD_ASG: return assignopPrec;
          case OR: return orPrec;
          case AND: return andPrec;
          case EQ:
          case NE: return eqPrec;
          case LT:
          case GT:
          case LE:
          case GE: return ordPrec;
          case BITOR: return bitorPrec;
          case BITXOR: return bitxorPrec;
          case BITAND: return bitandPrec;
          case SL:
          case SR:
          case USR: return shiftPrec;
          case PLUS:
          case MINUS: return addPrec;
          case MUL:
          case DIV:
          case MOD: return mulPrec;
          case TYPETEST: return ordPrec;
          default: throw new AssertionError();
          }
      }
docs: Map operators to their precedence levels.