Line data Source code
1 : // Author(s): Jan Friso Groote 2 : // Copyright: see the accompanying file COPYING or copy at 3 : // https://github.com/mCRL2org/mCRL2/blob/master/COPYING 4 : // 5 : // Distributed under the Boost Software License, Version 1.0. 6 : // (See accompanying file LICENSE_1_0.txt or copy at 7 : // http://www.boost.org/LICENSE_1_0.txt) 8 : // 9 : 10 : /** \file state_label_empty.h 11 : * 12 : * \brief This file contains the class with empty state labels. 13 : * \author Jan Friso Groote 14 : */ 15 : 16 : 17 : #ifndef MCRL2_LTS_STATE_LABEL_EMPTY_H 18 : #define MCRL2_LTS_STATE_LABEL_EMPTY_H 19 : 20 : #include <string> 21 : 22 : namespace mcrl2 23 : { 24 : namespace lts 25 : { 26 : 27 : /** \brief Contains empty state values, used for lts's without state valued. 28 : * \details Empty state values are used in labelled transition 29 : * systems which do not have state values, such as 30 : * the .aut format. */ 31 : class state_label_empty 32 : { 33 : public: 34 : 35 : /* \brief Equality on empty state labels. Always returns true. 36 : */ 37 80 : bool operator ==(const state_label_empty&) const 38 : { 39 80 : return true; 40 : } 41 : 42 : /* \brief Non equality on empty state labels. Always returns false. 43 : */ 44 80 : bool operator !=(const state_label_empty& other) const 45 : { 46 80 : return !(*this==other); 47 : } 48 : 49 : /** \brief An operator to concatenate two state labels. */ 50 2040 : state_label_empty operator+(const state_label_empty& ) const 51 : { 52 2040 : return state_label_empty(); 53 : } 54 : 55 : }; 56 : 57 : inline std::string pp(const state_label_empty& ) 58 : { 59 : return "empty"; 60 : } 61 : 62 : 63 : } // namespace lts 64 : } // namespace mcrl2 65 : 66 : #endif 67 : 68 :