open Arg let input_file : string option ref = ref None let output_file : string option ref = ref None let queries = ref [] let set_string_option r s = r := Some s (*pas compris*) let specs = align [ "-d", String (set_string_option input_file), " specify the input document file [default stdin]"; "--doc", String (set_string_option input_file), " "; "-o", String (set_string_option output_file), " specify the output file [default stdout]"; "--out", String (set_string_option output_file), " "; ] let usage_msg = Printf.sprintf "usage: %s [options] query [query ... query]" Sys.argv.(0) let usage () = usage specs usage_msg let parse () = parse specs (fun q -> queries := q :: !queries ) usage_msg; match !queries with [] -> raise (Arg.Bad "missing query") | l -> queries := List.rev l