anchor.diff:  
   parse_accept_error_test_() ->
   	Tests = [
  -		<<>>,
  -		<<"   ">>,
   		<<"audio/basic, */;q=0.5">>,
   		<<"audio/, audio/basic">>,
   		<<"aud\tio/basic">>,
  
positive.code: 
  accept_value(<<>>, Acc, T, S, P, Q, E, K, V) -> lists:reverse([{{T, S, lists:reverse(P)}, Q, lists:reverse([{K, V}|E])}|Acc]);
  accept_value(<< $,, R/bits >>, Acc, T, S, P, Q, E, K, V) -> media_range_list(R, [{{T, S, lists:reverse(P)}, Q, lists:reverse([{K, V}|E])}|Acc]);
  accept_value(<< $;, R/bits >>, Acc, T, S, P, Q, E, K, V) -> accept_before_semicolon(R, Acc, T, S, P, Q, [{K, V}|E]);
  accept_value(<< $\s, R/bits >>, Acc, T, S, P, Q, E, K, V) -> accept_before_semicolon(R, Acc, T, S, P, Q, [{K, V}|E]);
  accept_value(<< $\t, R/bits >>, Acc, T, S, P, Q, E, K, V) -> accept_before_semicolon(R, Acc, T, S, P, Q, [{K, V}|E]);
  accept_value(<< C, R/bits >>, Acc, T, S, P, Q, E, K, V) when ?IS_TOKEN(C) -> accept_value(R, Acc, T, S, P, Q, E, K, << V/binary, C >>).
  
  -ifdef(TEST).
  parse_accept_test_() ->
  	Tests = [
  		{<<"audio/*; q=0.2, audio/basic">>, [
  			{{<<"audio">>, <<"*">>, []}, 200, []},
  			{{<<"audio">>, <<"basic">>, []}, 1000, []}
  
negative.code: unquote([], Acc) -> Acc;
  unquote([[$\\, C]|Tail], Acc) -> unquote(Tail, << Acc/binary, C >>);
  unquote([C|Tail], Acc) -> unquote(Tail, << Acc/binary, C >>).
  
  parameter() ->
  	?SUCHTHAT({K, _, _, _},
  		{token(), oneof([token(), quoted_string()]), ows(), ows()},
  		K =/= <<"q">>).
  
  weight() ->
  	frequency([
  		{90, int(0, 1000)},
  		{10, undefined}
  	]).
  
  %% Helper function for weight's qvalue formatting.
  qvalue_to_iodata(0) -> <<"0">>;
  qvalue_to_iodata(Q) when Q < 10 -> [<<"0.00">>, integer_to_binary(Q)];
  qvalue_to_iodata(Q) when Q < 100 -> [<<"0.0">>, integer_to_binary(Q)];
  qvalue_to_iodata(Q) when Q < 1000 -> [<<"0.">>, integer_to_binary(Q)];
  qvalue_to_iodata(1000) -> <<"1">>.
  -endif.
  
  %% @doc Parse the Accept header.
  