48 template <
class SymbolType,
class StateType >
56 template <
class SymbolType,
class StateType >
60template <
class SymbolType,
class StateType >
62 char nonFinalPDAState =
'q';
63 char finalPDAState =
'r';
66 automaton.addFinalState ( finalPDAState );
71 automaton.addInputSymbol ( alphabet::BarSymbol::instance < SymbolType > ( ) );
74 automaton.addPushdownStoreSymbol ( state );
80 if ( transition.first.template is < SymbolType > ( ) ) {
81 const SymbolType & from = transition.first.template get < SymbolType > ( );
86 automaton.addTransition ( nonFinalPDAState, from, pop, nonFinalPDAState, push );
87 automaton.addTransition ( finalPDAState, from, pop, nonFinalPDAState, push );
94 char targetState = afdza.
getFinalStates ( ).contains ( from.second ) ? finalPDAState : nonFinalPDAState;
96 automaton.addTransition ( nonFinalPDAState, alphabet::BarSymbol::instance < SymbolType > ( ), pop, targetState, push );
97 automaton.addTransition ( finalPDAState, alphabet::BarSymbol::instance < SymbolType > ( ), pop, targetState, push );
105 automaton.addTransition ( nonFinalPDAState, alphabet::BarSymbol::instance < SymbolType > ( ), pop, finalPDAState, push );
106 automaton.addTransition ( finalPDAState, alphabet::BarSymbol::instance < SymbolType > ( ), pop, finalPDAState, push );
112template <
class SymbolType,
class StateType >
119 automaton.addInputSymbol ( alphabet::BarSymbol::instance < SymbolType > ( ) );
122 automaton.addPushdownStoreSymbol ( state );
126 const StateType & to = transition.second;
127 if ( transition.first.template is < SymbolType > ( ) ) {
128 const SymbolType & from = transition.first.template get < SymbolType > ( );
138 automaton.addTransition (
automaton.getInitialState ( ), alphabet::BarSymbol::instance < SymbolType > ( ), pop,
automaton.getInitialState ( ), push );
142 auto finalPDAState =
'r';
144 automaton.addFinalState ( finalPDAState );
149 automaton.addTransition (
automaton.getInitialState ( ), alphabet::BarSymbol::instance < SymbolType > ( ), pop, finalPDAState, push );
Represents bottom of the stack symbol used in the visibly pushdown automata.
Definition: BottomOfTheStackSymbol.h:35
Deterministic Z-Automaton in Arc-Factored Normal Form. Computation model for unranked regular tree la...
Definition: ArcFactoredDeterministicZAutomaton.h:65
const ext::set< StateType > & getFinalStates() const &
Definition: ArcFactoredDeterministicZAutomaton.h:145
const ext::map< ext::variant< SymbolType, ext::pair< StateType, StateType > >, StateType > & getTransitions() const &
Definition: ArcFactoredDeterministicZAutomaton.h:284
const ext::set< SymbolType > & getInputAlphabet() const &
Definition: ArcFactoredDeterministicZAutomaton.h:194
const ext::set< StateType > & getStates() const &
Definition: ArcFactoredDeterministicZAutomaton.h:96
Nondeterministic Z-Automaton in Arc-Factored Normal Form. Computation model for unranked regular tree...
Definition: ArcFactoredNondeterministicZAutomaton.h:67
const ext::set< SymbolType > & getInputAlphabet() const &
Definition: ArcFactoredNondeterministicZAutomaton.h:203
const ext::set< StateType > & getFinalStates() const &
Definition: ArcFactoredNondeterministicZAutomaton.h:154
const ext::multimap< ext::variant< SymbolType, ext::pair< StateType, StateType > >, StateType > & getTransitions() const &
Definition: ArcFactoredNondeterministicZAutomaton.h:293
const ext::set< StateType > & getStates() const &
Definition: ArcFactoredNondeterministicZAutomaton.h:105
Deterministic pushdown automaton. Accepts subset of context free languages.
Definition: DPDA.h:78
Definition: ToPrefixPushdownAutomaton.h:41
static automaton::DPDA< SymbolType, ext::variant< StateType, alphabet::BottomOfTheStackSymbol >, char > convert(const automaton::ArcFactoredDeterministicZAutomaton< SymbolType, StateType > &afdza)
Definition: ToPrefixPushdownAutomaton.h:61
Class extending the pair class from the standard library. Original reason is to allow printing of the...
Definition: pair.hpp:43
Class extending the vector class from the standard library. Original reason is to allow printing of t...
Definition: vector.hpp:45
typename T::StateType StateType
Definition: ToGrammarLeftRG.h:64
typename T::SymbolType SymbolType
Definition: ReachableStates.h:176
Definition: ToGrammar.h:31
Definition: converterCommon.hpp:8