Module Tjr_lib_core.Args_

Simple command line processing

module Internal_types : sig ... end
include Internal_types
type 'a t = {
name : string;
parse : string list -> string list;
extra : 'a;
}

A "named" parser, where the name is somehow related to the parsing

type flag_extra = unit
type flag = flag_extra t
type 'a t_set = {
names : (string, 'a t) Tjr_lib_core__.Hashtbl.t;
parse : string list -> string list;
add : 'a t -> unit;
}
type flag_set = flag_extra t_set
type subcmd_extra = unit -> unit
type subcmd = subcmd_extra t
type subcmd_set = subcmd_extra t_set
type cmd = {
usage : string;
flags : flag_set;
subcmds : subcmd_set;
}
module Internal_string : sig ... end
module Common_flags : sig ... end
include Common_flags
val int_flag : name:string -> (int -> unit) -> flag
val string_flag : name:string -> (string -> unit) -> flag
val boolean_flag : name:string -> (bool -> unit) -> flag
module Internal_flags : sig ... end
val make_flag_set : flag_extra t list -> flag_extra t_set
module Internal_subcmds : sig ... end
val make_subcmd : name:string -> set:subcmd_extra -> flags:flag_set -> subcmd
val make_subcmd_set : subcmd list -> subcmd_extra t_set
module Internal_cmd : sig ... end
val make_cmd : usage:string -> flags:flag_extra t list -> subcmds:subcmd list -> cmd
val cmd_parser : cmd -> string list -> string list
module Test : functor () sig ... end