diff --git a/src/hz_format.erl b/src/hz_format.erl index e597ffc..bc98560 100644 --- a/src/hz_format.erl +++ b/src/hz_format.erl @@ -553,7 +553,6 @@ read_w_gajus([32, $G], A) -> read_w_gajus([32, $P], A) -> calc([], [{$P, A}]); read_w_gajus(A, B) -> - io:format("A: ~ts, B: ~p~n", [A, B]), error. read_w_pucks([C | Rest], A) when $0 =< C andalso C =< $9 -> @@ -599,10 +598,23 @@ read([32, $P], A, P) -> calc([], [{$P, A} | P]); read([C, 32 | Rest], A, G) -> read(Rest, [], [{C, A} | G]); +read([$, | Rest], A, []) -> + read_w_gajus(Rest, A); +read([$_ | Rest], A, []) -> + read_w_gajus(Rest, A); +read([$. | Rest], A, []) -> + case read_w_pucks(Rest, []) of + {ok, P} -> + G = list_to_integer(lists:reverse(A)) * one(gaju), + {ok, G + P}; + Error -> + Error + end; read([C | Rest], A, G) -> read(Rest, [], [{C, A} | G]); +read([], A, []) -> + read_w_gajus([], A); read(Rest, A, G) -> - io:format("read(\"~ts\", ~tp, ~tp) -> died!~n", [Rest, A, G]), error. @@ -622,7 +634,6 @@ read([C, 32 | Rest], A, G, P) -> read([C | Rest], A, G, P) -> read(Rest, [], G, [{C, A} | P]); read(_, _, _, _) -> - io:format("read/4 died!~n"), error. calc(G, P) ->