X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=options.ml;h=bd7fcce58af748f2e37a61a06576393bd6a45d69;hb=83aa6cf8a120ea6681402ce42ae56631fca1ddf4;hp=6d6dc86c776074ac268bf08566ea9fa1ed75176a;hpb=eebef30070a951d852ce5811b289d8131a5300eb;p=SXSI%2Fxpathcomp.git diff --git a/options.ml b/options.ml index 6d6dc86..bd7fcce 100644 --- a/options.ml +++ b/options.ml @@ -5,21 +5,34 @@ let disable_text_collection = ref false let query = ref "" let input_file = ref "" let output_file = ref None +let save_file = ref "" +let count_only = ref false -let usage_msg = Printf.sprintf "%s 'query' [output]" Sys.argv.(0) +let usage_msg = Printf.sprintf "%s 'query' [output]" Sys.argv.(0) -let anon_fun = let pos = ref 0 in + +let pos = ref 0 +let anon_fun = fun s -> match !pos with | 0 -> input_file:= s;incr pos | 1 -> query := s; incr pos | 2 -> output_file := Some s; incr pos | _ -> raise (Arg.Bad(s)) -let spec = [ "-f", Arg.Set_int(sample_factor),"sample factor [default=64]"; - "-i", Arg.Set(index_empty_texts),"index empty texts [default=false]"; - "-d", Arg.Set(disable_text_collection),"Disable text collection[default=false]"; ] +let spec = [ "-c", Arg.Set(count_only), "counting only (don't materialize the result set"; + "-f", Arg.Set_int(sample_factor), "sample factor [default=64]"; + "-i", Arg.Set(index_empty_texts), "index empty texts [default=false]"; + "-d", Arg.Set(disable_text_collection), "disable text collection[default=false]"; + "-s", Arg.Set_string(save_file), "save the intermediate representation into file.srx"; + ] + +let parse_cmdline() = + let _ = Arg.parse spec anon_fun usage_msg + in + if (!pos > 3 || !pos < 2) + then begin Arg.usage spec usage_msg; exit 1 end -let parse_cmdline() = Arg.parse spec anon_fun usage_msg +