changed end_of_json to end_json

This commit is contained in:
alisdair sullivan 2010-06-10 20:32:15 -07:00
parent e245d8aa92
commit 813058e2fb
7 changed files with 19 additions and 19 deletions

View file

@ -87,7 +87,7 @@ event({Type, Value}, [Array|Stack]) when is_list(Array) ->
event(reset, _) -> event(reset, _) ->
[]; [];
event(end_of_json, [Stack]) -> event(end_json, [Stack]) ->
Stack. Stack.

View file

@ -90,7 +90,7 @@ prettify({Type, Value}, {Acc, Indent, Level, key}) ->
prettify(reset, {_, Indent, _, _}) -> prettify(reset, {_, Indent, _, _}) ->
{[], Indent, 0, new}; {[], Indent, 0, new};
prettify(end_of_json, {Acc, _, _, _}) -> prettify(end_json, {Acc, _, _, _}) ->
Acc. Acc.

View file

@ -60,7 +60,7 @@ event({string, String}, capture) ->
event(reset, _) -> event(reset, _) ->
0; 0;
event(end_of_json, _) -> event(end_json, _) ->
throw(not_found); throw(not_found);
event(_, Level) -> event(_, Level) ->

View file

@ -55,7 +55,7 @@ parser() ->
parser([]). parser([]).
parser(Opts) -> parser(Opts) ->
F = fun(end_of_json, State) -> lists:reverse(State) F = fun(end_json, State) -> lists:reverse(State)
; (reset, _State) -> [] ; (reset, _State) -> []
; (Event, State) -> [Event] ++ State ; (Event, State) -> [Event] ++ State
end, end,

View file

@ -35,9 +35,9 @@
%% callbacks to our handler are roughly equivalent to a fold over the events, incremental %% callbacks to our handler are roughly equivalent to a fold over the events, incremental
%% rather than all at once. %% rather than all at once.
fold(end_of_json, {F, State}) -> fold(end_json, {F, State}) ->
F(end_of_json, State); F(end_json, State);
fold(Event, {F, State}) when is_function(F) -> fold(Event, {F, State}) ->
{F, F(Event, State)}. {F, F(Event, State)}.
@ -94,11 +94,11 @@ maybe_done(<<?comma/?encoding, Rest/binary>>, [array|_] = Stack, Callbacks, Opts
maybe_done(<<?solidus/?encoding, Rest/binary>>, Stack, Callbacks, ?comments_enabled(Opts)) -> maybe_done(<<?solidus/?encoding, Rest/binary>>, Stack, Callbacks, ?comments_enabled(Opts)) ->
maybe_comment(Rest, fun(Resume) -> maybe_done(Resume, Stack, Callbacks, Opts) end); maybe_comment(Rest, fun(Resume) -> maybe_done(Resume, Stack, Callbacks, Opts) end);
maybe_done(Bin, [], Callbacks, ?stream_mode(Opts)) -> maybe_done(Bin, [], Callbacks, ?stream_mode(Opts)) ->
{fold(end_of_json, Callbacks), fun(Stream) -> {fold(end_json, Callbacks), fun(Stream) ->
start(<<Bin/binary, Stream/binary>>, [], fold(reset, Callbacks), Opts) start(<<Bin/binary, Stream/binary>>, [], fold(reset, Callbacks), Opts)
end}; end};
maybe_done(<<>>, [], Callbacks, Opts) -> maybe_done(<<>>, [], Callbacks, Opts) ->
{fold(end_of_json, Callbacks), fun(Stream) -> maybe_done(Stream, [], Callbacks, Opts) end}; {fold(end_json, Callbacks), fun(Stream) -> maybe_done(Stream, [], Callbacks, Opts) end};
maybe_done(Bin, Stack, Callbacks, Opts) -> maybe_done(Bin, Stack, Callbacks, Opts) ->
case byte_size(Bin) >= ?symbol_size of case byte_size(Bin) >= ?symbol_size of
true -> {error, badjson} true -> {error, badjson}
@ -433,11 +433,11 @@ zero(<<?solidus/?encoding, Rest/binary>>, Stack, Callbacks, ?comments_enabled(Op
maybe_comment(Rest, fun(Resume) -> zero(Resume, Stack, Callbacks, Opts, Acc) end); maybe_comment(Rest, fun(Resume) -> zero(Resume, Stack, Callbacks, Opts, Acc) end);
zero(Bin, [], Callbacks, ?stream_mode(Opts), Acc) -> zero(Bin, [], Callbacks, ?stream_mode(Opts), Acc) ->
CB = fold({integer, lists:reverse(Acc)}, Callbacks), CB = fold({integer, lists:reverse(Acc)}, Callbacks),
{fold(end_of_json, CB), fun(Stream) -> {fold(end_json, CB), fun(Stream) ->
start(<<Bin/binary, Stream/binary>>, [], fold(reset, CB), Opts) start(<<Bin/binary, Stream/binary>>, [], fold(reset, CB), Opts)
end}; end};
zero(<<>>, [], Callbacks, Opts, Acc) -> zero(<<>>, [], Callbacks, Opts, Acc) ->
{fold(end_of_json, fold({integer, lists:reverse(Acc)}, Callbacks)), {fold(end_json, fold({integer, lists:reverse(Acc)}, Callbacks)),
fun(Stream) -> zero(Stream, [], Callbacks, Opts, Acc) end}; fun(Stream) -> zero(Stream, [], Callbacks, Opts, Acc) end};
zero(Bin, Stack, Callbacks, Opts, Acc) -> zero(Bin, Stack, Callbacks, Opts, Acc) ->
case byte_size(Bin) >= ?symbol_size of case byte_size(Bin) >= ?symbol_size of
@ -473,11 +473,11 @@ integer(<<?solidus/?encoding, Rest/binary>>, Stack, Callbacks, ?comments_enabled
maybe_comment(Rest, fun(Resume) -> integer(Resume, Stack, Callbacks, Opts, Acc) end); maybe_comment(Rest, fun(Resume) -> integer(Resume, Stack, Callbacks, Opts, Acc) end);
integer(Bin, [], Callbacks, ?stream_mode(Opts), Acc) -> integer(Bin, [], Callbacks, ?stream_mode(Opts), Acc) ->
CB = fold({integer, lists:reverse(Acc)}, Callbacks), CB = fold({integer, lists:reverse(Acc)}, Callbacks),
{fold(end_of_json, CB), fun(Stream) -> {fold(end_json, CB), fun(Stream) ->
start(<<Bin/binary, Stream/binary>>, [], fold(reset, CB), Opts) start(<<Bin/binary, Stream/binary>>, [], fold(reset, CB), Opts)
end}; end};
integer(<<>>, [], Callbacks, Opts, Acc) -> integer(<<>>, [], Callbacks, Opts, Acc) ->
{fold(end_of_json, fold({integer, lists:reverse(Acc)}, Callbacks)), {fold(end_json, fold({integer, lists:reverse(Acc)}, Callbacks)),
fun(Stream) -> integer(Stream, [], Callbacks, Opts, Acc) end}; fun(Stream) -> integer(Stream, [], Callbacks, Opts, Acc) end};
integer(Bin, Stack, Callbacks, Opts, Acc) -> integer(Bin, Stack, Callbacks, Opts, Acc) ->
case byte_size(Bin) >= ?symbol_size of case byte_size(Bin) >= ?symbol_size of
@ -525,11 +525,11 @@ decimal(<<?solidus/?encoding, Rest/binary>>, Stack, Callbacks, ?comments_enabled
maybe_comment(Rest, fun(Resume) -> decimal(Resume, Stack, Callbacks, Opts, Acc) end); maybe_comment(Rest, fun(Resume) -> decimal(Resume, Stack, Callbacks, Opts, Acc) end);
decimal(Bin, [], Callbacks, ?stream_mode(Opts), Acc) -> decimal(Bin, [], Callbacks, ?stream_mode(Opts), Acc) ->
CB = fold({float, lists:reverse(Acc)}, Callbacks), CB = fold({float, lists:reverse(Acc)}, Callbacks),
{fold(end_of_json, CB), fun(Stream) -> {fold(end_json, CB), fun(Stream) ->
start(<<Bin/binary, Stream/binary>>, [], fold(reset, CB), Opts) start(<<Bin/binary, Stream/binary>>, [], fold(reset, CB), Opts)
end}; end};
decimal(<<>>, [], Callbacks, Opts, Acc) -> decimal(<<>>, [], Callbacks, Opts, Acc) ->
{fold(end_of_json, fold({float, lists:reverse(Acc)}, Callbacks)), {fold(end_json, fold({float, lists:reverse(Acc)}, Callbacks)),
fun(Stream) -> decimal(Stream, [], Callbacks, Opts, Acc) end}; fun(Stream) -> decimal(Stream, [], Callbacks, Opts, Acc) end};
decimal(Bin, Stack, Callbacks, Opts, Acc) -> decimal(Bin, Stack, Callbacks, Opts, Acc) ->
case byte_size(Bin) >= ?symbol_size of case byte_size(Bin) >= ?symbol_size of
@ -585,11 +585,11 @@ exp(<<S/?encoding, Rest/binary>>, Stack, Callbacks, Opts, Acc) when ?is_whitespa
maybe_done(Rest, Stack, fold({float, lists:reverse(Acc)}, Callbacks), Opts); maybe_done(Rest, Stack, fold({float, lists:reverse(Acc)}, Callbacks), Opts);
exp(Bin, [], Callbacks, ?stream_mode(Opts), Acc) -> exp(Bin, [], Callbacks, ?stream_mode(Opts), Acc) ->
CB = fold({float, lists:reverse(Acc)}, Callbacks), CB = fold({float, lists:reverse(Acc)}, Callbacks),
{fold(end_of_json, CB), fun(Stream) -> {fold(end_json, CB), fun(Stream) ->
start(<<Bin/binary, Stream/binary>>, [], fold(reset, CB), Opts) start(<<Bin/binary, Stream/binary>>, [], fold(reset, CB), Opts)
end}; end};
exp(<<>>, [], Callbacks, Opts, Acc) -> exp(<<>>, [], Callbacks, Opts, Acc) ->
{fold(end_of_json, fold({float, lists:reverse(Acc)}, Callbacks)), {fold(end_json, fold({float, lists:reverse(Acc)}, Callbacks)),
fun(Stream) -> exp(Stream, [], Callbacks, Opts, Acc) end}; fun(Stream) -> exp(Stream, [], Callbacks, Opts, Acc) end};
exp(Bin, Stack, Callbacks, Opts, Acc) -> exp(Bin, Stack, Callbacks, Opts, Acc) ->
case byte_size(Bin) >= ?symbol_size of case byte_size(Bin) >= ?symbol_size of

View file

@ -43,7 +43,7 @@
| end_object | end_object
| start_array | start_array
| end_array | end_array
| end_of_json | end_json
| reset | reset
| {key, unicode_string()} | {key, unicode_string()}
| {string, unicode_string()} | {string, unicode_string()}

View file

@ -41,7 +41,7 @@ test(Dir) ->
decoder(Flags) -> decoder(Flags) ->
jsx:decoder({jsx_test, test_event, []}, Flags). jsx:decoder({jsx_test, test_event, []}, Flags).
test_event(end_of_json, Acc) -> test_event(end_json, Acc) ->
lists:reverse(Acc); lists:reverse(Acc);
test_event(Event, Acc) -> test_event(Event, Acc) ->
[Event] ++ Acc. [Event] ++ Acc.