diff options
author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-09-21 14:21:06 +0100 |
---|---|---|
committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-09-21 14:21:06 +0100 |
commit | 4023c4c30346021c4c8555f19f494ae8b5452bd9 (patch) | |
tree | 71669ced1543e4f2a58e413033bf961bb39092cc /src/rabbit_file.erl | |
parent | 2f65a2855729a185d2d6ea60b6f331c5cb832581 (diff) | |
download | rabbitmq-server-4023c4c30346021c4c8555f19f494ae8b5452bd9.tar.gz |
refactor
Diffstat (limited to 'src/rabbit_file.erl')
-rw-r--r-- | src/rabbit_file.erl | 28 |
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]) || |