| Revfirstchild
| Prevsibling
-type query_tree = Binop of op * query_tree * query_tree
- | Axis of Xpath.Ast.axis * query_tree
- | Start
- | Dom
- | Tag of QNameSet.t * Tree.NodeKind.t
+type query_tree_desc = Binop of op * query_tree * query_tree
+ | Axis of Xpath.Ast.axis * query_tree
+ | Start
+ | Dom
+ | Tag of QNameSet.t * Tree.NodeKind.t
+
and op = Union | Inter | Diff
-(*and query_tree = {
+
+and query_tree = {
mutable desc : query_tree_desc;
mutable id : int;
mutable hash : int;
}
-*)
+
) l
let rec print_query_tree fmt q =
- match q with
+ match q.desc with
Dom -> Format.fprintf fmt "Dom"
| Start -> Format.fprintf fmt "Start"
| Tag (t,k) -> Format.fprintf fmt "Tag(%a, %a)" QNameSet.print t Tree.NodeKind.print k