Remove hard-coded acess to SXSI for tag operations.
[SXSI/xpathcomp.git] / src / OCamlDriver.cpp
index 7a12c7f..be46709 100644 (file)
@@ -940,11 +940,11 @@ extern "C" value caml_grammar_is_nil(value grammar, value rule)
   CAMLreturn(Val_bool(GRAMMAR(grammar)->isNil(Long_val(rule))));
 }
 
-extern "C" value caml_grammar_get_tag(value grammar, value symbol)
+extern "C" value caml_grammar_get_tag(value grammar, value tag)
 {
   CAMLparam1(grammar);
   CAMLlocal1(res);
-  const char * s = (GRAMMAR(grammar)->getTagName(Long_val(symbol) >> 2)).c_str();
+  const char * s = (GRAMMAR(grammar)->getTagName(Long_val(tag))).c_str();
   res = caml_copy_string(s);
   CAMLreturn(res);
 }
@@ -966,3 +966,16 @@ extern "C" value caml_grammar_get_param_pos(value grammar, value rule)
   CAMLparam1(grammar);
   CAMLreturn(Val_int(GRAMMAR(grammar)->getParamPos(Long_val(rule))));
 }
+
+extern "C" value caml_grammar_translate_tag(value grammar, value tag)
+{
+  CAMLparam1(grammar);
+  CAMLreturn(Val_int(GRAMMAR(grammar)->translateTag(Int_val(tag))));
+}
+
+extern "C" value caml_grammar_register_tag(value grammar, value str)
+{
+  CAMLparam2(grammar, str);
+  char * s = String_val(str);
+  CAMLreturn(Val_int(GRAMMAR(grammar)->getTagID(s)));
+}