Ajout de l'implementation preliminaire.
[tatoo.git] / src / query_tree.mli
diff --git a/src/query_tree.mli b/src/query_tree.mli
new file mode 100644 (file)
index 0000000..9afa1ad
--- /dev/null
@@ -0,0 +1,34 @@
+val all_nodes : Naive_tree.t -> Naive_tree.node list
+(** [all_nodes t] returns all the nodes in the tree [t].
+    Returns an empty list if there are no nodes in the tree.
+ *)
+
+val element_by_tag : Naive_tree.t -> QNameSet.t -> Naive_tree.node list
+(** [element_by_tag t tag] returns all the nodes whose tag equal to [tag] in the tree [t]. *)
+
+val compile_single_path : Xpath.Ast.single_path -> Table.query_tree 
+(** il y a un cycle si on met la definition de query_tree dans le fichier [Query_tree.ml]
+    [compile_single_path spath] returns un query_tree built with [spath]
+*)
+
+val compile_xpath : Xpath.Ast.path -> Table.query_tree 
+(** [compile_xpath path] returns un query_tree built with [xpath]
+*)
+
+val union_list : Naive_tree.t ->Naive_tree.node list -> Naive_tree.node list -> Naive_tree.node list
+(** union two lists without duplicating
+*)
+
+val inter_list :  Naive_tree.t ->Naive_tree.node list -> Naive_tree.node list -> Naive_tree.node list
+(** make a list without duplicating by using the intersection of two lists 
+*)
+
+val diff_list :  Naive_tree.t ->Naive_tree.node list -> Naive_tree.node list -> Naive_tree.node list 
+(** difference two lists without duplicating
+*)
+
+val eval_query_tree : Naive_tree.t -> Naive_tree.node list ->Table.query_tree -> Naive_tree.node list
+(** [eval_query_tree tree start q] returns the set of nodes that evaluate by the query_tree [q].
+    [start] the set of nodes departing.
+    [q] query_tree
+*)