in
let new_st,new_dst, new_ctx =
match axis with
-
| Child | Descendant ->
+ if (TagSet.is_finite test)
+ then conf.entry_points <- (TagSet.choose test,Ptset.singleton q_src)::conf.entry_points;
let left,right =
if nrec then `LLeft,`RRight
else `Left,`Right
let s = Ptset.union anc_st (Ptset.from_list [])
in if has_backward then Ptset.add config.st_from_root s else s
in { Ata.id = Oo.id (object end);
- Ata.states = if has_backward then Ptset.add config.st_from_root a_st else a_st;
+ Ata.states = Hashtbl.fold (fun q _ acc -> Ptset.add q acc) phi Ptset.empty;
Ata.init = Ptset.singleton config.st_root;
Ata.final = Ptset.union anc_st config.final_state;
Ata.universal = Ptset.add a_dst (Ptset.from_list config.univ_states);
Ata.phi = phi;
- Ata.sigma = Ata.HTagSet.create 17;
+ Ata.sigma = Hashtbl.create 17;
Ata.starstate = config.starstate;
},config.entry_points,!contains