let la (st,la,f) = la
let fo (st,la,f) = f
let print fmt (st,la,f) =
- Format.fprintf fmt "(%a,%s,%a)"
+ Format.fprintf fmt "%a ----%s---> %a"
State.print st
(QNameSet.to_string la)
Formula.print f
type transition = Transition.t
type t = {
+ mutable quer : StateSet.t;
mutable reco : StateSet.t;
mutable selec : StateSet.t;
mutable bottom : StateSet.t;
remove_states (SetT.elements (SetT.filter filter asta.trans))
let empty = {
+ quer = StateSet.empty;
reco = StateSet.empty;
selec = StateSet.empty;
bottom = StateSet.empty;
let add_tr ast tr = ast.trans <- (SetT.add tr (ast.trans))
+let add_quer ast st = ast.quer <- (StateSet.add st (ast.quer))
+
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_top ast st = ast.top <- (StateSet.add st (ast.top))
+let init_top ast = ast.top <- (StateSet.empty)
+
let top_states ast = StateSet.elements ast.top
let print fmt asta =
let pp = Format.fprintf fmt in
- pp "Recognizing states: ";
+ pp "Query states: ";
+ StateSet.print fmt asta.quer;
+ pp "\nRecognizing states: ";
StateSet.print fmt asta.reco;
pp "\nSelecting states: ";
StateSet.print fmt asta.selec;
pp "\nTop states: ";
StateSet.print fmt asta.top;
pp "\nTransitions: \n";
- Format.fprintf fmt "{@[<hov 2> %a @]}" (* todo: check boxes *)
- (Pretty.print_list ~sep:"@, " (Transition.print))
- (SetT.elements (asta.trans))
-
+ Format.fprintf fmt "{";
+ Format.open_vbox 20;
+ SetT.iter (fun x -> Format.fprintf fmt "%a @." Transition.print x)
+ (asta.trans);
+ Format.print_flush ();
+ Format.fprintf fmt "}"
+
let to_file out asta = ()