fixed typo in print_xml_fast
[SXSI/xpathcomp.git] / OCamlDriver.cpp
index f56b4a3..8603c11 100644 (file)
@@ -95,6 +95,9 @@ extern "C" CAMLprim value caml_call_shredder_string(value data,value sf, value i
   };
 }
 
+
+
+
 void traversal_rec(XMLTree* tree, treeNode id){
  DocID tid; 
   if (id == NULLT)
@@ -171,8 +174,8 @@ extern "C" CAMLprim value caml_text_collection_count_contains(value tree,value s
 }
 extern "C" CAMLprim value caml_text_collection_count(value tree,value str){
   CAMLparam2(tree,str);
-  //uchar * cstr = (uchar *) String_val(str);
-  NOT_IMPLEMENTED("text_collection_count");
+  uchar * cstr = (uchar *) String_val(str);
+  CAMLreturn (Val_int((XMLTREE(tree)->Count(cstr))));
   CAMLreturn (Val_unit);
   
 }
@@ -258,6 +261,10 @@ extern "C" CAMLprim value caml_xml_tree_tagged_foll(value tree, value id, value
   CAMLparam3(tree,id,tag);
   CAMLreturn(Val_int (XMLTREE(tree)->TaggedFoll(TREENODEVAL(id),(TagType) Int_val(tag))));
 }
+extern "C" CAMLprim value caml_xml_tree_tagged_foll_below(value tree, value id, value tag,value root){
+  CAMLparam4(tree,id,tag,root);
+  CAMLreturn(Val_int (XMLTREE(tree)->TaggedFollBelow(TREENODEVAL(id),(TagType) Int_val(tag),TREENODEVAL(root))));
+}
 
 
 extern "C" CAMLprim value caml_xml_tree_next_sibling(value tree, value id){
@@ -370,7 +377,7 @@ extern "C" CAMLprim value caml_int_vector_set(value vec, value i, value v){
 
 
 #define VECT(x)  ((int*) (x))
-extern "C" CAMLprim value caml_xml_tree_tagged_below(value tree, value node, value ctags, value dtags){
+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 (
@@ -381,7 +388,7 @@ extern "C" CAMLprim value caml_xml_tree_tagged_below(value tree, value node, val
                                                   VECT(dtags)[0]))));                                     
 }
 
-extern "C" CAMLprim value caml_xml_tree_tagged_next(value tree, value node, value ctags, value ftags,value root){
+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),
@@ -392,7 +399,7 @@ extern "C" CAMLprim value caml_xml_tree_tagged_next(value tree, value node, valu
                                                  TREENODEVAL(root)))));
 }
 
-extern "C" CAMLprim value caml_xml_tree_tagged_desc_only(value tree, value node,value dtags){
+extern "C" CAMLprim value caml_xml_tree_select_desc_only(value tree, value node,value dtags){
   CAMLparam3(tree,node,dtags);
    
   CAMLreturn (Val_int (
@@ -401,7 +408,7 @@ extern "C" CAMLprim value caml_xml_tree_tagged_desc_only(value tree, value node,
                                                   VECT(dtags)[0]))));                                     
 }
 
-extern "C" CAMLprim value caml_xml_tree_tagged_foll_only(value tree, value node, value ftags,value root){
+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),
@@ -410,7 +417,7 @@ extern "C" CAMLprim value caml_xml_tree_tagged_foll_only(value tree, value node,
                                                  TREENODEVAL(root)))));
 }
 
-extern "C" CAMLprim value caml_xml_tree_tagged_desc_or_foll_only(value tree, value node, value ftags,value 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),