Compile tuple construction
This commit is contained in:
parent
3ec156a4b4
commit
788840f0fa
@ -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),
|
||||
|
@ -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),
|
||||
|
Loading…
x
Reference in New Issue
Block a user