package catala
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=2615968670ac21b1d00386a9b04b3843
sha512=eff292fdd75012f26ce7b17020f5a8374eef37cd4dd6ba60338dfbe89fbcad3443d1b409e44c182b740da9f58dff7e76dcb8ddefe47f9b2b160666d1c6930143
doc/catala.scalc/Scalc/From_lcalc/index.html
Module Scalc.From_lcalc
Source
type translation_config = {
keep_special_ops : bool;
(*When
*)keep_special_ops
is true, then this translation uses special Scalc AST nodes for higher-order operators like map, fold, handle_default, etc. This is useful if the target language after Scalc does not support nested functions like C.dead_value_assignment : bool;
(*When
*)dead_value_assignment
is true, the translation inserts dummy assignments of the variable being defined in the current code branch just before raising a terminal error. This is useful for languages like Python and their linting tools like mypy. The assignment uses the polymorphicAst.dead_value
.no_struct_literals : bool;
(*When
*)no_struct_literals
is true, the translation inserts a temporary variable to hold the initialization of struct literals. This matches what C89 expects.keep_module_names : bool;
(*Without this flag, references to modules are expected to be variables defined in the preamble of the output. If set, module names are immutable and must be used as is in all references.
*)renaming_context : Shared_ast.Renaming.context;
}
val translate_program :
config:translation_config ->
Shared_ast.typed Lcalc.Ast.program ->
Ast.program