Lcalc.To_ocaml
val renaming : Shared_ast.Renaming.t
Formats a lambda calculus program into a valid OCaml program
val typ_needs_parens : Shared_ast.typ -> bool
val format_enum_name : Stdlib.Format.formatter -> Shared_ast.EnumName.t -> unit
val format_enum_cons_name :
Stdlib.Format.formatter ->
Shared_ast.EnumConstructor.t ->
unit
val format_struct_name :
Stdlib.Format.formatter ->
Shared_ast.StructName.t ->
unit
val format_struct_field_name :
Stdlib.Format.formatter ->
(Shared_ast.StructName.t option * Shared_ast.StructField.t) ->
unit
val format_to_module_name :
Stdlib.Format.formatter ->
[< `Ename of Shared_ast.EnumName.t | `Sname of Shared_ast.StructName.t ] ->
unit
val format_var : Stdlib.Format.formatter -> 'm Shared_ast.Var.t -> unit
val format_program :
Stdlib.Format.formatter ->
?exec_scope:Shared_ast.ScopeName.t ->
?exec_args:bool ->
hashf:(Catala_utils.Hash.t -> Catala_utils.Hash.full) ->
'm Ast.program ->
Shared_ast.TypeIdent.t list ->
unit
Usage format_program fmt p type_dependencies_ordering
. Either one of these may be set:
exec_scope
will mark the named scope as "main" and execute it at the end of the program. It must have no inputs.exec_args
will add support for executing scopes passed on Argv (default true if exec_scope
is None