Full implem of BU_over_Max and TP_max (to be tested) + my.xml from thesis + stuffs...
[tatoo.git] / src / asta.ml
index 19fe29f..3189b27 100644 (file)
@@ -74,12 +74,20 @@ let transition asta st lab =
 
 let transitions asta st =
   let filter (s,l,f) = State.compare s st = 0 in
-  let rec remove_states l = match l with
+  let rec remove_states = function
     | [] -> []
-    | (a,s,l) :: tl -> (s,l) :: (remove_states tl) in
+    | (s,l,f) :: tl -> (l,f) :: (remove_states tl) in
   (remove_states (SetT.elements (SetT.filter filter asta.trans_q)),
    (remove_states (SetT.elements (SetT.filter filter asta.trans_r))))
 
+let transitions_lab asta lab = 
+  let filter (s,l,f) = QNameSet.mem lab l in
+    let rec remove_lab = function
+      | [] -> []
+      | (s,l,f) :: tl -> (s,f) :: (remove_lab tl) in
+    (remove_lab (SetT.elements (SetT.filter filter asta.trans_q)),
+     (remove_lab (SetT.elements (SetT.filter filter asta.trans_r))))
+
 let empty = {
   quer = StateSet.empty;
   reco = StateSet.empty;
@@ -113,6 +121,10 @@ let init_top ast  = ast.top <- (StateSet.empty)
 
 let top_states ast = StateSet.elements ast.top
 
+let bot_states ast = ast.bottom
+
+let selec_states ast = ast.selec
+
 let print fmt asta =
   let print_box fmt flag = 
     let pp = Format.fprintf fmt in