Bläddra i källkod

ft:非尾递归列表格式化

master
SisMaker 4 år sedan
förälder
incheckning
4191cfe6c9
1 ändrade filer med 5 tillägg och 3 borttagningar
  1. +5
    -3
      src/eFmt.erl

+ 5
- 3
src/eFmt.erl Visa fil

@ -158,7 +158,8 @@ writeList([One | List], D, E, BinAcc) ->
writeList(List, D - 1, E, <<BinAcc/binary, (writeTerm(One, D, E))/binary, ",">>) writeList(List, D - 1, E, <<BinAcc/binary, (writeTerm(One, D, E))/binary, ",">>)
end; end;
writeList(Other, D, E, BinAcc) -> writeList(Other, D, E, BinAcc) ->
<<BinAcc/binary, "|", (writeTerm(Other, D, E))/binary, "]">>.
NewBinAcc = binary:part(BinAcc, 0, erlang:byte_size(BinAcc) - 1),
<<NewBinAcc/binary, "|", (writeTerm(Other, D, E))/binary, "]">>.
writeTuple(Tuple, D, E, Index, TupleSize, BinAcc) -> writeTuple(Tuple, D, E, Index, TupleSize, BinAcc) ->
if if
@ -260,11 +261,12 @@ writeList(Other, Depth, Width, Encoding, Strings, SumLC, BinAcc) ->
TermBin = writeTerm(Other, Depth, Width, Encoding, Strings), TermBin = writeTerm(Other, Depth, Width, Encoding, Strings),
TermBinBinSize = erlang:byte_size(TermBin), TermBinBinSize = erlang:byte_size(TermBin),
NewSumLC = SumLC + TermBinBinSize, NewSumLC = SumLC + TermBinBinSize,
NewBinAcc = binary:part(BinAcc, 0, erlang:byte_size(BinAcc) - 1),
case NewSumLC >= Width of case NewSumLC >= Width of
true -> true ->
<<BinAcc/binary, "|", TermBin/binary, "]\n">>;
<<NewBinAcc/binary, "|", TermBin/binary, "]\n">>;
_ -> _ ->
<<BinAcc/binary, "|", TermBin/binary, "]">>
<<NewBinAcc/binary, "|", TermBin/binary, "]">>
end. end.
writeTuple(Tuple, Depth, Width, Encoding, Strings, Index, TupleSize, SumLC, BinAcc) -> writeTuple(Tuple, Depth, Width, Encoding, Strings, Index, TupleSize, SumLC, BinAcc) ->

Laddar…
Avbryt
Spara