projects
/
tatoo.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add a new option to choose tree model at runtime.
[tatoo.git]
/
src
/
options.ml
diff --git
a/src/options.ml
b/src/options.ml
index
3c2239a
..
c303c80
100644
(file)
--- a/
src/options.ml
+++ b/
src/options.ml
@@
-7,26
+7,42
@@
let queries = ref []
let stats = ref false
let compose = ref false
let parallel = ref false
let stats = ref false
let compose = ref false
let parallel = ref false
+let supported_models = [ "naive", (module Naive_tree : Tree.S);
+ "compact",(module Compact_tree : Tree.S);
+ ]
+let tree_model = ref (fst (List.hd supported_models))
+let set_model s = tree_model := s
let set_string_option r s = r := Some s
let specs = align [
let set_string_option r s = r := Some s
let specs = align [
- "-c", Set count, " write the number of results only";
+ "-c", Set count,
+ " write the number of results only";
"--count", Set count, " ";
"--count", Set count, " ";
- "-s", Set stats, " display timing and various statistics";
+ "-s", Set stats,
+ " display timing and various statistics";
"--stats", Set stats, " ";
"--stats", Set stats, " ";
- "-d", String (set_string_option input_file), " specify the input document file [default stdin]";
+ "-d", String (set_string_option input_file),
+ " specify the input document file [default stdin]";
"--doc", String (set_string_option input_file), " ";
"--doc", String (set_string_option input_file), " ";
- "-o", String (set_string_option output_file), " specify the output file [default stdout]";
+ "-o", String (set_string_option output_file),
+ " specify the output file [default stdout]";
"--out", String (set_string_option output_file), " ";
"--out", String (set_string_option output_file), " ";
- "-C", Set compose, " compose queries: each query is applied to the results of the previous one [default run all queries
-from the root node]";
+ "-C", Set compose,
+ " compose queries: each query is applied to the results of the \
+previous one [default run all queries from the root node]";
"--compose", Set compose, " ";
"--compose", Set compose, " ";
- "-p", Set parallel, " run all queries in parallel [default run all queries sequentially]";
+ "-p", Set parallel,
+ " run all queries in parallel [default run all queries \
+sequentially]";
"--parallel", Set parallel, " ";
"--parallel", Set parallel, " ";
+ "-m", Symbol (List.map fst supported_models, set_model),
+ " specify tree model (naive or compact, default to naive)";
+ "--model", Symbol (List.map fst supported_models, set_model), " ";
]
]
-let usage_msg = Printf.sprintf "usage: %s [options] query [query ... query]" Sys.argv.(0)
+let usage_msg =
+ Printf.sprintf "usage: %s [options] query [query ... query]" Sys.argv.(0)
let usage () = usage specs usage_msg
let usage () = usage specs usage_msg
@@
-35,4
+51,3
@@
let parse () =
match !queries with
[] -> raise (Arg.Bad "missing query")
| l -> queries := List.rev l
match !queries with
[] -> raise (Arg.Bad "missing query")
| l -> queries := List.rev l
-