X-Git-Url: http://git.nguyen.vg/gitweb/?p=tatoo.git;a=blobdiff_plain;f=src%2Fauto%2Feval.ml;h=f51e0d5d775ff2f8a9de416894363d417723bd7e;hp=e4def93b6e5ba4cfdd5f6e13e3a6a0a7d0fc11ec;hb=3d06334f6539fb3376427b7cf063d2b330142b87;hpb=9590bc6b3e882cfb256507be8966917446f84e98 diff --git a/src/auto/eval.ml b/src/auto/eval.ml index e4def93..f51e0d5 100644 --- a/src/auto/eval.ml +++ b/src/auto/eval.ml @@ -14,7 +14,7 @@ (***********************************************************************) (* - Time-stamp: + Time-stamp: *) INCLUDE "utils.ml" @@ -96,7 +96,12 @@ END TRACE(Html.trace (T.preorder tree node) _i "Right BU States: %a
Right BU Trans: %a
" StateSet.print states3 (Ata.TransList.print ~sep:"
") _trans3) in if states3 != states2 then set cache tree node states3; - if states0 != states3 && (not !redo) then redo := true + (*if states0 != states3 && (not !redo) then redo := true *) + if (not !redo) + && not (Ata.TransList.nil == _trans3) + && (states1 != states3) + && not (StateSet.intersect states3 auto.Ata.selection_states) + then redo := true end in loop node; @@ -122,6 +127,7 @@ END let iter = ref 0 in Ata.reset auto; while !redo do + redo := false; redo := top_down_run auto tree node cache !iter; incr iter; done;