diff options
author | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-09-22 17:23:23 +0100 |
---|---|---|
committer | Alexandru Scvortov <alexandru@rabbitmq.com> | 2011-09-22 17:23:23 +0100 |
commit | 3889d0d67e4670dd244964d3fe43aa11d68ad466 (patch) | |
tree | 55071f2aafb7da4e007eb98ee51730f3cd5bf698 /src/rabbit_file.erl | |
parent | f203e2fa14812e82166d6cab72909135a26036fb (diff) | |
download | rabbitmq-server-3889d0d67e4670dd244964d3fe43aa11d68ad466.tar.gz |
fix rabbit_file:group_tokens/1
Diffstat (limited to 'src/rabbit_file.erl')
-rw-r--r-- | src/rabbit_file.erl | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/rabbit_file.erl b/src/rabbit_file.erl index 7b3a3e75..5cb8e7b6 100644 --- a/src/rabbit_file.erl +++ b/src/rabbit_file.erl @@ -120,17 +120,12 @@ read_term_file(File) -> error:{badmatch, Error} -> Error end. -group_tokens(Ts) -> lists:reverse([lists:reverse(G) || G <- group_tokens1(Ts)]). +group_tokens(Ts) -> [lists:reverse(G) || G <- group_tokens([], 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} | Ts]) -> group_tokens([T | Cur], N, Ts); -group_tokens(Cur, _, [{_, M} | _] = Ts) -> [Cur | group_tokens([], M, Ts)]; -group_tokens(Cur, N, [T = {_, N, _} | Ts]) -> group_tokens([T | Cur], N, Ts); -group_tokens(Cur, _, [{_, M, _} | _] = Ts) -> [Cur | group_tokens([], M, Ts)]. +group_tokens([], []) -> []; +group_tokens(Cur, []) -> [Cur]; +group_tokens(Cur, [T = {dot, _} | Ts]) -> [[T | Cur] | group_tokens([], Ts)]; +group_tokens(Cur, [T | Ts]) -> group_tokens([T | Cur], Ts). write_term_file(File, Terms) -> write_file(File, list_to_binary([io_lib:format("~w.~n", [Term]) || |