code: public Term parse( TokenStream tokens ) {
          CheckArg.isNotNull(tokens, "tokens");
          List<Term> terms = new ArrayList<Term>();
          do {
              Term term = parseDisjunctedTerms(tokens);
              if (term == null) break;
              terms.add(term);
          } while (tokens.canConsume("OR"));
          if (terms.isEmpty()) return null;
          return terms.size() > 1 ? new Disjunction(terms) : terms.iterator().next();
      }
docs: Parse the full-text search criteria from the supplied token stream. This method is useful when the full-text search
  expression is included in other content.
  
  @param tokens the token stream containing the full-text search starting on the next token
  @return the term representation of the full-text search, or null if there are no terms
  @throws ParsingException if there is an error parsing the supplied string
  @throws IllegalArgumentException if the token stream is null