projects
/
SXSI
/
xpathcomp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add script to test XPath expressions (requires xmlstarlet)
[SXSI/xpathcomp.git]
/
src
/
OCamlDriver.cpp
diff --git
a/src/OCamlDriver.cpp
b/src/OCamlDriver.cpp
index
8eb3a22
..
bb007a8
100644
(file)
--- a/
src/OCamlDriver.cpp
+++ b/
src/OCamlDriver.cpp
@@
-23,17
+23,13
@@
#include "Utils.h"
#include "common_stub.hpp"
#include "Utils.h"
#include "common_stub.hpp"
-extern "C" {
-#include <stdio.h>
-}
-
#define CAMLRAISEMSG(msg) (sxsi_raise_msg((char*) (msg)))
#define CAMLRAISEMSG(msg) (sxsi_raise_msg((char*) (msg)))
-#define XMLTREE(x) (Obj_val<XMLTree>(x))
+#define XMLTREE(x) (Obj_val<XMLTree
*
>(x))
-#define HSET(x) (Obj_val<TagIdSet>(x))
+#define HSET(x) (Obj_val<TagIdSet
*
>(x))
-#define XMLTREEBUILDER(x) (Obj_val<XMLTreeBuilder>(x))
+#define XMLTREEBUILDER(x) (Obj_val<XMLTreeBuilder
*
>(x))
#define TREENODEVAL(i) ((treeNode) (Int_val(i)))
#define TREENODEVAL(i) ((treeNode) (Int_val(i)))
@@
-56,8
+52,9
@@
extern "C" value caml_xml_tree_builder_create(value unit)
{
CAMLparam1(unit);
CAMLlocal1(result);
{
CAMLparam1(unit);
CAMLlocal1(result);
- result = sxsi_alloc_custom<XMLTreeBuilder>();
- Obj_val<XMLTreeBuilder>(result) = new XMLTreeBuilder();
+ result = sxsi_alloc_custom<XMLTreeBuilder*>();
+ Obj_val<XMLTreeBuilder*>(result) = new XMLTreeBuilder();
+
CAMLreturn(result);
}
CAMLreturn(result);
}
@@
-102,8
+99,8
@@
extern "C" value caml_xml_tree_builder_close_document(value vbuilder)
XMLTree * tree = XMLTREEBUILDER(vbuilder)->CloseDocument();
if (tree == NULL)
CAMLRAISEMSG("CloseDocument");
XMLTree * tree = XMLTREEBUILDER(vbuilder)->CloseDocument();
if (tree == NULL)
CAMLRAISEMSG("CloseDocument");
- result = sxsi_alloc_custom<XMLTree>();
- Obj_val<XMLTree>(result) = tree;
+ result = sxsi_alloc_custom<XMLTree
*
>();
+ Obj_val<XMLTree
*
>(result) = tree;
CAMLreturn (result);
}
CAMLreturn (result);
}
@@
-155,12
+152,16
@@
extern "C" value caml_xml_tree_save(value tree,value fd, value name){
extern "C" value caml_xml_tree_load(value fd, value name, value load_tc,value sf){
CAMLparam4(fd, name, load_tc, sf);
extern "C" value caml_xml_tree_load(value fd, value name, value load_tc,value sf){
CAMLparam4(fd, name, load_tc, sf);
- CAMLlocal
1(result
);
+ CAMLlocal
2(result,tmp
);
XMLTree * tree;
try {
XMLTree * tree;
try {
+
tree = XMLTree::Load(Int_val(fd),Bool_val(load_tc),Int_val(sf), String_val(name));
tree = XMLTree::Load(Int_val(fd),Bool_val(load_tc),Int_val(sf), String_val(name));
- result = sxsi_alloc_custom<XMLTree>();
- Obj_val<XMLTree>(result) = tree;
+ result = sxsi_alloc_custom<XMLTree*>();
+
+ Obj_val<XMLTree*>(result) = tree;
+ tmp = sxsi_alloc_custom<long>();
+ Obj_val<long>(tmp) = 3l;
CAMLreturn(result);
}
catch (const std::exception& e){ CAMLRAISEMSG(e.what()); }
CAMLreturn(result);
}
catch (const std::exception& e){ CAMLRAISEMSG(e.what()); }
@@
-416,8
+417,8
@@
NoAlloc extern "C" value caml_unordered_set_length(value hset){
extern "C" value caml_unordered_set_alloc(value unit){
CAMLparam1(unit);
CAMLlocal1(hset);
extern "C" value caml_unordered_set_alloc(value unit){
CAMLparam1(unit);
CAMLlocal1(hset);
- hset = sxsi_alloc_custom<TagIdSet>();
- Obj_val<TagIdSet>(hset) = new TagIdSet();
+ hset = sxsi_alloc_custom<TagIdSet
*
>();
+ Obj_val<TagIdSet
*
>(hset) = new TagIdSet();
CAMLreturn (hset);
}
CAMLreturn (hset);
}