projects
/
SXSI
/
xpathcomp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add script to test XPath expressions (requires xmlstarlet)
[SXSI/xpathcomp.git]
/
src
/
nodeSet.ml
diff --git
a/src/nodeSet.ml
b/src/nodeSet.ml
index
2716d61
..
e1f5476
100644
(file)
--- a/
src/nodeSet.ml
+++ b/
src/nodeSet.ml
@@
-141,21
+141,19
@@
module Mat : S with type t = Tree.node mat =
let tag_fold f tree t tag acc =
let rec loop close node acc =
let tag_fold f tree t tag acc =
let rec loop close node acc =
- if node
== Tree.nil
then acc
+ if node
> Tree.nil && node < close
then acc
else
let acc = f node acc in
else
let acc = f node acc in
- let acc' = loop close (Tree.tagged_descendant tree node tag) acc in
- loop close (Tree.tagged_following_before tree node tag close) acc'
+ loop close (Tree.tagged_next tree node tag) acc
in
in
- let t = fst_tagged tree t tag in
- loop (Tree.closing tree t) t acc
+ let t
'
= fst_tagged tree t tag in
+ loop (Tree.closing tree t) t
'
acc
let tag_iter f tree t tag =
let rec loop close node =
let tag_iter f tree t tag =
let rec loop close node =
- if node
!= Tree.nil
then begin
+ if node
> Tree.nil && node < close
then begin
f node;
f node;
- loop close (Tree.tagged_descendant tree node tag);
- loop close (Tree.tagged_following_before tree node tag close);
+ loop close (Tree.tagged_next tree node tag);
end
in
let t' = fst_tagged tree t tag in
end
in
let t' = fst_tagged tree t tag in