26#include <ext/algorithm>
61 requires isDFA < T > || isNFA < T > || isEpsilonNFA < T > || isMultiInitialStateNFA < T > || isMultiInitialStateEpsilonNFA < T > || isCompactNFA < T > || isExtendedNFA < T >
73 requires isDFTA < T > || isNFTA < T >
85 requires isAFDZA < T > || isAFNZA < T >
90requires isDFA < T > || isNFA < T > || isEpsilonNFA < T > || isMultiInitialStateNFA < T > || isMultiInitialStateEpsilonNFA < T > || isCompactNFA < T > || isExtendedNFA < T >
97 Qi.at( 0 ) = fsm.getFinalStates( );
103 Qi.push_back(
Qi.at(
i - 1 ) );
104 for(
const auto & p :
Qi.at(
i - 1 ) )
105 for(
const auto & t : fsm.getTransitionsToState( p ) )
106 Qi.at(
i ).insert( t.first.first );
108 if(
Qi.at(
i ) ==
Qi.at(
i - 1 ) )
117requires isDFTA < T > || isNFTA < T >
124 Qi.at( 0 ) = fta.getFinalStates( );
132 Qi.push_back(
Qi.at(
i - 1 ) );
133 for(
const auto & p :
Qi.at(
i - 1 ) )
134 for(
const auto & t : fta.getTransitionsToState ( p ) )
135 Qi.at(
i ).insert( t.first.second.begin ( ), t.first.second.end ( ) );
137 }
while (
Qi.at(
i ) !=
Qi.at(
i - 1 ) );
143requires isAFDZA < T > || isAFNZA < T >
150 Qi.at( 0 ) = afza.getFinalStates( );
158 Qi.push_back(
Qi.at(
i - 1 ) );
159 for(
const auto & p :
Qi.at(
i - 1 ) )
160 for(
const auto & t : afza.getTransitionsToState ( p ) ) {
162 const auto& lhs = t.first.template get < ext::pair < StateType, StateType > > ( );
163 Qi.at(
i ).insert( lhs.first );
164 Qi.at(
i ).insert( lhs.second );
168 }
while (
Qi.at(
i ) !=
Qi.at(
i - 1 ) );
Definition: UsefulStates.h:50
static ext::set< typename T::StateType > usefulStates(const T &fsm)
static ext::set< typename T::StateType > usefulStates(const T &fta)
static ext::set< typename T::StateType > usefulStates(const T &afza)
Class extending the deque class from the standard library. Original reason is to allow printing of th...
Definition: deque.hpp:44
Class extending the pair class from the standard library. Original reason is to allow printing of the...
Definition: pair.hpp:43
typename T::StateType StateType
Definition: ToGrammarLeftRG.h:64
int i
Definition: AllEpsilonClosure.h:118
ext::deque< ext::set< StateType > > Qi
Definition: ReachableStates.h:95
Definition: ToGrammar.h:31