-#define VECT(x) ((int*) (x))
-extern "C" CAMLprim value caml_xml_tree_select_below(value tree, value node, value ctags, value dtags){
- CAMLparam4(tree,node,ctags,dtags);
-
- CAMLreturn (Val_int (
- (XMLTREE(tree)->TaggedBelow(TREENODEVAL(node),
- &(VECT(ctags)[1]),
- VECT(ctags)[0],
- &(VECT(dtags)[1]),
- VECT(dtags)[0]))));
-}
-
-extern "C" CAMLprim value caml_xml_tree_select_next(value tree, value node, value ctags, value ftags,value root){
- CAMLparam5(tree,node,ctags,ftags,root);
- CAMLreturn (Val_int (
- (XMLTREE(tree)->TaggedNext(TREENODEVAL(node),
- &(VECT(ctags)[1]),
- VECT(ctags)[0],
- &(VECT(ftags)[1]),
- VECT(ftags)[0],
- TREENODEVAL(root)))));
-}
-
-extern "C" CAMLprim value caml_xml_tree_select_desc_only(value tree, value node,value dtags){
- CAMLparam3(tree,node,dtags);
-
- CAMLreturn (Val_int (
- (XMLTREE(tree)->TaggedDescOnly(TREENODEVAL(node),
- &(VECT(dtags)[1]),
- VECT(dtags)[0]))));
-}
-
-extern "C" CAMLprim value caml_xml_tree_select_foll_only(value tree, value node, value ftags,value root){
- CAMLparam4(tree,node,ftags,root);
- CAMLreturn (Val_int (
- (XMLTREE(tree)->TaggedFollOnly(TREENODEVAL(node),
- &(VECT(ftags)[1]),
- VECT(ftags)[0],
- TREENODEVAL(root)))));
-}
-
-extern "C" CAMLprim value caml_xml_tree_select_desc_or_foll_only(value tree, value node, value ftags,value root){
- CAMLparam4(tree,node,ftags,root);
- CAMLreturn (Val_int (
- (XMLTREE(tree)->TaggedDescOrFollOnly(TREENODEVAL(node),
- &(VECT(ftags)[1]),
- VECT(ftags)[0],
- TREENODEVAL(root)))));
-}
-