Shared_ast.Print
Printing functions for the default calculus AST
The argument is assumed to be 1-column wide (but can be a multi-char utf8 character)
Prints the operator symbols with kind suffixes, as expected by the OCaml backend (e.g. "+^", "+$", etc.)
val uid_list :
Stdlib.Format.formatter ->
Catala_utils.Uid.MarkedString.info list ->
unit
val external_ref :
Stdlib.Format.formatter ->
Shared_ast__.Definitions.external_ref Catala_utils.Mark.pos ->
unit
val typ :
Shared_ast__.Definitions.decl_ctx ->
Stdlib.Format.formatter ->
Shared_ast__.Definitions.naked_typ Catala_utils.Mark.pos ->
unit
val runtime_error :
Stdlib.Format.formatter ->
Runtime_ocaml.Runtime.error ->
unit
val var : Stdlib.Format.formatter -> 'e Var.t -> unit
val var_debug : Stdlib.Format.formatter -> 'e Var.t -> unit
val expr :
?debug:bool ->
unit ->
Stdlib.Format.formatter ->
(('a, 'a, 'm) Shared_ast__.Definitions.base_gexpr,
'm Shared_ast__.Definitions.mark)
Catala_utils.Mark.ed ->
unit
Expression printer.
module type EXPR_PARAM = sig ... end
module ExprGen (_ : EXPR_PARAM) : sig ... end
module ExprConciseParam : EXPR_PARAM
module ExprDebugParam : EXPR_PARAM
val typ_debug :
Stdlib.Format.formatter ->
Shared_ast__.Definitions.naked_typ Catala_utils.Mark.pos ->
unit
val scope :
?debug:bool ->
Shared_ast__.Definitions.decl_ctx ->
Stdlib.Format.formatter ->
(string
* (('a, 'a, 'm) Shared_ast__.Definitions.base_gexpr,
'm Shared_ast__.Definitions.mark)
Catala_utils.Mark.ed
Shared_ast__.Definitions.scope_body) ->
unit
val program :
?debug:bool ->
Stdlib.Format.formatter ->
(('a, 'a, 'm) Shared_ast__.Definitions.base_gexpr,
'm Shared_ast__.Definitions.mark)
Catala_utils.Mark.ed
Shared_ast__.Definitions.program ->
unit
module UserFacing : sig ... end
User-facing, localised printer
/
val skip_wrappers :
(('a, 'a, 'm) Shared_ast__.Definitions.base_gexpr,
'm Shared_ast__.Definitions.mark)
Catala_utils.Mark.ed ->
(('a, 'a, 'm) Shared_ast__.Definitions.base_gexpr,
'm Shared_ast__.Definitions.mark)
Catala_utils.Mark.ed
This is exported from Expr
, but first defined here for dependency reasons