|
|
@ -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. |
|
|
|
|
|
|
|