class Crass::Parser
def parse_properties(input = @tokens)
(and any non-declaration nodes that were in the input). This is useful for
Parses a list of declarations and returns an array of `:property` nodes
def parse_properties(input = @tokens) properties = [] parse_declarations(input).each do |decl| unless decl[:node] == :declaration properties << decl next end children = decl[:value].dup children.pop if children.last && children.last[:node] == :semicolon properties << create_node(:property, :name => decl[:name], :value => parse_value(decl[:value]), :children => children, :important => decl[:important], :tokens => decl[:tokens]) end properties end