(* RAMANANANDRO Tahina Module Print_prog : impression du programme. Requiert aintv.mli et aintv.ml *) open Aintv open Print let print_prog (fdl ,expr ) = if fdl <> [] then begin print_string "let\n"; let print_fd (nom, (fpar_l, e)) = print_string (" " ^ nom ^ "("); let print_fpar = function | FPVAL s -> print_string ("value " ^ s) | FPNECSTAT s -> print_string ("lazystat " ^ s) | FPNECDYN s -> print_string ("lazydyn " ^ s) in let rec print_fpar_l = function | [] -> print_string ") = "; print_expr e; print_string " ;\n" | [a] -> print_fpar a; print_string ") = "; print_expr e; print_string " ;\n" | a::q -> print_fpar a; print_string ", "; print_fpar_l q in print_fpar_l fpar_l in List.iter print_fd fdl; print_string "in\n" end; print_expr expr; print_string "\n;;\n"