Nondeterministic visibly pushdown automaton. Accepts subset of context free languages.
More...
|
| | VisiblyPushdownNPDA (ext::set< StateType > states, ext::set< InputSymbolType > callAlphabet, ext::set< InputSymbolType > returnAlphabet, ext::set< InputSymbolType > localAlphabet, ext::set< PushdownStoreSymbolType > pushdownStoreAlphabet, ext::set< StateType > initialStates, 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...
|
| |
| | VisiblyPushdownNPDA (PushdownStoreSymbolType bottomOfTheStackSymbol) |
| | Creates a new instance of the automaton with a concrete initial state and bottom of the stack symbol. More...
|
| |
| const ext::set< StateType > & | getInitialStates () const & |
| |
| ext::set< StateType > && | getInitialStates () && |
| |
| bool | addInitialState (StateType state) |
| |
| void | setInitialStates (ext::set< StateType > states) |
| |
| bool | removeInitialState (const 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::multimap< ext::pair< StateType, InputSymbolType >, ext::pair< StateType, PushdownStoreSymbolType > > & | getCallTransitions () const & |
| |
| ext::multimap< ext::pair< StateType, InputSymbolType >, ext::pair< StateType, PushdownStoreSymbolType > > && | getCallTransitions () && |
| |
| const ext::multimap< ext::tuple< StateType, InputSymbolType, PushdownStoreSymbolType >, StateType > & | getReturnTransitions () const & |
| |
| ext::multimap< ext::tuple< StateType, InputSymbolType, PushdownStoreSymbolType >, StateType > && | getReturnTransitions () && |
| |
| const ext::multimap< ext::pair< StateType, InputSymbolType >, StateType > & | getLocalTransitions () const & |
| |
| ext::multimap< ext::pair< StateType, InputSymbolType >, StateType > && | getLocalTransitions () && |
| |
| auto | operator<=> (const VisiblyPushdownNPDA &other) const |
| |
| bool | operator== (const VisiblyPushdownNPDA &other) const |
| |
| void | accessComponent () |
| |
template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
class automaton::VisiblyPushdownNPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >
Nondeterministic 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 (InitialStates) = set of initial states, 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
- 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. |