spot  0.9.2
reachiter.hh
Go to the documentation of this file.
1 // Copyright (C) 2008, 2009, 2011 Laboratoire de Recherche et Développement
2 // de l'Epita (LRDE).
3 // Copyright (C) 2003, 2004 Laboratoire d'Informatique de Paris 6
4 // (LIP6), département Systèmes Répartis Coopératifs (SRC), Université
5 // Pierre et Marie Curie.
6 //
7 // This file is part of Spot, a model checking library.
8 //
9 // Spot is free software; you can redistribute it and/or modify it
10 // under the terms of the GNU General Public License as published by
11 // the Free Software Foundation; either version 2 of the License, or
12 // (at your option) any later version.
13 //
14 // Spot is distributed in the hope that it will be useful, but WITHOUT
15 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 // License for more details.
18 //
19 // You should have received a copy of the GNU General Public License
20 // along with Spot; see the file COPYING. If not, write to the Free
21 // Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
22 // 02111-1307, USA.
23 
24 #ifndef SPOT_TGBAALGOS_REACHITER_HH
25 # define SPOT_TGBAALGOS_REACHITER_HH
26 
27 #include "misc/hash.hh"
28 #include "tgba/tgba.hh"
29 #include <stack>
30 #include <deque>
31 
32 namespace spot
33 {
37  {
38  public:
39  tgba_reachable_iterator(const tgba* a);
40  virtual ~tgba_reachable_iterator();
41 
47  void run();
48 
56  virtual void add_state(const state* s) = 0;
58  virtual const state* next_state() = 0;
60 
63  virtual bool want_state(const state* s) const;
64 
66  virtual void start();
68  virtual void end();
69 
75  virtual void process_state(const state* s, int n, tgba_succ_iterator* si);
88  virtual void process_link(const state* in_s, int in,
89  const state* out_s, int out,
90  const tgba_succ_iterator* si);
91 
92  protected:
93  const tgba* aut_;
94 
95  typedef Sgi::hash_map<const state*, int,
98  };
99 
104  {
105  public:
107 
108  virtual void add_state(const state* s);
109  virtual const state* next_state();
110 
111  protected:
112  std::stack<const state*> todo;
113  };
114 
119  {
120  public:
122 
123  virtual void add_state(const state* s);
124  virtual const state* next_state();
125 
126  protected:
127  std::deque<const state*> todo;
128  };
129 
130 
131 }
132 
133 
134 #endif // SPOT_TGBAALGOS_REACHITER_HH

Please comment this page and report errors about it on the RefDocComments page.
Generated on Mon Jul 2 2012 17:35:47 for spot by doxygen 1.8.1.1