Module Driver.Passes

Compiler passes

Each pass takes only its cli options, then calls upon its dependent passes (forwarding their options as needed)

val dcalc : Catala_utils.Global.options -> includes:Catala_utils.Global.raw_file list -> optimize:bool -> check_invariants:bool -> autotest:bool -> typed:'m Shared_ast.mark -> 'm Dcalc.Ast.program * Shared_ast.TypeIdent.t list
val lcalc : Catala_utils.Global.options -> includes:Catala_utils.Global.raw_file list -> optimize:bool -> check_invariants:bool -> autotest:bool -> typed:'m Shared_ast.mark -> closure_conversion:bool -> keep_special_ops:bool -> monomorphize_types:bool -> expand_ops:bool -> renaming:Shared_ast.Renaming.t option -> Shared_ast.typed Lcalc.Ast.program * Shared_ast.TypeIdent.t list * Shared_ast.Renaming.context option
val scalc : Catala_utils.Global.options -> includes:Catala_utils.Global.raw_file list -> optimize:bool -> check_invariants:bool -> autotest:bool -> closure_conversion:bool -> keep_special_ops:bool -> dead_value_assignment:bool -> no_struct_literals:bool -> monomorphize_types:bool -> expand_ops:bool -> renaming:Shared_ast.Renaming.t option -> Scalc.Ast.program * Shared_ast.TypeIdent.t list * Shared_ast.Renaming.context