def parse_selector(value, name = nil, allow_parent_ref = false)
      str = normalize_selector(value, name)
      begin
        Sass::SCSS::StaticParser.new(str, nil, nil, 1, 1, allow_parent_ref).parse_selector
      rescue Sass::SyntaxError => e
        err = "#{value.inspect} is not a valid selector: #{e}"
        err = "$#{name.to_s.tr('_', '-')}: #{err}" if name
        raise ArgumentError.new(err)
      end
    end
def parse_selector(value, name = nil, allow_parent_ref = false)
      str = normalize_selector(value, name)
      begin
        Sass::SCSS::StaticParser.new(str, nil, nil, 1, 1, allow_parent_ref).parse_selector
      rescue Sass::SyntaxError => e
        err = "#{value.inspect} is not a valid selector: #{e}"
        err = "$#{name.to_s.tr('_', '-')}: #{err}" if name
        raise ArgumentError.new(err)
      end
    end
Parses a user-provided selector.

 @param value [Sass::Script::Value::String, Sass::Script::Value::List]
   The selector to parse. This can be either a string, a list of
   strings, or a list of lists of strings as returned by `&`.
 @param name [Symbol, nil]
   If provided, the name of the selector argument. This is used
   for error reporting.
 @param allow_parent_ref [Boolean]
   Whether the parsed selector should allow parent references.
 @return [Sass::Selector::CommaSequence] The parsed selector.
 @throw [ArgumentError] if the parse failed for any reason.