code: private List<CssSelector> handleSelectors(CssToken start, CssTokenIterator iter,
        CssErrorHandler err) throws
        CssException
    {
  
      List<CssSelector> selectors = Lists.newArrayList();
      boolean end = false;
      while (true)
      { // comma loop
        CssSelector selector = new CssSelector(start.location);
        while (true)
        { //combinator loop
          CssSimpleSelectorSequence seq = cssSelectorFactory.createSimpleSelectorSequence(start, iter,
              err);
          if (seq == null)
          {
            //errors already issued
            return null;
          }
          selector.components.add(seq);
          int idx = iter.index();
          start = iter.next();
          if (MATCH_OPENBRACE.apply(start))
          {
            end = true;
            break;
          }
          if (MATCH_COMMA.apply(start))
          {
            break;
          }
  
          CssSelectorCombinator comb = cssSelectorFactory.createCombinator(start, iter, err);
          if (comb != null)
          {
            selector.components.add(comb);
            start = iter.next();
          }
          else if (iter.list.get(idx + 1).type == CssToken.Type.S)
          {
            selector.components.add(new CssSelectorCombinator(' ', start.location));
          }
          else
          {
            err.error(new CssGrammarException(GRAMMAR_UNEXPECTED_TOKEN, iter.last.location,
                messages.getLocale(), iter.last.chars));
            return null;
          }
        } //combinator loop
        selectors.add(selector);
        if (end)
        {
          break;
        }
        if (debug)
        {
          checkState(MATCH_COMMA.apply(start));
        }
        start = iter.next();
      } // comma loop
      return selectors;
    }
docs: With start inparam being the first significant token in a selector, build
  the selector group (aka comma separated selectors), expected return when
  iter.last is '{'. On error, issue to errorlistener, and return
  (caller will forward).
  
  @return A syntactically valid CssSelector list, or null if fail.
  @throws CssException