(***********************************************************************)
(*
- Time-stamp: <Last modified on 2013-03-05 18:25:03 CET by Kim Nguyen>
+ Time-stamp: <Last modified on 2013-03-08 16:24:41 CET by Kim Nguyen>
*)
INCLUDE "utils.ml"
(* create a new state and add it to the todo queue *)
let nq = State.make () in
auto.states <- StateSet.add nq auto.states;
-(* if not (StateSet.mem q auto.bottom_states) then
+ if not (StateSet.mem q auto.bottom_states) then
auto.bottom_states <- StateSet.add nq auto.bottom_states;
if not (StateSet.mem q auto.top_states) then
- auto.top_states <- StateSet.add nq auto.top_states; *)
+ auto.top_states <- StateSet.add nq auto.top_states;
Hashtbl.add memo_state (q, false) nq;
Queue.add (q, false) todo; nq
in
let nq = if b then q else
let nq = State.make () in
auto.states <- StateSet.add nq auto.states;
-(* if not (StateSet.mem q auto.bottom_states) then
+ if not (StateSet.mem q auto.bottom_states) then
auto.bottom_states <- StateSet.add nq auto.bottom_states;
if not (StateSet.mem q auto.top_states) then
- auto.top_states <- StateSet.add nq auto.top_states; *)
+ auto.top_states <- StateSet.add nq auto.top_states;
nq
in
Hashtbl.add memo_state key nq; nq