Browse Source

ft: 代码修改

master
SisMaker 4 years ago
parent
commit
6136119964
1 changed files with 17 additions and 8 deletions
  1. +17
    -8
      src/eFmt.erl

+ 17
- 8
src/eFmt.erl View File

@ -202,16 +202,19 @@ visualAtomChar(_) -> false.
writeList([], _D, _E, BinAcc) ->
<<BinAcc/binary, "]">>;
writeList([One], D, E, BinAcc) ->
<<BinAcc/binary, (writeTerm(One, D, E))/binary, "]">>;
VBin = writeTerm(One, D, E),
<<BinAcc/binary, VBin/binary, "]">>;
writeList([One | List], D, E, BinAcc) ->
if
D =:= 1 -> <<BinAcc, "|...]">>;
true ->
writeList(List, D - 1, E, <<BinAcc/binary, (writeTerm(One, D, E))/binary, ",">>)
VBin = writeTerm(One, D, E),
writeList(List, D - 1, E, <<BinAcc/binary, VBin/binary, ",">>)
end;
writeList(Other, D, E, BinAcc) ->
NewBinAcc = part(BinAcc, 0, byte_size(BinAcc) - 1),
<<NewBinAcc/binary, "|", (writeTerm(Other, D, E))/binary, "]">>.
VBin = writeTerm(Other, D, E),
<<NewBinAcc/binary, "|", VBin/binary, "]">>.
writeTuple(Tuple, D, E, Index, TupleSize, BinAcc) ->
if
@ -219,9 +222,11 @@ writeTuple(Tuple, D, E, Index, TupleSize, BinAcc) ->
true ->
if
Index < TupleSize ->
writeTuple(Tuple, D - 1, E, Index + 1, TupleSize, <<BinAcc/binary, (writeTerm(element(Index, Tuple), D - 1, E))/binary, ",">>);
VBin = writeTerm(element(Index, Tuple), D - 1, E),
writeTuple(Tuple, D - 1, E, Index + 1, TupleSize, <<BinAcc/binary, VBin/binary, ",">>);
Index == TupleSize ->
<<BinAcc/binary, (writeTerm(element(Index, Tuple), D - 1, E))/binary, "}">>;
VBin = writeTerm(element(Index, Tuple), D - 1, E),
<<BinAcc/binary, VBin/binary, "}">>;
true ->
<<BinAcc/binary, "}">>
end
@ -263,13 +268,17 @@ writeBinary(Bin, D, BinAcc) ->
<<>> ->
<<BinAcc/binary, ">>">>;
<<Int:8>> ->
<<BinAcc/binary, (integer_to_binary(Int))/binary, ">>">>;
VBin = integer_to_binary(Int),
<<BinAcc/binary, VBin/binary, ">>">>;
<<Int:8, LeftBin/bitstring>> ->
writeBinary(LeftBin, D - 1, <<BinAcc/binary, (integer_to_binary(Int))/binary, ",">>);
VBin = integer_to_binary(Int),
writeBinary(LeftBin, D - 1, <<BinAcc/binary, VBin/binary, ",">>);
_ ->
L = bit_size(Bin),
<<X:L>> = Bin,
<<BinAcc/binary, (integer_to_binary(X))/binary, ":", (integer_to_binary(L))/binary, ">>">>
XBin = integer_to_binary(X),
LBin = integer_to_binary(L),
<<BinAcc/binary, XBin/binary, ":", LBin/binary, ">>">>
end
end.

Loading…
Cancel
Save