X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=options.ml;h=ad1541b8fbcc356f6e91816199918f0e7a6966f8;hb=df5fdb22632be887ecd9f5c46a014e7e970148a2;hp=6d6dc86c776074ac268bf08566ea9fa1ed75176a;hpb=eebef30070a951d852ce5811b289d8131a5300eb;p=SXSI%2Fxpathcomp.git diff --git a/options.ml b/options.ml index 6d6dc86..ad1541b 100644 --- a/options.ml +++ b/options.ml @@ -1,25 +1,42 @@ let index_empty_texts = ref false let sample_factor = ref 64 let disable_text_collection = ref false +let tc_threshold = ref 60000 let query = ref "" let input_file = ref "" let output_file = ref None +let save_file = ref "" +let count_only = ref false +let time = ref false +let backward = 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)"; + "-t", Arg.Set(time), "print timing statistics"; + "-max-tc", Arg.Set_int(tc_threshold), "set maximum count for which the TextCollection is used"; + "-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"; + "-b", Arg.Set(backward), "real bottom up run"; + ] -let parse_cmdline() = Arg.parse spec anon_fun usage_msg - +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 + +