spot  1.0
explicit.hh
Go to the documentation of this file.
1 // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6),
2 // département Systèmes Répartis Coopératifs (SRC), Université Pierre
3 // et Marie Curie.
4 //
5 // This file is part of Spot, a model checking library.
6 //
7 // Spot is free software; you can redistribute it and/or modify it
8 // under the terms of the GNU General Public License as published by
9 // the Free Software Foundation; either version 3 of the License, or
10 // (at your option) any later version.
11 //
12 // Spot is distributed in the hope that it will be useful, but WITHOUT
13 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 // License for more details.
16 //
17 // You should have received a copy of the GNU General Public License
18 // along with this program. If not, see <http://www.gnu.org/licenses/>.
19 
20 #ifndef SPOT_EVTGBA_EXPLICIT_HH
21 # define SPOT_EVTGBA_EXPLICIT_HH
22 
23 #include "evtgba.hh"
24 #include <list>
25 #include "misc/hash.hh"
26 
27 namespace spot
28 {
29  // FIXME: doc me
30  class evtgba_explicit: public evtgba
31  {
32  public:
33  struct transition;
34  typedef std::list<transition*> transition_list;
35  struct state
36  {
38  };
39 
41  struct transition
42  {
43  const symbol* label;
47  };
48 
50  virtual ~evtgba_explicit();
51 
52  // evtgba interface
53  virtual evtgba_iterator* init_iter() const;
54  virtual evtgba_iterator* succ_iter(const spot::state* s) const;
55  virtual evtgba_iterator* pred_iter(const spot::state* s) const;
56  virtual std::string format_state(const spot::state* state) const;
57  virtual const symbol_set& all_acceptance_conditions() const;
58  virtual const symbol_set& alphabet() const;
59 
60  transition* add_transition(const std::string& source,
61  const rsymbol& label,
62  rsymbol_set acc,
63  const std::string& dest);
67  void set_init_state(const std::string& name);
68  void declare_acceptance_condition(const rsymbol& acc);
69  protected:
70 
71  state* declare_state(const std::string& name);
72 
73  typedef Sgi::hash_map<const std::string, evtgba_explicit::state*,
75  typedef Sgi::hash_map<const evtgba_explicit::state*, std::string,
77 
80 
84  };
85 
88  {
89  public:
91  : state_(s)
92  {
93  }
94 
95  virtual int compare(const spot::state* other) const;
96  virtual size_t hash() const;
97  virtual state_evtgba_explicit* clone() const;
98 
100  {
101  }
102 
103  const evtgba_explicit::state* get_state() const;
104  private:
106  };
107 
108 }
109 
110 #endif // SPOT_EVTGBA_EXPLICIT_HH

Please comment this page and report errors about it on the RefDocComments page.
Generated on Sat Oct 27 2012 09:34:32 for spot by doxygen 1.8.1.2