Finished fixing the pre-order traversal of the grammar.
[SXSI/xpathcomp.git] / src / OCamlDriver.cpp
index 0f15f49..7a12c7f 100644 (file)
@@ -920,7 +920,6 @@ extern "C" value caml_grammar_get_symbol_at(value grammar, value symbol, value p
 {
   CAMLparam3(grammar, symbol, preorder);
   CAMLreturn(Val_long(GRAMMAR(grammar)->getSymbolAt(Long_val(symbol), Int_val(preorder))));
-
 }
 
 extern "C" value caml_grammar_first_child(value grammar, value rule, value pos)
@@ -949,3 +948,21 @@ extern "C" value caml_grammar_get_tag(value grammar, value symbol)
   res = caml_copy_string(s);
   CAMLreturn(res);
 }
+
+extern "C" value caml_grammar_get_id1(value grammar, value rule)
+{
+  CAMLparam1(grammar);
+  CAMLreturn(Val_long(GRAMMAR(grammar)->getID1(Long_val(rule))));
+}
+
+extern "C" value caml_grammar_get_id2(value grammar, value rule)
+{
+  CAMLparam1(grammar);
+  CAMLreturn(Val_long(GRAMMAR(grammar)->getID2(Long_val(rule))));
+}
+
+extern "C" value caml_grammar_get_param_pos(value grammar, value rule)
+{
+  CAMLparam1(grammar);
+  CAMLreturn(Val_int(GRAMMAR(grammar)->getParamPos(Long_val(rule))));
+}