diff --git a/src/aeso_ast_to_fcode.erl b/src/aeso_ast_to_fcode.erl index 1ba0f5a..b8eb91e 100644 --- a/src/aeso_ast_to_fcode.erl +++ b/src/aeso_ast_to_fcode.erl @@ -176,6 +176,10 @@ expr_to_fcode(_Env, _Type, {bool, _, B}) -> {bool, B}; %% Variables expr_to_fcode(_Env, _Type, {id, _, X}) -> {var, X}; +%% Tuples +expr_to_fcode(Env, _Type, {tuple, _, Es}) -> + {tuple, [expr_to_fcode(Env, E) || E <- Es]}; + %% Conditionals expr_to_fcode(Env, _Type, {'if', _, Cond, Then, Else}) -> {'if', expr_to_fcode(Env, Cond), diff --git a/src/aeso_fcode_to_fate.erl b/src/aeso_fcode_to_fate.erl index 76cfb99..40a75df 100644 --- a/src/aeso_fcode_to_fate.erl +++ b/src/aeso_fcode_to_fate.erl @@ -112,6 +112,11 @@ to_scode(_Env, {integer, N}) -> to_scode(Env, {var, X}) -> [aeb_fate_code:push(lookup_var(Env, X))]; +to_scode(Env, {tuple, As}) -> + N = length(As), + [[ to_scode(Env, A) || A <- As ], + aeb_fate_code:tuple(N)]; + to_scode(Env, {binop, Type, Op, A, B}) -> [ to_scode(notail(Env), B), to_scode(push_env(Type, Env), A),