Refactor the Ata module:
[tatoo.git] / src / xpath / compile.ml
index 8ab26fb..c53057e 100644 (file)
@@ -43,7 +43,7 @@ let compile_axis_test axis (test,kind) phi trans states =
   let q = State.make () in
   let phi = match kind with
     Tree.NodeKind.Node -> phi
-  | _ -> phi %% F.mk_kind kind
+  | _ -> phi %% F.is kind
   in
   let phi', trans', states' =
     match axis with
@@ -229,11 +229,13 @@ let path p =
     in
     (StateSet.add ms ams), natrs, nasts) (StateSet.empty, [], StateSet.empty) p
   in
-  let a = Ata.create states  mstates in
+  let builder = Ata.Builder.make () in
+  StateSet.iter
+    (Ata.Builder.add_state builder ~selecting:true) mstates;
+  StateSet.iter
+    (Ata.Builder.add_state builder) states;
   List.iter (fun (q, l) ->
     List.iter (fun (lab, phi) ->
-      Ata.add_trans a q lab phi
+      Ata.Builder.add_trans builder q lab phi
     ) l) trans;
-  Ata.complete_transitions a;
-  Ata.normalize_negations a;
-  a
+  Ata.Builder.finalize builder