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
|
%% Variables
|
||||||
expr_to_fcode(_Env, _Type, {id, _, X}) -> {var, X};
|
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
|
%% Conditionals
|
||||||
expr_to_fcode(Env, _Type, {'if', _, Cond, Then, Else}) ->
|
expr_to_fcode(Env, _Type, {'if', _, Cond, Then, Else}) ->
|
||||||
{'if', expr_to_fcode(Env, Cond),
|
{'if', expr_to_fcode(Env, Cond),
|
||||||
|
@ -112,6 +112,11 @@ to_scode(_Env, {integer, N}) ->
|
|||||||
to_scode(Env, {var, X}) ->
|
to_scode(Env, {var, X}) ->
|
||||||
[aeb_fate_code:push(lookup_var(Env, 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(Env, {binop, Type, Op, A, B}) ->
|
||||||
[ to_scode(notail(Env), B),
|
[ to_scode(notail(Env), B),
|
||||||
to_scode(push_env(Type, Env), A),
|
to_scode(push_env(Type, Env), A),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user