22 #ifndef SPOT_LTLAST_NFA_HH
23 # define SPOT_LTLAST_NFA_HH
25 # include "misc/common.hh"
26 # include "misc/hash.hh"
27 # include <boost/shared_ptr.hpp>
40 namespace formula_tree
54 typedef std::list<transition*> state;
55 typedef boost::shared_ptr<formula_tree::node> label;
58 typedef boost::shared_ptr<nfa> ptr;
70 void add_transition(
int src,
int dst,
const label lbl);
71 void set_init_state(
int name);
72 void set_final(
int name);
75 const state* get_init_state();
78 bool is_final(
const state* s);
92 iterator begin(
const state* s)
const;
97 int format_state(
const state* s)
const;
99 const std::string& get_name()
const;
100 void set_name(
const std::string&);
103 state* add_state(
int name);
105 typedef Sgi::hash_map<int, state*, Sgi::hash<int> > is_map;
106 typedef Sgi::hash_map<const state*, int, ptr_hash<state> > si_map;
115 std::set<int> finals_;
120 nfa& operator=(
const nfa& other);
149 nfa::state::const_iterator i_;
155 #endif // SPOT_LTLAST_NFA_HH_