def next_selector(statement, values)
      second = Selector.new(statement, values)
      # If there are alternate selectors, we group them in the top selector.
      if alternates = second.instance_variable_get(:@alternates)
        second.instance_variable_set(:@alternates, nil)
        (@alternates ||= []).concat alternates
      end
      second
    end
def next_selector(statement, values)
      second = Selector.new(statement, values)
      # If there are alternate selectors, we group them in the top selector.
      if alternates = second.instance_variable_get(:@alternates)
        second.instance_variable_set(:@alternates, nil)
        (@alternates ||= []).concat alternates
      end
      second
    end
Called to create a dependent selector (sibling, descendant, etc).
 Passes the remainder of the statement that will be reduced to zero
 eventually, and array of substitution values.

 This method is called from four places, so it helps to put it here
 for resue. The only logic deals with the need to detect comma
 separators (alternate) and apply them to the selector group of the
 top selector.