changed end of parsing token from eof to completed_parse
This commit is contained in:
parent
1c5f54574c
commit
6deb3160ba
5 changed files with 12 additions and 12 deletions
|
@ -82,7 +82,7 @@ event({Type, Value}, [{key, Key}, Object|Stack]) ->
|
|||
event({Type, Value}, [Array|Stack]) when is_list(Array) ->
|
||||
[[?MODULE:Type(Value)] ++ Array] ++ Stack;
|
||||
|
||||
event(eof, [Stack]) ->
|
||||
event(completed_parse, [Stack]) ->
|
||||
Stack.
|
||||
|
||||
|
||||
|
|
|
@ -88,7 +88,7 @@ jsx_event({Type, Value}, {Acc, Indent, Level, new}) ->
|
|||
jsx_event({Type, Value}, {Acc, Indent, Level, key}) ->
|
||||
{Acc ++ format(Type, Value), Indent, Level, value};
|
||||
|
||||
jsx_event(eof, {Acc, _, _, _}) ->
|
||||
jsx_event(completed_parse, {Acc, _, _, _}) ->
|
||||
Acc.
|
||||
|
||||
|
||||
|
|
|
@ -57,7 +57,7 @@ event({key, "_id"}, 1) ->
|
|||
event({string, String}, capture) ->
|
||||
throw({ok, String});
|
||||
|
||||
event(eof, _) ->
|
||||
event(completed_parse, _) ->
|
||||
throw(not_found);
|
||||
|
||||
event(_, Level) ->
|
||||
|
|
|
@ -33,7 +33,7 @@ decoder() ->
|
|||
decoder([]).
|
||||
|
||||
decoder(Opts) ->
|
||||
F = fun(eof, State) -> lists:reverse(State) ;(Event, State) -> [Event] ++ State end,
|
||||
F = fun(completed_parse, State) -> lists:reverse(State) ;(Event, State) -> [Event] ++ State end,
|
||||
decoder({F, []}, Opts).
|
||||
|
||||
decoder({F, _} = Callbacks, OptsList) when is_list(OptsList), is_function(F) ->
|
||||
|
|
|
@ -75,11 +75,11 @@ maybe_done(<<?solidus/utf8, Rest/binary>>, Stack, Callbacks, Opts) when Opts#opt
|
|||
maybe_done(<<S/utf8, Rest/binary>>, Stack, Callbacks, Opts) when ?is_whitespace(S) ->
|
||||
maybe_done(Rest, Stack, Callbacks, Opts);
|
||||
maybe_done(<<>>, [], Callbacks, Opts) when Opts#opts.explicit_termination == true ->
|
||||
fun(<<>>) -> {fold(eof, Callbacks), <<>>}
|
||||
fun(<<>>) -> {fold(completed_parse, Callbacks), <<>>}
|
||||
;(Stream) -> maybe_done(Stream, [], Callbacks, Opts)
|
||||
end;
|
||||
maybe_done(<<Rest/binary>>, [], Callbacks, _Opts) ->
|
||||
{fold(eof, Callbacks), Rest};
|
||||
{fold(completed_parse, Callbacks), Rest};
|
||||
maybe_done(<<>>, Stack, Callbacks, Opts) ->
|
||||
fun(Stream) -> maybe_done(Stream, Stack, Callbacks, Opts) end.
|
||||
|
||||
|
@ -264,7 +264,7 @@ zero(<<S/utf8, Rest/binary>>, Stack, Callbacks, Opts, Acc) when ?is_whitespace(S
|
|||
zero(<<?solidus/utf8, Rest/binary>>, Stack, Callbacks, Opts, Acc) when Opts#opts.comments == true ->
|
||||
maybe_comment(Rest, fun(Resume) -> zero(Resume, Stack, Callbacks, Opts, Acc) end);
|
||||
zero(<<Rest/binary>>, [], Callbacks, Opts, Acc) when Opts#opts.explicit_termination == true ->
|
||||
fun(<<>>) -> {fold(eof, fold({number, lists:reverse(Acc)}, Callbacks)), Rest}
|
||||
fun(<<>>) -> {fold(completed_parse, fold({number, lists:reverse(Acc)}, Callbacks)), Rest}
|
||||
;(Stream) -> zero(Stream, [], Callbacks, Opts, Acc)
|
||||
end;
|
||||
zero(<<>>, Stack, Callbacks, Opts, Acc) ->
|
||||
|
@ -295,7 +295,7 @@ integer(<<S/utf8, Rest/binary>>, Stack, Callbacks, Opts, Acc) when ?is_whitespac
|
|||
integer(<<?solidus/utf8, Rest/binary>>, Stack, Callbacks, Opts, Acc) when Opts#opts.comments == true ->
|
||||
maybe_comment(Rest, fun(Resume) -> integer(Resume, Stack, Callbacks, Opts, Acc) end);
|
||||
integer(<<>> = Rest, [], Callbacks, Opts, Acc) when Opts#opts.explicit_termination == true ->
|
||||
fun(<<>>) -> {fold(eof, fold({number, lists:reverse(Acc)}, Callbacks)), Rest}
|
||||
fun(<<>>) -> {fold(completed_parse, fold({number, lists:reverse(Acc)}, Callbacks)), Rest}
|
||||
;(Stream) -> integer(Stream, [], Callbacks, Opts, Acc)
|
||||
end;
|
||||
integer(<<>>, Stack, Callbacks, Opts, Acc) ->
|
||||
|
@ -323,7 +323,7 @@ fraction(<<S/utf8, Rest/binary>>, Stack, Callbacks, Opts, Acc) when ?is_whitespa
|
|||
fraction(<<?solidus/utf8, Rest/binary>>, Stack, Callbacks, Opts, Acc) when Opts#opts.comments == true ->
|
||||
maybe_comment(Rest, fun(Resume) -> fraction(Resume, Stack, Callbacks, Opts, Acc) end);
|
||||
fraction(<<Rest/binary>>, [], Callbacks, Opts, Acc) when Opts#opts.explicit_termination == true ->
|
||||
fun(<<>>) -> {fold(eof, fold({number, lists:reverse(Acc)}, Callbacks)), Rest}
|
||||
fun(<<>>) -> {fold(completed_parse, fold({number, lists:reverse(Acc)}, Callbacks)), Rest}
|
||||
;(Stream) -> fraction(Stream, [], Callbacks, Opts, Acc)
|
||||
end;
|
||||
fraction(<<>>, Stack, Callbacks, Opts, Acc) ->
|
||||
|
@ -361,7 +361,7 @@ exp(<<S/utf8, Rest/binary>>, Stack, Callbacks, Opts, Acc) when ?is_whitespace(S)
|
|||
exp(<<?solidus/utf8, Rest/binary>>, Stack, Callbacks, Opts, Acc) when Opts#opts.comments == true ->
|
||||
maybe_comment(Rest, fun(Resume) -> exp(Resume, Stack, Callbacks, Opts, Acc) end);
|
||||
exp(<<Rest/binary>>, [], Callbacks, Opts, Acc) when Opts#opts.explicit_termination == true ->
|
||||
fun(<<>>) -> {fold(eof, fold({number, lists:reverse(Acc)}, Callbacks)), Rest}
|
||||
fun(<<>>) -> {fold(completed_parse, fold({number, lists:reverse(Acc)}, Callbacks)), Rest}
|
||||
;(Stream) -> exp(Stream, [], Callbacks, Opts, Acc)
|
||||
end;
|
||||
exp(<<>>, Stack, Callbacks, Opts, Acc) ->
|
||||
|
@ -457,8 +457,8 @@ maybe_comment_done(<<>>, Resume) ->
|
|||
%% callbacks to our handler are roughly equivalent to a fold over the events, incremental
|
||||
%% rather than all at once.
|
||||
|
||||
fold(eof, {F, State}) ->
|
||||
F(eof, State);
|
||||
fold(completed_parse, {F, State}) ->
|
||||
F(completed_parse, State);
|
||||
fold(Event, {F, State}) when is_function(F) ->
|
||||
{F, F(Event, State)}.
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue