(***********************************************************************)
(*
- Time-stamp: <Last modified on 2013-03-15 23:42:43 CET by Kim Nguyen>
+ Time-stamp: <Last modified on 2013-03-16 07:38:04 CET by Kim Nguyen>
*)
INCLUDE "utils.ml"
(Obj.magic has_right)
let eval_trans auto ltrs fcs nss ps ss is_left is_right has_left has_right kind =
- let i = int_of_conf is_left is_right has_left has_right kind
+ let n = int_of_conf is_left is_right has_left has_right kind
and k = (fcs.StateSet.id :> int)
and l = (nss.StateSet.id :> int)
- and m = (ps.StateSet.id :> int)
- in
-
+ and m = (ps.StateSet.id :> int) in
let rec loop ltrs ss =
- let j = (ltrs.TransList.id :> int)
- and n = (ss.StateSet.id :> int) in
+ let i = (ltrs.TransList.id :> int)
+ and j = (ss.StateSet.id :> int) in
let (new_ltrs, new_ss) as res =
let res = Cache.N6.find auto.cache6 i j k l m n in
if res == dummy6 then
(***********************************************************************)
(*
- Time-stamp: <Last modified on 2013-03-15 23:46:44 CET by Kim Nguyen>
+ Time-stamp: <Last modified on 2013-03-16 09:39:39 CET by Kim Nguyen>
*)
INCLUDE "utils.ml"
TRACE(Html.trace (T.preorder tree node) _i "Right BU States: %a<br/>Right BU Trans: %a<br/>" StateSet.print states3 (Ata.TransList.print ~sep:"<br/>") _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;
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;
(***********************************************************************)
(*
- Time-stamp: <Last modified on 2013-03-11 00:11:53 CET by Kim Nguyen>
+ Time-stamp: <Last modified on 2013-03-16 07:01:10 CET by Kim Nguyen>
*)
module NodeKind =
struct
type t =
- Document | Element | Text | Comment | Attribute | ProcessingInstruction
+ Document | Element | Text | Attribute | Comment | ProcessingInstruction
| Node
let to_string =