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 | c9fdc19d6bb19138f87bb0f2ec9a8ccc337943ec (patch) | |
| tree | 71669ced1543e4f2a58e413033bf961bb39092cc | |
| parent | 6bf02299e9793e976f5da1aa5be4087d49d64ee2 (diff) | |
| download | rabbitmq-server-git-c9fdc19d6bb19138f87bb0f2ec9a8ccc337943ec.tar.gz | |
refactor
| -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 b5a3f68a95..0501e71ca8 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]) || |
