mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-17 02:13:54 +00:00
39 lines
2.8 KiB
Plaintext
39 lines
2.8 KiB
Plaintext
:- module getopt.
|
|
:- interface.
|
|
:- import_module bool, char, list, map, std_util.
|
|
:- pred getopt:process_options((getopt:option_ops(OptionType)), (list:list(string)), (list:list(string)), (getopt:maybe_option_table(OptionType))).
|
|
:- mode getopt:process_options(mercury_builtin:in(getopt:option_ops), mercury_builtin:in, mercury_builtin:out, mercury_builtin:out) is det.
|
|
:- type (getopt:option_ops(OptionType))
|
|
---> getopt:option_ops(pred((char:char), OptionType), pred(string, OptionType), pred(OptionType, (getopt:option_data)))
|
|
; getopt:option_ops(pred((char:char), OptionType), pred(string, OptionType), pred(OptionType, (getopt:option_data)), pred(OptionType, (getopt:special_data), (getopt:option_table(OptionType)), (getopt:maybe_option_table(OptionType)))).
|
|
:- inst ((getopt:option_ops)) = bound(option_ops((pred(mercury_builtin:in, mercury_builtin:out) is semidet), (pred(mercury_builtin:in, mercury_builtin:out) is semidet), (pred(mercury_builtin:out, mercury_builtin:out) is nondet)) ; option_ops((pred(mercury_builtin:in, mercury_builtin:out) is semidet), (pred(mercury_builtin:in, mercury_builtin:out) is semidet), (pred(mercury_builtin:out, mercury_builtin:out) is nondet), (pred(mercury_builtin:in, mercury_builtin:in, mercury_builtin:in, mercury_builtin:out) is semidet))).
|
|
:- type (getopt:option_data)
|
|
---> getopt:bool((bool:bool))
|
|
; getopt:int(int)
|
|
; getopt:string(string)
|
|
; getopt:maybe_string((std_util:maybe(string)))
|
|
; getopt:accumulating((list:list(string)))
|
|
; getopt:special
|
|
; getopt:bool_special
|
|
; getopt:int_special
|
|
; getopt:string_special.
|
|
:- type (getopt:special_data)
|
|
---> getopt:none
|
|
; getopt:bool((bool:bool))
|
|
; getopt:int(int)
|
|
; getopt:string(string).
|
|
:- type (getopt:option_table(OptionType)) == (map:map(OptionType, (getopt:option_data))).
|
|
:- type (getopt:maybe_option_table(OptionType))
|
|
---> getopt:ok((getopt:option_table(OptionType)))
|
|
; getopt:error(string).
|
|
:- pred getopt:lookup_bool_option((getopt:option_table(Option)), Option, (bool:bool)).
|
|
:- mode getopt:lookup_bool_option(mercury_builtin:in, mercury_builtin:in, mercury_builtin:out) is det.
|
|
:- pred getopt:lookup_int_option((getopt:option_table(Option)), Option, int).
|
|
:- mode getopt:lookup_int_option(mercury_builtin:in, mercury_builtin:in, mercury_builtin:out) is det.
|
|
:- pred getopt:lookup_string_option((getopt:option_table(Option)), Option, string).
|
|
:- mode getopt:lookup_string_option(mercury_builtin:in, mercury_builtin:in, mercury_builtin:out) is det.
|
|
:- pred getopt:lookup_maybe_string_option((getopt:option_table(Option)), Option, (std_util:maybe(string))).
|
|
:- mode getopt:lookup_maybe_string_option(mercury_builtin:in, mercury_builtin:in, mercury_builtin:out) is det.
|
|
:- pred getopt:lookup_accumulating_option((getopt:option_table(Option)), Option, (list:list(string))).
|
|
:- mode getopt:lookup_accumulating_option(mercury_builtin:in, mercury_builtin:in, mercury_builtin:out) is det.
|