1 #include "xml-tree-builder.hpp"
2 #include "common_stub.hpp"
6 static xml_tree_builder*& OBJ_VAL(value v)
8 return Obj_val<xml_tree_builder*>(v);
11 ML_BINDING value caml_xml_tree_builder_create(value unit)
15 result = sxsi_alloc_custom<xml_tree_builder*>();
16 OBJ_VAL(result) = new xml_tree_builder();
21 ML_BINDING value caml_xml_tree_builder_open_document(value vbuilder,
26 CAMLparam4(vbuilder, vsrate, vdtc, vidxtype);
27 int sample_rate = Int_val(vsrate);
28 bool disable_tc = Bool_val(vdtc);
29 TextCollectionBuilder::index_type_t idx_type;
30 switch (Int_val(vidxtype)){
32 idx_type = TextCollectionBuilder::index_type_default;
35 idx_type = TextCollectionBuilder::index_type_swcsa;
38 idx_type = TextCollectionBuilder::index_type_rlcsa;
41 sxsi_raise_msg("Invalid Index Type");
44 OBJ_VAL(vbuilder)->open_document(disable_tc,
47 CAMLreturn (Val_unit);
51 ML_BINDING value caml_xml_tree_builder_close_document(value vbuilder)
56 xml_tree *tree = OBJ_VAL(vbuilder)->close_document();
58 sxsi_raise_msg("caml_close_document");
59 result = sxsi_alloc_custom<xml_tree*>();
60 Obj_val<xml_tree*>(result) = tree;
64 ML_BINDING value caml_xml_tree_builder_open_tag(value vbuilder, value vtag)
66 CAMLparam2(vbuilder, vtag);
67 const char * tag = String_val(vtag);
68 OBJ_VAL(vbuilder)->open_tag(std::string(tag));
69 CAMLreturn (Val_unit);
72 ML_BINDING value caml_xml_tree_builder_close_tag(value vbuilder, value vtag)
74 CAMLparam2(vbuilder, vtag);
75 const char * tag = String_val(vtag);
76 OBJ_VAL(vbuilder)->close_tag(std::string(tag));
77 CAMLreturn (Val_unit);
80 ML_BINDING value caml_xml_tree_builder_text(value vbuilder, value vtext)
82 CAMLparam2(vbuilder, vtext);
83 const char * text = String_val(vtext);
84 OBJ_VAL(vbuilder)->text(std::string(text));
85 CAMLreturn (Val_unit);