let execute_arg_list (arg_list : string list) : unit =
try
match arg_list with
|_::tl -> (
match tl with
|"help"::[] -> IO.print_to_stdout (manual ())
|"help"::tl -> raise (Invalid_argument (String.concat " " tl))
|option_list_path -> (
let default_options : Main.t_options = {
verbose = false;
discharge = false;
undischarge = false;
logic = Main.Classical;
quiet = true;
}
in
match List.rev option_list_path with
|path::option_list -> (
let options : Main.t_options =
options_of_string_list default_options option_list
in
Main.expand_and_validate_file ~options:options path
)
|_ -> raise (Invalid_argument (String.concat " " option_list_path))
)
)
|_ -> raise (Invalid_argument (String.concat " " arg_list))
with
|ITM_main.Parse_error e
|PRF_main.Parse_error e
|PRF_main.Error e
|FML_main.Parse_error e -> IO.print_to_stderr_red e
|Invalid_argument e -> IO.print_to_stderr (String.concat "" ["invalid argument(s): ";e;"\n";synopsis ()])