package catala

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Formats a lambda calculus program into a valid OCaml program

val avoid_keywords : string -> string
val typ_needs_parens : Shared_ast.typ -> bool
val format_enum_name : Format.formatter -> Shared_ast.EnumName.t -> unit
val format_enum_cons_name : Format.formatter -> Shared_ast.EnumConstructor.t -> unit
val format_struct_name : Format.formatter -> Shared_ast.StructName.t -> unit
val format_struct_field_name : Format.formatter -> (Shared_ast.StructName.t option * Shared_ast.StructField.t) -> unit
val format_to_module_name : Format.formatter -> [< `Ename of Shared_ast.EnumName.t | `Sname of Shared_ast.StructName.t ] -> unit
val format_var : Format.formatter -> 'm Shared_ast.Var.t -> unit
val format_program : Format.formatter -> ?exec_scope:Shared_ast.ScopeName.t -> ?exec_args:bool -> 'm Ast.program -> Scopelang.Dependency.TVertex.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