class Crass::Parser

def parse_component_value(input = @tokens)

5.3.7. http://dev.w3.org/csswg/css-syntax-3/#parse-a-component-value

Parses a single component value and returns it.
def parse_component_value(input = @tokens)
  input = TokenScanner.new(input) unless input.is_a?(TokenScanner)
  while input.peek && input.peek[:node] == :whitespace
    input.consume
  end
  if input.peek.nil?
    return create_node(:error, :value => 'empty')
  end
  value = consume_component_value(input)
  while input.peek && input.peek[:node] == :whitespace
    input.consume
  end
  if input.peek.nil?
    value
  else
    create_node(:error, :value => 'extra-input')
  end
end