From c0c29e1df78dfea895f49b3cf69ae5b740ca8ea8 Mon Sep 17 00:00:00 2001 From: Benjamin Loison Date: Sun, 11 Dec 2022 18:45:30 +0100 Subject: [PATCH] Add assignement support for tuples --- src/ast_to_c.ml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ast_to_c.ml b/src/ast_to_c.ml index 4e2d174..2866190 100644 --- a/src/ast_to_c.ml +++ b/src/ast_to_c.ml @@ -67,7 +67,6 @@ let pp_expression node_name = let rec pp_expression_list prefix fmt exprs = match exprs with | ETuple([], []) -> () - (* TODO: assignment (in addition to the current app call support) *) | ETuple (_ :: tt, expr :: exprs) -> Format.fprintf fmt "%a%s%a" (pp_expression_aux (prefix)) expr @@ -162,6 +161,8 @@ let pp_expression node_name = let rec pp_equations node_name fmt: t_eqlist -> unit = function | [] -> () + | (([], []), (ETuple ([], []))) :: eqs -> Format.fprintf fmt "%a" (pp_equations node_name) eqs + | ((l_type :: l_types, var :: vars), (ETuple (r_type :: r_types, expr :: exprs))) :: eqs -> Format.fprintf fmt "%a" (pp_equations node_name) ((([l_type], [var]), expr) :: ((l_types, vars), (ETuple (r_types, exprs))) :: eqs) | (patt, expr) :: eqs -> Format.fprintf fmt "\t%a = %a;\n%a" (pp_varlist Base) patt