fold maybe_bom and definitely_bom into start function in decoder
This commit is contained in:
parent
6ec70f8a46
commit
8f2087976a
1 changed files with 8 additions and 20 deletions
|
@ -163,30 +163,18 @@ handle_event(Event, {Handler, State}, _Config) ->
|
||||||
{Handler, Handler:handle_event(Event, State)}.
|
{Handler, Handler:handle_event(Event, State)}.
|
||||||
|
|
||||||
|
|
||||||
start(<<16#ef, Rest/binary>>, Handler, Stack, Config) ->
|
start(<<16#ef, 16#bb, 16#bf, Rest/binary>>, Handler, Stack, Config) ->
|
||||||
maybe_bom(Rest, Handler, Stack, Config);
|
value(Rest, Handler, Stack, Config);
|
||||||
|
start(<<16#ef, 16#bb>>, Handler, Stack, Config) ->
|
||||||
|
?incomplete(start, <<16#ef, 16#bb>>, Handler, Stack, Config);
|
||||||
|
start(<<16#ef>>, Handler, Stack, Config) ->
|
||||||
|
?incomplete(start, <<16#ef>>, Handler, Stack, Config);
|
||||||
start(<<>>, Handler, Stack, Config) ->
|
start(<<>>, Handler, Stack, Config) ->
|
||||||
?incomplete(start, <<>>, Handler, Stack, Config);
|
?incomplete(start, <<>>, Handler, Stack, Config);
|
||||||
start(Bin, Handler, Stack, Config) ->
|
start(Bin, Handler, Stack, Config) ->
|
||||||
value(Bin, Handler, Stack, Config).
|
value(Bin, Handler, Stack, Config).
|
||||||
|
|
||||||
|
|
||||||
maybe_bom(<<16#bb, Rest/binary>>, Handler, Stack, Config) ->
|
|
||||||
definitely_bom(Rest, Handler, Stack, Config);
|
|
||||||
maybe_bom(<<>>, Handler, Stack, Config) ->
|
|
||||||
?incomplete(start, <<16#ef>>, Handler, Stack, Config);
|
|
||||||
maybe_bom(Bin, Handler, Stack, Config) ->
|
|
||||||
?error(start, <<16#ef, Bin/binary>>, Handler, Stack, Config).
|
|
||||||
|
|
||||||
|
|
||||||
definitely_bom(<<16#bf, Rest/binary>>, Handler, Stack, Config) ->
|
|
||||||
value(Rest, Handler, Stack, Config);
|
|
||||||
definitely_bom(<<>>, Handler, Stack, Config) ->
|
|
||||||
?incomplete(start, <<16#ef, 16#bb>>, Handler, Stack, Config);
|
|
||||||
definitely_bom(Bin, Handler, Stack, Config) ->
|
|
||||||
?error(start, <<16#ef, 16#bb, Bin/binary>>, Handler, Stack, Config).
|
|
||||||
|
|
||||||
|
|
||||||
value(<<?doublequote, Rest/binary>>, Handler, Stack, Config) ->
|
value(<<?doublequote, Rest/binary>>, Handler, Stack, Config) ->
|
||||||
string(Rest, Handler, new_seq(), Stack, Config);
|
string(Rest, Handler, new_seq(), Stack, Config);
|
||||||
value(<<?singlequote, Rest/binary>>, Handler, Stack, Config = #config{single_quoted_strings=true}) ->
|
value(<<?singlequote, Rest/binary>>, Handler, Stack, Config = #config{single_quoted_strings=true}) ->
|
||||||
|
@ -1970,11 +1958,11 @@ custom_error_handler_test_() ->
|
||||||
Error = fun(State, Rest, _Handler, _Acc, _Stack, _Config) -> {State, Rest} end,
|
Error = fun(State, Rest, _Handler, _Acc, _Stack, _Config) -> {State, Rest} end,
|
||||||
[
|
[
|
||||||
{"maybe_bom error", ?_assertEqual(
|
{"maybe_bom error", ?_assertEqual(
|
||||||
{start, <<16#ef, 0>>},
|
{value, <<16#ef, 0>>},
|
||||||
Decode(<<16#ef, 0>>, [{error_handler, Error}])
|
Decode(<<16#ef, 0>>, [{error_handler, Error}])
|
||||||
)},
|
)},
|
||||||
{"definitely_bom error", ?_assertEqual(
|
{"definitely_bom error", ?_assertEqual(
|
||||||
{start, <<16#ef, 16#bb, 0>>},
|
{value, <<16#ef, 16#bb, 0>>},
|
||||||
Decode(<<16#ef, 16#bb, 0>>, [{error_handler, Error}])
|
Decode(<<16#ef, 16#bb, 0>>, [{error_handler, Error}])
|
||||||
)},
|
)},
|
||||||
{"value error", ?_assertEqual(
|
{"value error", ?_assertEqual(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue