Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

optimizer.h

Go to the documentation of this file.
00001 #ifndef FSM_OPTIMIZER_H
00002 #define FSM_OPTIMIZER_H
00003 // $Id: optimizer.h,v 1.4 2001/08/08 12:33:33 dvermeir Exp $
00004 
00005 #include <iostream>
00006 
00007 #include "fsm.h"
00008 
00010 
00013 class Optimizer {
00014 public:
00016   Optimizer(const Fsm& fsm, ostream* trace = 0);
00017 
00018   ref<Fsm> optimize();
00019 private:
00021 
00024   typedef map<pair<Fsm::State,Fsm::State>,bool> DISTINCT_T;
00025 
00027 
00032   DISTINCT_T distinct_; 
00033   
00035 
00038   bool& distinct(const Fsm::State&, const Fsm::State&);
00039 
00041   Fsm::State eq_class(const Fsm::State& q);
00042 
00044   const Fsm&    fsm_;
00046   ostream*      debug_;
00047 };
00048 
00049 #endif

FSM [ August, 2001]