Module Mlang.Cli

Command-line interface helpers

Command line arguments parsing

val mlang_t : ( string list -> bool -> bool -> string list -> bool -> string -> bool -> string option -> string option -> string option -> bool -> string option -> string -> bool -> bool -> string option -> string option -> float option -> int option -> bool -> string list option -> 'a ) -> 'a Cmdliner.Term.t

Mlang binary command-line arguments parsing function

val info : Cmdliner.Cmd.info

Command-line man page for --help

Flags and parameters

type value_sort =
| RegularFloat
| MPFR of int(*

bitsize of the floats

*)
| BigInt of int(*

precision of the fixed point

*)
| Interval
| Rational

According on the value_sort, a specific interpreter will be called with the right kind of floating-point value

type round_ops =
| RODefault
| ROMulti
| ROMainframe of int(*

size of type long, either 32 or 64

*)

Rounding operations to use in the interpreter. They correspond to the rounding operations used by the DGFiP calculator in different execution contexts.

  • RODefault: rounding operations used in the PC/single-thread context
  • ROMulti: rouding operations used in the PC/multi-thread context
  • ROMainframe rounding operations used in the mainframe context
val source_files : string list Stdlib.ref

M source files to be compiled

val dep_graph_file : string Stdlib.ref

Prefix for dependency graph output files

val verify_flag : bool Stdlib.ref

Use Z3 to check if verif rules hold all the time

val debug_flag : bool Stdlib.ref

Prints debug information

val var_info_flag : bool Stdlib.ref

Print infomation about variables declared, defined ou used incorrectly

val var_info_debug : string list Stdlib.ref

Prints even more information but only about some variables members of a list

val warning_flag : bool Stdlib.ref

Print warning info

val no_print_cycles_flag : bool Stdlib.ref

Dump circular definitions of variables

val display_time : bool Stdlib.ref

Displays timing information

val output_file : string Stdlib.ref

Output file

val optimize_unsafe_float : bool Stdlib.ref

Activate unsafe floating point optimizations

val m_clean_calls : bool Stdlib.ref

Clean regular variables between M calls

val comparison_error_margin : float Stdlib.ref
val income_year : int option Stdlib.ref
val value_sort : value_sort Stdlib.ref
val round_ops : round_ops Stdlib.ref
val set_all_arg_refs : string list -> bool -> bool -> string list -> bool -> string -> bool -> string option -> bool -> bool -> float option -> int option -> value_sort -> round_ops -> unit
val add_prefix_to_each_line : string -> ( int -> string ) -> string

add_prefix_to_each_line msg prefix will print msg but each line with line number i starts with the string prefix i

Printers

val format_with_style : ANSITerminal.style list -> ( 'a, unit, string ) Stdlib.format -> 'a

All the printers below print their argument after the correct marker

val var_info_print : ( 'a, Stdlib.Format.formatter, unit, unit ) Stdlib.format4 -> 'a
val debug_print : ?endline:string -> ( 'a, Stdlib.Format.formatter, unit, unit ) Stdlib.format4 -> 'a
val warning_print : ( 'a, Stdlib.Format.formatter, unit, unit ) Stdlib.format4 -> 'a
val error_print : ( 'a, Stdlib.Format.formatter, unit, unit ) Stdlib.format4 -> 'a
val result_print : ( 'a, Stdlib.Format.formatter, unit, unit ) Stdlib.format4 -> 'a
val create_progress_bar : string -> ( string -> unit ) * ( string -> unit )

Returns two functions: the first one, current_progress, has to be called during the progress loop and the other one, finish, has to be called at the end of the progressive task.