diff --git a/examples/jsx_parser.erl b/examples/jsx_parser.erl index 2f47637..3a25f33 100644 --- a/examples/jsx_parser.erl +++ b/examples/jsx_parser.erl @@ -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. diff --git a/examples/jsx_prettify.erl b/examples/jsx_prettify.erl index da6c97b..a52b8e8 100644 --- a/examples/jsx_prettify.erl +++ b/examples/jsx_prettify.erl @@ -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. diff --git a/examples/jsx_stream_parser.erl b/examples/jsx_stream_parser.erl index 60fc96d..0e28888 100644 --- a/examples/jsx_stream_parser.erl +++ b/examples/jsx_stream_parser.erl @@ -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) -> diff --git a/src/jsx.erl b/src/jsx.erl index e2aeffc..a8ddf8f 100644 --- a/src/jsx.erl +++ b/src/jsx.erl @@ -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) -> diff --git a/src/jsx_decoder.erl b/src/jsx_decoder.erl index ad27430..7c82b00 100644 --- a/src/jsx_decoder.erl +++ b/src/jsx_decoder.erl @@ -75,11 +75,11 @@ maybe_done(<>, Stack, Callbacks, Opts) when Opts#opt maybe_done(<>, 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(<>, [], 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(<>, Stack, Callbacks, Opts, Acc) when ?is_whitespace(S zero(<>, Stack, Callbacks, Opts, Acc) when Opts#opts.comments == true -> maybe_comment(Rest, fun(Resume) -> zero(Resume, Stack, Callbacks, Opts, Acc) end); zero(<>, [], 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(<>, Stack, Callbacks, Opts, Acc) when ?is_whitespac integer(<>, 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(<>, Stack, Callbacks, Opts, Acc) when ?is_whitespa fraction(<>, Stack, Callbacks, Opts, Acc) when Opts#opts.comments == true -> maybe_comment(Rest, fun(Resume) -> fraction(Resume, Stack, Callbacks, Opts, Acc) end); fraction(<>, [], 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(<>, Stack, Callbacks, Opts, Acc) when ?is_whitespace(S) exp(<>, Stack, Callbacks, Opts, Acc) when Opts#opts.comments == true -> maybe_comment(Rest, fun(Resume) -> exp(Resume, Stack, Callbacks, Opts, Acc) end); exp(<>, [], 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)}.