code: final public Selector JMSSetPredicate() throws ParseException {
                                 Selector id; List set; boolean neg=false;
      id = FieldRef();
      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
      case NOT:
        jj_consume_token(NOT);
                                neg = true;
        break;
      default:
        jj_la1[12] = jj_gen;
        ;
      }
      jj_consume_token(IN);
      set = SetString();
      Selector ans = ParseUtil.convertSet(id, set);
      if (neg) {if (true) return new OperatorImpl(Operator.NOT, ans);}
      else {if (true) return ans;}
      throw new Error("Missing return statement in function");
    }
docs: JMSSetPredicate ::= FieldRef ( <NOT> )? <IN> SetString