class Sass::CSS

def rule

Returns:
  • (Tree::Node) - The parsed rule
def rule
  rule = ""
  loop do
    token = @template.scan(/(?:[^\{\};\/\s]|\/[^*])+/)
    if token.nil?
      return if rule.empty?
      break
    end
    rule << token
    break unless @template.match?(/\s|\/\*/)
    whitespace
    rule << " "
  end
  rule.strip!
  directive = rule[0] == ?@
  if directive
    node = Tree::DirectiveNode.new(rule)
    return node if @template.scan(/;/)
    assert_match /\{/
    whitespace
    rules(node)
    return node
  end
  assert_match /\{/
  node = Tree::RuleNode.new(rule)
  properties(node)
  return node
end