let print fmt (st,la,f) =
Format.fprintf fmt "(%a,%s,%a)"
State.print st
- "TODO la"
+ (QNameSet.to_string la)
Formula.print f
end
include Set.Make(Transition)
end
+type transition = Transition.t
+
type t = {
mutable reco : StateSet.t;
mutable selec : StateSet.t;
| (a,s,l) :: tl -> (s,l) :: (remove_states tl) in
remove_states (SetT.elements (SetT.filter filter asta.trans))
-let dummy = {
+let empty = {
reco = StateSet.empty;
selec = StateSet.empty;
bottom = StateSet.empty;
trans = SetT.empty;
}
+let any_label = QNameSet.complement (QNameSet.empty)
+
+let new_state () = State.make()
+
+let add_tr ast tr = ast.trans <- (SetT.add tr (ast.trans))
+
+let add_reco ast st = ast.reco <- (StateSet.add st (ast.reco))
+
+let add_selec ast st = ast.selec <- (StateSet.add st (ast.selec))
+
+let add_bot ast st = ast.bottom <- (StateSet.add st (ast.bottom))
+
+let add_top ast st = ast.top <- (StateSet.add st (ast.top))
+
+let top_states ast = StateSet.elements ast.top
let print fmt asta =
let pp = Format.fprintf fmt in