+++ /dev/null
-
-#include <assert.h>
-#include <mlvalues.h>
-#include <memory.h>
-
-#include "minidom.h"
-
-#define Val_ptr(p) ((value) (p))
-#define Val_option(p,f) ((p != NULL) ? ml_some(f(p)) : Val_unit)
-#define Val_mDOMString(s) (copy_string((char*) (s)))
-#define mDOMString_val(v) ((mDOMStringRef) String_val(v))
-
-static value
-ml_some(value v)
-{
- CAMLparam1(v);
- value ret = alloc_small(1,0);
- Field(ret,0) = v;
- CAMLreturn(ret);
-}
-
-value
-ml_string_of_mDOMString(value s)
-{
- CAMLparam1(s);
- CAMLreturn(s);
-}
-
-value
-ml_mDOMString_of_string(value s)
-{
- CAMLparam1(s);
- CAMLreturn(s);
-}
-
-value
-ml_doc_load(value file_name)
-{
- mDOMDocRef doc_ref;
-
- CAMLparam1(file_name);
-
- doc_ref = mdom_load(String_val(file_name), FALSE, NULL);
- if (doc_ref == NULL) failwith("minidom: could not load document");
-
- CAMLreturn((value) doc_ref);
-}
-
-value
-ml_doc_unload(value doc)
-{
- CAMLparam1(doc);
-
- mdom_unload((mDOMDocRef) doc);
-
- CAMLreturn(Val_unit);
-}
-
-value
-ml_doc_new(value s)
-{
- mDOMDocRef doc_ref;
-
- CAMLparam1(s);
-
- doc_ref = mdom_doc_new(mDOMString_val(s));
- if (doc_ref == NULL) failwith("minidom: could not create new document");
-
- CAMLreturn((value) doc_ref);
-}
-
-
-value
-ml_doc_get_root_node(value doc)
-{
- mDOMNodeRef root;
-
- CAMLparam1(doc);
- root = mdom_doc_get_root_node((mDOMDocRef) doc);
- if (root == NULL) failwith("minidom: document has no root node!");
-
- CAMLreturn((value) root);
-}
-
-value
-ml_doc_add_entity(value doc, value name, value content)
-{
- mDOMEntityRef ent;
-
- CAMLparam3(doc, name, content);
- ent = mdom_doc_add_entity((mDOMDocRef) doc, mDOMString_val(name), mDOMString_val(content));
- if (ent == NULL) failwith("minidom: could not add entity");
-
- CAMLreturn((value) ent);
-}
-
-value
-ml_doc_get_entity(value doc, value name)
-{
- mDOMEntityRef ent;
-
- CAMLparam2(doc, name);
- ent = mdom_doc_get_entity((mDOMDocRef) doc, mDOMString_val(name));
-
- CAMLreturn(Val_option(ent, Val_ptr));
-}
-
-value
-ml_doc_get_predefined_entity(value name)
-{
- mDOMEntityRef ent;
-
- CAMLparam1(name);
- ent = mdom_get_predefined_entity(mDOMString_val(name));
-
- CAMLreturn(Val_option(ent, Val_ptr));
-}
-
-value
-ml_entity_get_content(value ent)
-{
- CAMLparam1(ent);
- CAMLreturn(Val_mDOMString(mdom_entity_get_content((mDOMEntityRef) ent)));
-}
-
-value
-ml_node_is_text(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_bool(mdom_node_is_text((mDOMNodeRef) node)));
-}
-
-value
-ml_node_is_element(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_bool(mdom_node_is_element((mDOMNodeRef) node)));
-}
-
-value
-ml_node_is_blank(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_bool(mdom_node_is_blank((mDOMNodeRef) node)));
-}
-
-value
-ml_node_is_entity_ref(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_bool(mdom_node_is_entity_ref((mDOMNodeRef) node)));
-}
-
-value
-ml_node_get_type(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_int(mdom_node_get_type((mDOMNodeRef) node)));
-}
-
-value
-ml_node_get_name(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_option(mdom_node_get_name((mDOMNodeRef) node), Val_mDOMString));
-}
-
-value
-ml_node_get_content(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_option(mdom_node_get_content((mDOMNodeRef) node), Val_mDOMString));
-}
-
-value
-ml_node_get_ns_uri(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_option(mdom_node_get_ns_uri((mDOMNodeRef) node), Val_mDOMString));
-}
-
-value
-ml_node_get_attribute(value node, value name)
-{
- CAMLparam2(node,name);
- CAMLreturn(Val_option(mdom_node_get_attribute((mDOMNodeRef) node, String_val(name)), Val_mDOMString));
-}
-
-value
-ml_node_get_attribute_ns(value node, value name, value ns_uri)
-{
- CAMLparam2(node,name);
- CAMLreturn(Val_option(mdom_node_get_attribute_ns((mDOMNodeRef) node,
- String_val(name),
- String_val(ns_uri)), Val_mDOMString));
-}
-
-value
-ml_node_get_parent(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_option(mdom_node_get_parent((mDOMNodeRef) node), Val_ptr));
-}
-
-value
-ml_node_get_prev_sibling(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_option(mdom_node_get_prev_sibling((mDOMNodeRef) node), Val_ptr));
-}
-
-value
-ml_node_get_next_sibling(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_option(mdom_node_get_next_sibling((mDOMNodeRef) node), Val_ptr));
-}
-
-value
-ml_node_get_first_child(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_option(mdom_node_get_first_child((mDOMNodeRef) node), Val_ptr));
-}
-
-value
-ml_node_get_first_attribute(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_option(mdom_node_get_first_attribute((mDOMNodeRef) node), Val_ptr));
-}
-
-value
-ml_node_is_first(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_bool(mdom_node_is_first((mDOMNodeRef) node)));
-}
-
-value
-ml_node_is_last(value node)
-{
- CAMLparam1(node);
- CAMLreturn(Val_bool(mdom_node_is_last((mDOMNodeRef) node)));
-}
-
-value
-ml_attr_get_name(value attr)
-{
- CAMLparam1(attr);
- CAMLreturn(Val_option(mdom_attr_get_name((mDOMAttrRef) attr), Val_mDOMString));
-}
-
-value
-ml_attr_get_ns_uri(value attr)
-{
- CAMLparam1(attr);
- CAMLreturn(Val_option(mdom_attr_get_ns_uri((mDOMAttrRef) attr), Val_mDOMString));
-}
-
-value
-ml_attr_get_value(value attr)
-{
- CAMLparam1(attr);
- CAMLreturn(Val_option(mdom_attr_get_value((mDOMAttrRef) attr), Val_mDOMString));
-}
-
-value
-ml_attr_get_prev_sibling(value attr)
-{
- CAMLparam1(attr);
- CAMLreturn(Val_option(mdom_attr_get_prev_sibling((mDOMAttrRef) attr), Val_ptr));
-}
-
-value
-ml_attr_get_next_sibling(value attr)
-{
- CAMLparam1(attr);
- CAMLreturn(Val_option(mdom_attr_get_next_sibling((mDOMAttrRef) attr), Val_ptr));
-}
-
-value
-ml_attr_get_parent(value attr)
-{
- CAMLparam1(attr);
- CAMLreturn(Val_option(mdom_attr_get_parent((mDOMAttrRef) attr), Val_ptr));
-}
-