Merged from branch stable-succint-refactor
[SXSI/xpathcomp.git] / OCamlDriver.cpp
index e3b5f44..e20a749 100644 (file)
@@ -211,6 +211,25 @@ extern "C" CAMLprim value caml_xml_tree_is_leaf(value tree, value id){
   CAMLreturn(Val_bool (XMLTREE(tree)->IsLeaf(TREENODEVAL(id))));
 }
 
+extern "C" CAMLprim value caml_xml_tree_tagged_desc(value tree, value id, value tag){
+  CAMLparam3(tree,id,tag);
+  CAMLreturn(Val_int (XMLTREE(tree)->TaggedDesc(TREENODEVAL(id),(TagType) Int_val(tag))));
+}
+
+extern "C" CAMLprim value caml_xml_tree_tagged_next(value tree, value id, value tag){
+  CAMLparam3(tree,id,tag);
+  CAMLreturn(Val_int (XMLTREE(tree)->TaggedNext(TREENODEVAL(id),(TagType) Int_val(tag))));
+}
+
+
+
+
+extern "C" CAMLprim value caml_xml_tree_tagged_foll(value tree, value id, value tag){
+  CAMLparam3(tree,id,tag);
+  CAMLreturn(Val_int (XMLTREE(tree)->TaggedFoll(TREENODEVAL(id),(TagType) Int_val(tag))));
+}
+
+
 extern "C" CAMLprim value caml_xml_tree_next_sibling(value tree, value id){
   CAMLparam2(tree,id);
   CAMLreturn(Val_int (XMLTREE(tree)->NextSibling(TREENODEVAL(id))));
@@ -255,6 +274,12 @@ extern "C" CAMLprim value caml_xml_tree_tag_id(value tree,value id){
   CAMLreturn (Val_int(XMLTREE(tree)->Tag(TREENODEVAL(id))));
 }
 
+extern "C" CAMLprim value caml_xml_tree_subtree_tags(value tree,value id,value tag){
+  CAMLparam3(tree,id,tag);  
+  CAMLreturn (Val_int(XMLTREE(tree)->SubtreeTags(TREENODEVAL(id),Int_val(tag))));
+}
+
+
 extern "C" CAMLprim value caml_xml_tree_register_tag(value tree,value str){
   CAMLparam2(tree,str);
   CAMLlocal1(id);