def parse
begin
@data.position = 0
@data.jump_to(';')
@data.position += 1
@data.skip
@data.jump_to('charset')
@data.position += 1
@data.skip
unless @data.current_byte == '='
return nil
end
@data.position += 1
@data.skip
if ['"', "'"].include?(@data.current_byte)
quote_mark = @data.current_byte
@data.position += 1
old_position = @data.position
@data.jump_to(quote_mark)
return @data[old_position ... @data.position]
else
old_position = @data.position
begin
@data.find_next(SPACE_CHARACTERS)
return @data[old_position ... @data.position]
rescue EOF
return @data[old_position .. -1]
end
end
rescue EOF
return nil
end
end