Files
mercury/trial/getopt.int
1997-12-23 05:02:38 +00:00

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.