From bf8537a562ad461cdecc45978c36e5ad2b35766f Mon Sep 17 00:00:00 2001 From: Huibo SHI Date: Wed, 2 Apr 2014 08:07:51 +0200 Subject: [PATCH] Verifier si seulement Descendant et Ancestor sont influence sur l'ordre de resultats, la reponse est non. --- src/query_tree.ml | 4 ++-- src/table.ml | 17 ++++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/query_tree.ml b/src/query_tree.ml index 1f58ba6..404c750 100644 --- a/src/query_tree.ml +++ b/src/query_tree.ml @@ -236,8 +236,8 @@ let rec eval_qtree tree start q = | Diff -> diff_list tree ls1 ls2 end in - let res = Tas.sort_of_list tree res in -(* let res = List.sort (Table.compare_node tree) res in*) +(* let res = Tas.sort_of_list tree res in + let res = List.sort (Table.compare_node tree) res in*) QTreeHash.add table_qtree q res; compteur := !compteur + (List.length res); res diff --git a/src/table.ml b/src/table.ml index 0dbad6a..4e81e21 100644 --- a/src/table.ml +++ b/src/table.ml @@ -211,13 +211,16 @@ and eval_star tree ls lr = end done; let l = Hashtbl.fold (fun k _ acc -> k::acc) h [] in - Tas.sort_of_list tree l -(* List.sort (compare_node tree) l *) + l + (* + Tas.sort_of_list tree l + List.sort (compare_node tree) l*) let rec eval_axis tree ls a = let open Xpath.Ast in + let res= match a with Self -> ls @@ -232,8 +235,8 @@ let rec eval_axis tree ls a = | Descendant c -> let lfc = eval_move tree ls Firstchild in let ls2 = eval_star tree lfc [Firstchild;Nextsibling] in let ldes = - if not c then ls2 - else List.merge (compare_node tree) ls2 ls + if not c then ls2 + else List.merge (compare_node tree) ls2 ls in ldes @@ -255,7 +258,7 @@ let rec eval_axis tree ls a = | PrecedingSibling -> let ls2 = eval_star tree ls [Prevsibling] in let lps = eval_move tree ls2 Prevsibling in - lps + lps | Preceding -> let ls2 = eval_axis tree ls (Ancestor true) in let ls3 = eval_axis tree ls2 PrecedingSibling in @@ -266,8 +269,8 @@ let rec eval_axis tree ls a = let ls3 = eval_axis tree ls2 FollowingSibling in let lf = eval_axis tree ls3 (Descendant true) in lf - - + in + List.sort (compare_node tree) res -- 2.17.1