X-Git-Url: http://git.nguyen.vg/gitweb/?a=blobdiff_plain;f=options.ml;h=6698921e3dc9a41e0bb9c322a12b8f407b2a7e39;hb=70ff0bfc463882ecf233f1b1a7ac4a8007fa4cc2;hp=6d6dc86c776074ac268bf08566ea9fa1ed75176a;hpb=eebef30070a951d852ce5811b289d8131a5300eb;p=SXSI%2Fxpathcomp.git diff --git a/options.ml b/options.ml index 6d6dc86..6698921 100644 --- a/options.ml +++ b/options.ml @@ -1,25 +1,43 @@ 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 + +