Deterministic visibly pushdown automaton. Accepts subset of context free languages.  
 More...
|  | 
|  | VisiblyPushdownDPDA (ext::set< StateType > states, ext::set< InputSymbolType > callAlphabet, ext::set< InputSymbolType > returnAlphabet, ext::set< InputSymbolType > localAlphabet, ext::set< PushdownStoreSymbolType > pushdownStoreAlphabet, StateType initialState, PushdownStoreSymbolType bottomOfTheStackSymbol, ext::set< StateType > finalStates) | 
|  | Creates a new instance of the automaton with a concrete set of states, call, return, and local alphabets, pushdown store alphabet, initial state, bottom of the stack symbol, and a set of final states.  More... 
 | 
|  | 
|  | VisiblyPushdownDPDA (StateType initialState, PushdownStoreSymbolType bottomOfTheStackSymbol) | 
|  | Creates a new instance of the automaton with a concrete initial state and bottom of the stack symbol.  More... 
 | 
|  | 
| const StateType & | getInitialState () const & | 
|  | 
| StateType && | getInitialState () && | 
|  | 
| bool | setInitialState (StateType state) | 
|  | 
| const ext::set< StateType > & | getStates () const & | 
|  | 
| ext::set< StateType > && | getStates () && | 
|  | 
| bool | addState (StateType state) | 
|  | 
| void | setStates (ext::set< StateType > states) | 
|  | 
| bool | removeState (const StateType &state) | 
|  | 
| const ext::set< StateType > & | getFinalStates () const & | 
|  | 
| ext::set< StateType > && | getFinalStates () && | 
|  | 
| bool | addFinalState (StateType state) | 
|  | 
| void | setFinalStates (ext::set< StateType > states) | 
|  | 
| bool | removeFinalState (const StateType &state) | 
|  | 
| const ext::set< PushdownStoreSymbolType > & | getPushdownStoreAlphabet () const & | 
|  | 
| ext::set< PushdownStoreSymbolType > && | getPushdownStoreAlphabet () && | 
|  | 
| bool | addPushdownStoreSymbol (PushdownStoreSymbolType symbol) | 
|  | 
| void | addPushdownStoreSymbols (ext::set< PushdownStoreSymbolType > symbols) | 
|  | 
| void | setPushdownStoreAlphabet (ext::set< PushdownStoreSymbolType > symbols) | 
|  | 
| bool | removePushdownStoreSymbol (const PushdownStoreSymbolType &symbol) | 
|  | 
| const PushdownStoreSymbolType & | getBottomOfTheStackSymbol () const & | 
|  | 
| PushdownStoreSymbolType && | getBottomOfTheStackSymbol () && | 
|  | 
| bool | setBottomOfTheStackSymbol (PushdownStoreSymbolType symbol) | 
|  | 
| const ext::set< InputSymbolType > & | getCallInputAlphabet () const & | 
|  | 
| ext::set< InputSymbolType > && | getCallInputAlphabet () && | 
|  | 
| bool | addCallInputSymbol (InputSymbolType symbol) | 
|  | 
| void | addCallInputSymbols (ext::set< InputSymbolType > symbols) | 
|  | 
| void | setCallInputAlphabet (ext::set< InputSymbolType > symbols) | 
|  | 
| bool | removeCallInputSymbol (const InputSymbolType &symbol) | 
|  | 
| const ext::set< InputSymbolType > & | getReturnInputAlphabet () const & | 
|  | 
| ext::set< InputSymbolType > && | getReturnInputAlphabet () && | 
|  | 
| bool | addReturnInputSymbol (InputSymbolType symbol) | 
|  | 
| void | addReturnInputSymbols (ext::set< InputSymbolType > symbols) | 
|  | 
| void | setReturnInputAlphabet (ext::set< InputSymbolType > symbols) | 
|  | 
| bool | removeReturnInputSymbol (const InputSymbolType &symbol) | 
|  | 
| const ext::set< InputSymbolType > & | getLocalInputAlphabet () const & | 
|  | 
| ext::set< InputSymbolType > && | getLocalInputAlphabet () && | 
|  | 
| bool | addLocalInputSymbol (InputSymbolType symbol) | 
|  | 
| void | addLocalInputSymbols (ext::set< InputSymbolType > symbols) | 
|  | 
| void | setLocalInputAlphabet (ext::set< InputSymbolType > symbols) | 
|  | 
| bool | removeLocalInputSymbol (const InputSymbolType &symbol) | 
|  | 
| bool | removeInputSymbol (const InputSymbolType &symbol) | 
|  | 
| bool | addCallTransition (StateType from, InputSymbolType input, StateType to, PushdownStoreSymbolType push) | 
|  | Adds a call transition to the automaton.  More... 
 | 
|  | 
| bool | addReturnTransition (StateType from, InputSymbolType input, PushdownStoreSymbolType pop, StateType to) | 
|  | Adds a return transition to the automaton.  More... 
 | 
|  | 
| bool | addLocalTransition (StateType from, InputSymbolType input, StateType to) | 
|  | Adds a local transition to the automaton.  More... 
 | 
|  | 
| bool | removeCallTransition (const StateType &from, const InputSymbolType &input, const StateType &to, const PushdownStoreSymbolType &push) | 
|  | Removes a call transition from the automaton.  More... 
 | 
|  | 
| bool | removeReturnTransition (const StateType &from, const InputSymbolType &input, const PushdownStoreSymbolType &pop, const StateType &to) | 
|  | Removes a return transition from the automaton.  More... 
 | 
|  | 
| bool | removeLocalTransition (const StateType &from, const InputSymbolType &input, const StateType &to) | 
|  | Removes a local transition from the automaton.  More... 
 | 
|  | 
| const ext::map< ext::pair< StateType, InputSymbolType >, ext::pair< StateType, PushdownStoreSymbolType > > & | getCallTransitions () const & | 
|  | 
| ext::map< ext::pair< StateType, InputSymbolType >, ext::pair< StateType, PushdownStoreSymbolType > > && | getCallTransitions () && | 
|  | 
| const ext::map< ext::tuple< StateType, InputSymbolType, PushdownStoreSymbolType >, StateType > & | getReturnTransitions () const & | 
|  | 
| ext::map< ext::tuple< StateType, InputSymbolType, PushdownStoreSymbolType >, StateType > && | getReturnTransitions () && | 
|  | 
| const ext::map< ext::pair< StateType, InputSymbolType >, StateType > & | getLocalTransitions () const & | 
|  | 
| ext::map< ext::pair< StateType, InputSymbolType >, StateType > && | getLocalTransitions () && | 
|  | 
| auto | operator<=> (const VisiblyPushdownDPDA &other) const | 
|  | 
| bool | operator== (const VisiblyPushdownDPDA &other) const | 
|  | 
| void | accessComponent () | 
|  | 
template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
class automaton::VisiblyPushdownDPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >
Deterministic visibly pushdown automaton. Accepts subset of context free languages. 
Definition A = (Q, T = C \cup R \cup L, G, I, Z, \delta, F), Q (States) = nonempty finite set of states, T (TerminalAlphabet) = finite set of terminal symbols split to three disjoint parts
- C (CallAlphabet) = symbols used with transitions increasing the pushdown store,
- R (ReturnAlphabet) = symbols used with transitions decreasing the pushdown store,
- L (LocalAlphabet) = symbols used with transitions leaving the height of the pushdown store unchanged G (PushdownStoreAlphabet) = finite set of pushdown store symbol - having this empty makes the automaton equivalent to DFA I (InitialState) = initial state, Z (BottomOfTheStackSymbol) = initial pushdown store symbol \delta is split to three disjoint parts
- \delta_{call} of the form A \times c -> B \times g, where A, B \in Q, a \in C, and g \in G
- \delta_{return} of the form A \times r \times g -> B, where A, B \in Q, r \in C, and g \in G
- \delta_{local} of the form A \times l -> B, where A, B \in Q, a \in C F (FinalStates) = set of final states
The transition functions must meet following criteria. Othervise adding conflicting transition will cause exception. $|\delta_{call} (q, c)| \leq 1$, $\forall q \in Q, c \in C$ $|\delta_{return} (q, r, g)| \leq 1$, $\forall q \in Q, r \in L, g \in G$ $|\delta_{local} (q, l)| \leq 1$, $\forall q \in Q, l \in R$
- Template Parameters
- 
  
    | InputSymbolTypeT | used for the terminal alphabet |  | PushdownSymbolTypeT | used for the pushdown store alphabet |  | StateTypeT | used to the states, and the initial state of the automaton. |