summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandru Scvortov <alexandru@rabbitmq.com>2011-09-21 14:21:06 +0100
committerAlexandru Scvortov <alexandru@rabbitmq.com>2011-09-21 14:21:06 +0100
commit4023c4c30346021c4c8555f19f494ae8b5452bd9 (patch)
tree71669ced1543e4f2a58e413033bf961bb39092cc
parent2f65a2855729a185d2d6ea60b6f331c5cb832581 (diff)
downloadrabbitmq-server-4023c4c30346021c4c8555f19f494ae8b5452bd9.tar.gz
refactor
-rw-r--r--src/rabbit_file.erl28
1 files changed, 11 insertions, 17 deletions
diff --git a/src/rabbit_file.erl b/src/rabbit_file.erl
index b5a3f68a..0501e71c 100644
--- a/src/rabbit_file.erl
+++ b/src/rabbit_file.erl
@@ -119,23 +119,17 @@ read_term_file(File) ->
error:{badmatch, Error} -> Error
end.
-group_tokens([]) ->
- [];
-group_tokens([{_, N, _} | _] = Tokens) ->
- lists:reverse(group_tokens([], N, Tokens));
-group_tokens([{_, N} | _] = Tokens) ->
- lists:reverse(group_tokens([], N, Tokens)).
-
-group_tokens(Cur, _, []) ->
- [lists:reverse(Cur)];
-group_tokens(Cur, N, [Tok = {_, N} | Toks]) ->
- group_tokens([Tok | Cur], N, Toks);
-group_tokens(Cur, _, [{_, M} | _] = Toks) ->
- [lists:reverse(Cur) | group_tokens([], M, Toks)];
-group_tokens(Cur, N, [Tok = {_, N, _} | Toks]) ->
- group_tokens([Tok | Cur], N, Toks);
-group_tokens(Cur, _, [{_, M, _} | _] = Toks) ->
- [lists:reverse(Cur) | group_tokens([], M, Toks)].
+group_tokens(Ts) -> lists:reverse([lists:reverse(G) || G <- group_tokens1(Ts)]).
+
+group_tokens1([]) -> [];
+group_tokens1([{_, N, _} | _] = Tokens) -> group_tokens([], N, Tokens);
+group_tokens1([{_, N} | _] = Tokens) -> group_tokens([], N, Tokens).
+
+group_tokens(Cur, _, []) -> [Cur];
+group_tokens(Cur, N, [T = {_, N} | Toks]) -> group_tokens([T | Cur], N, Toks);
+group_tokens(Cur, _, [{_, M} | _] = Toks) -> [Cur | group_tokens([], M, Toks)];
+group_tokens(Cur, N, [T = {_, N, _} | Toks]) -> group_tokens([T | Cur], N, Toks);
+group_tokens(Cur, _, [{_, M, _} | _] = Toks) -> [Cur | group_tokens([], M, Toks)].
write_term_file(File, Terms) ->
write_file(File, list_to_binary([io_lib:format("~w.~n", [Term]) ||