spot
0.8.2
|
00001 // Copyright (C) 2011 Laboratoire de Recherche et Developpement de 00002 // l'Epita (LRDE). 00003 // Copyright (C) 2004 Laboratoire d'Informatique de Paris 6 (LIP6), 00004 // département Systèmes Répartis Coopératifs (SRC), Université Pierre 00005 // et Marie Curie. 00006 // 00007 // This file is part of Spot, a model checking library. 00008 // 00009 // Spot is free software; you can redistribute it and/or modify it 00010 // under the terms of the GNU General Public License as published by 00011 // the Free Software Foundation; either version 2 of the License, or 00012 // (at your option) any later version. 00013 // 00014 // Spot is distributed in the hope that it will be useful, but WITHOUT 00015 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 00016 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 00017 // License for more details. 00018 // 00019 // You should have received a copy of the GNU General Public License 00020 // along with Spot; see the file COPYING. If not, write to the Free 00021 // Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 00022 // 02111-1307, USA. 00023 00024 #ifndef SPOT_TGBAALGOS_RUNDOTDEC_HH 00025 # define SPOT_TGBAALGOS_RUNDOTDEC_HH 00026 00027 #include <map> 00028 #include <utility> 00029 #include <list> 00030 #include "dottydec.hh" 00031 #include "emptiness.hh" 00032 00033 namespace spot 00034 { 00039 class tgba_run_dotty_decorator: public dotty_decorator 00040 { 00041 public: 00042 tgba_run_dotty_decorator(const tgba_run* run); 00043 virtual ~tgba_run_dotty_decorator(); 00044 00045 virtual std::string state_decl(const tgba* a, const state* s, int n, 00046 tgba_succ_iterator* si, 00047 const std::string& label, 00048 bool accepting); 00049 virtual std::string link_decl(const tgba* a, 00050 const state* in_s, int in, 00051 const state* out_s, int out, 00052 const tgba_succ_iterator* si, 00053 const std::string& label); 00054 private: 00055 const tgba_run* run_; 00056 typedef std::pair<tgba_run::steps::const_iterator, int> step_num; 00057 typedef std::list<step_num> step_set; 00058 typedef std::map<const state*, std::pair<step_set, step_set>, 00059 spot::state_ptr_less_than> step_map; 00060 step_map map_; 00061 }; 00062 } 00063 00064 #endif // SPOT_TGBAALGOS_RUNDOTDEC_HH