Module UtilsLib.Args

module Args: sig .. end

Parsing command line arguments in a functional way.

type kind = 
| Int
| Float
| String
| Set_true (*

get_bool will return true for this arg

*)
| Set_false (*

get_bool will return false for this arg

*)
| Custom of string (*

the string after this constructor gives clue to the user about the expected type

*)
| StringAcc (*

This command will accumulate the parameters when several ones are provided on the command line.

*)

for non-Acc kinds if an argument is given several times on the command line the last one overwrites the previous ones

type p = 
| Default of string
| Defaults of string list
| Required
| Optional
type spec = string * p * kind * string 

(command_line_argument, about_value, kind, help_msg)

type args = string list 

typically Sys.args

type cmd 
val parse : spec list -> args -> cmd
val usage : spec list -> unit
Accessors

The string should be the same than the first element of the spec entry

val get_int : cmd -> string -> int
val get_float : cmd -> string -> float
val get_bool : cmd -> string -> bool
val get_string : cmd -> string -> string
val get_custom : (string -> 'a) -> cmd -> string -> 'a
val get_string_list : cmd -> string -> string list

Option

val get_int_opt : cmd -> string -> int option
val get_float_opt : cmd -> string -> float option
val get_bool_opt : cmd -> string -> bool option
val get_string_opt : cmd -> string -> string option
val get_custom_opt : (string -> 'a) -> cmd -> string -> 'a option