//
// NFA.html
//

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


friend  class DFA<BASE>;


protected:

ordinal<state> N;

cset<BASE> stateset S;

cset<BASE> stateset F;

transitions<BASE> T;

cset<BASE> stateset _current;


public:

NFA(const RE<BASE> &e);


void Restart();

void Next(const BASE c);

boolean Final() const;

boolean Valid() const;