private static With parseWith(Iterator<String> it) throws ParseException {
if (!it.hasNext()) {
throw new ParseException("query too short, with must be followed by a field name");
}
String field = ensureField(it.next());
Operator operator;
if (!it.hasNext()) {
throw new ParseException("query too short, with /field/ must be followed by an operator");
}
String token = it.next();
switch(token) {