26#include <ext/algorithm>
27#include <ext/iostream>
54 template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
58template <
class InputSymbolType,
class PushdownStoreSymbolType,
class StateType >
68 if ( ! transition.first.second.is_epsilon ( ) )
69 alphabet.insert ( transition.first.second.getSymbol ( ) );
70 pushdownAlphabet.insert ( transition.second.second );
71 states.insert ( transition.first.first );
72 states.insert ( transition.second.first );
76 if ( ! transition.first.second.is_epsilon ( ) )
77 alphabet.insert ( transition.first.second.getSymbol ( ) );
78 states.insert ( transition.first.first );
79 states.insert ( transition.second );
83 if ( ! std::get < 1 > ( transition.first ).is_epsilon ( ) )
84 alphabet.insert ( std::get < 1 > ( transition.first ).getSymbol ( ) );
85 pushdownAlphabet.insert ( std::get < 2 > ( transition.first ) );
86 states.insert ( std::get < 0 > ( transition.first ) );
87 states.insert ( transition.second );
93 result.setPushdownStoreAlphabet ( pushdownAlphabet );
94 result.setStates ( states );
97 if ( states.contains ( state ) )
98 result.addFinalState ( state );
101 result.addCallTransition ( transition.first.first, transition.first.second, transition.second.first, transition.second.second );
104 result.addLocalTransition ( transition.first.first, transition.first.second, transition.second );
107 result.addReturnTransition ( std::get < 0 > ( transition.first ), std::get < 1 > ( transition.first ), std::get < 2 > ( transition.first ), transition.second );
Deterministic real time height deterministic pushdown automaton. Accepts subset of context free langu...
Definition: RealTimeHeightDeterministicDPDA.h:89
const StateType & getInitialState() const &
Definition: RealTimeHeightDeterministicDPDA.h:149
const ext::map< ext::pair< StateType, common::symbol_or_epsilon< InputSymbolType > >, ext::pair< StateType, PushdownStoreSymbolType > > & getCallTransitions() const &
Definition: RealTimeHeightDeterministicDPDA.h:1062
const ext::map< ext::pair< StateType, common::symbol_or_epsilon< InputSymbolType > >, StateType > & getLocalTransitions() const &
Definition: RealTimeHeightDeterministicDPDA.h:1082
const ext::map< ext::tuple< StateType, common::symbol_or_epsilon< InputSymbolType >, PushdownStoreSymbolType >, StateType > & getReturnTransitions() const &
Definition: RealTimeHeightDeterministicDPDA.h:1072
const ext::set< StateType > & getFinalStates() const &
Definition: RealTimeHeightDeterministicDPDA.h:227
const PushdownStoreSymbolType & getBottomOfTheStackSymbol() const &
Definition: RealTimeHeightDeterministicDPDA.h:334
Definition: RemoveUnused.h:41
static automaton::RealTimeHeightDeterministicDPDA< InputSymbolType, PushdownStoreSymbolType, StateType > removeUnused(const automaton::RealTimeHeightDeterministicDPDA< InputSymbolType, PushdownStoreSymbolType, StateType > &pda)
Definition: RemoveUnused.h:59
Definition: BarSymbol.cpp:12
typename T::StateType StateType
Definition: ToGrammarLeftRG.h:64
for(const StateType &state :fsm.getStates()) renamingData.insert(std Rename::RenamedAutomaton< T > result(renamingData.at(fsm.getInitialState()))
Definition: Rename.h:253
Definition: ToGrammar.h:31