case MSGID: case ENVTO: case ENVFROM:
  final public ArrayList Query() throws ParseException, ServiceException {    ZimbraQuery.BaseQuery clause = null;    ArrayList clauses = new ArrayList();    int modifier;    SortBy();    modifier = Modifier();    clause = Clause();    SortBy();                                                            if (clause != null) { clause.setModifier(modifier); AddClause(clauses,clause); }    label_4:    while (true) {      switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {      case AND_TOKEN:      case OR_TOKEN:      case NOT_TOKEN:      case LPAREN:      case CONTENT:      case SUBJECT:      case FROM:      case TO:      case CC:      case IN:      case INID:      case HAS:      case FILENAME:      case TYPE:      case ATTACHMENT:      case IS:      case DATE:      case DAY:      case WEEK:      case MONTH:      case YEAR:      case AFTER:      case BEFORE:      case SIZE:      case BIGGER:      case SMALLER:      case TAG:      case MESSAGE:      case MY:      case CONV:      case CONV_COUNT:      case CONV_MINM:      case CONV_MAXM:      case CONV_START:      case CONV_END:      case AUTHOR:      case TITLE:      case KEYWORDS:      case COMPANY:      case METADATA:      case ITEM:      case PLUS:      case MINUS:      case TEXT_TOK:      case QUOTED_TOK:        ;        break;      default:        jj_la1[24] = jj_gen;        break label_4;      }      clause = Conjunction();                               AddClause(clauses,clause);      modifier = Modifier();      clause = Clause();      SortBy();                                                       if (clause != null) { clause.setModifier(modifier); AddClause(clauses,clause); }      SortBy();    }        {if (true) return clauses;}    throw new Error("Missing return statement in function");  }