class Sass::Tree::RuleNode

def parse_selector(text)

def parse_selector(text)
  scanner = StringScanner.new(text)
  rules = [[]]
  while scanner.rest?
    rules.last << scanner.scan(/[^",&]*/)
    case scanner.scan(/./)
    when '&'; rules.last << :parent
    when ','
      scanner.scan(/\s*/)
      rules << [] if scanner.rest?
    when '"'
      rules.last << '"' << scanner.scan(/([^"\\]|\\.)*/)
      # We don't want to enforce that strings are closed,
      # but we do want to consume quotes or trailing backslashes.
      rules.last << scanner.scan(/./) if scanner.rest?
    end
  end
  rules.map! do |l|
    Haml::Util.merge_adjacent_strings(l).reject {|r| r.is_a?(String) && r.empty?}
  end
  rules
end