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

mkdfa.h

Go to the documentation of this file.
00001 #ifndef FSM_DFA_H
00002 #define FSM_DFA_H
00003 // $Id: mkdfa.h,v 1.6 2001/08/18 14:22:50 dvermeir Exp $
00004 
00005 #include <vector>
00006 #include <iostream>
00007 
00008 #include "fsm.h"
00009 
00011 
00023 class DfaMaker {
00024 public:
00026 
00029   DfaMaker(const Fsm& fsm, ostream *debug=0);
00030 
00032   ref<Fsm> mkdfa();
00033 
00035   static Fsm::State mkstate(int i);
00036 
00037 private:
00039 
00043   Fsm::STATES& delta(const Fsm::STATES& Q, 
00044                      const Fsm::Symbol& a, Fsm::STATES& R);
00045 
00047   Fsm::STATES& closure(Fsm::STATES& Q) const;
00048 
00050   bool is_final(const Fsm::STATES& Q) const;
00051 
00053   const Fsm&    fsm_;
00055   ostream*      debug_;
00056 };
00057 
00058 #endif

FSM [ August, 2001]