101102103104105106107
Term term = parseTerm(tokens); if (term == null) break; terms.add(term); } while (tokens.hasNext() && !tokens.matches("OR")); if (terms.isEmpty()) return null; return terms.size() > 1 ? new Conjunction(terms) : terms.iterator().next(); }