Make the decoder return a binary and untabify

This commit is contained in:
Robert Virding 2019-02-06 17:07:15 +01:00
parent cea581988d
commit 5d116b2e5a

View File

@ -11,8 +11,8 @@
-export([encode/1,decode/1]). -export([encode/1,decode/1]).
%% Define records for the various typed syntactic forms. These don't %% Define records for the various typed syntactic forms. These make
%% seem to exist elsewhere. %% the code easier but don't seem to exist elsewhere.
-record(contract, {ann,con,decls}). -record(contract, {ann,con,decls}).
-record(letfun, {ann,id,args,type,body}). -record(letfun, {ann,id,args,type,body}).
@ -126,7 +126,7 @@ decode(Json) ->
Map = jsx:decode(Json, [return_maps]), Map = jsx:decode(Json, [return_maps]),
%% io:format("~p\n", [Map]), %% io:format("~p\n", [Map]),
#{<<"contract">> := C} = Map, #{<<"contract">> := C} = Map,
lists:flatten(decode_contract(C)). list_to_binary(decode_contract(C)).
decode_contract(#{<<"name">> := Name, decode_contract(#{<<"name">> := Name,
<<"type_defs">> := _Ts, <<"type_defs">> := _Ts,
@ -153,18 +153,18 @@ decode_arg(#{<<"type">> := T}) -> decode_type(T).
%% To keep dialyzer happy and quiet. %% To keep dialyzer happy and quiet.
%% decode_tdefs(Ts) -> [ decode_tdef(T) || T <- Ts ]. %% decode_tdefs(Ts) -> [ decode_tdef(T) || T <- Ts ].
%%
%% decode_tdef(#{<<"name">> := Name,<<"vars">> := Vs,<<"typedef">> := T}) -> %% decode_tdef(#{<<"name">> := Name,<<"vars">> := Vs,<<"typedef">> := T}) ->
%% [" type"," ",io_lib:format("~s", [Name]),decode_tvars(Vs), %% [" type"," ",io_lib:format("~s", [Name]),decode_tvars(Vs),
%% " = ",decode_type(T),$\n]. %% " = ",decode_type(T),$\n].
%%
%% decode_tvars([]) -> []; %No tvars, no parentheses %% decode_tvars([]) -> []; %No tvars, no parentheses
%% decode_tvars(Vs) -> %% decode_tvars(Vs) ->
%% Dvs = [ decode_tvar(V) || V <- Vs ], %% Dvs = [ decode_tvar(V) || V <- Vs ],
%% [$(,lists:join(", ", Dvs),$)]. %% [$(,lists:join(", ", Dvs),$)].
%%
%% decode_tvar(#{<<"name">> := N}) -> io_lib:format("~s", [N]). %% decode_tvar(#{<<"name">> := N}) -> io_lib:format("~s", [N]).
%%
%% #contract{Ann, Con, [Declarations]}. %% #contract{Ann, Con, [Declarations]}.
contract_name(#contract{con=#con{name=N}}) -> N. contract_name(#contract{con=#con{name=N}}) -> N.