//
// DFA.html
//

template<class BASE>
class DFA : virtual public automata<BASE>


friend  class NFA<BASE>;


protected:

ordinal<state> N;

state S;

cset<BASE> stateset F;

transitions<BASE> T;

state _current;


public:

DFA(const NFA<BASE> &fa);


void Restart();

void Next(const BASE a);

boolean Final() const;

Boolean Valid() const;


const BASE *Match(const BASE *str);