X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Fasta.ml;h=bbbba492cf6c6c01143a31b99e7f4ed2d4e5b2a6;hp=19fe29fc4baedb9a2b0333d9ad112ebc75a9c4ff;hb=c1b43e1dcdb3d0960dbc50db9f226d68ad30c16e;hpb=43df500d1441955e3bc932be2e76318f759f7295 diff --git a/src/asta.ml b/src/asta.ml index 19fe29f..bbbba49 100644 --- a/src/asta.ml +++ b/src/asta.ml @@ -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;