class Crass::Tokenizer

def consume_unicode_range

4.3.7. http://dev.w3.org/csswg/css-syntax/#consume-a-unicode-range-token

"U+" has already been consumed.
Consumes a Unicode range token and returns it. Assumes the initial "u+" or
def consume_unicode_range
  value = @s.scan(RE_HEX) || String.new
  while value.length < 6
    break unless @s.peek == '?'
    value << @s.consume
  end
  range = {}
  if value.include?('?')
    range[:start] = value.gsub('?', '0').hex
    range[:end]   = value.gsub('?', 'F').hex
    return create_token(:unicode_range, range)
  end
  range[:start] = value.hex
  if @s.peek(2) =~ RE_UNICODE_RANGE_END
    @s.consume
    range[:end] = (@s.scan(RE_HEX) || '').hex
  else
    range[:end] = range[:start]
  end
  create_token(:unicode_range, range)
end