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
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