Nondeterministic input driven pushdown automaton. Accepts subset of context free languages.
More...
|
| InputDrivenNPDA (ext::set< StateType > states, ext::set< InputSymbolType > inputAlphabet, ext::set< PushdownStoreSymbolType > pushdownStoreAlphabet, StateType initialState, PushdownStoreSymbolType initialSymbol, ext::set< StateType > finalStates) |
| Creates a new instance of the automaton with a concrete set of states, input alphabet, pushdown store alphabet, initial state, initial pushdown symbol and a set of final states. More...
|
|
| InputDrivenNPDA (StateType initialState, PushdownStoreSymbolType initialPushdownSymbol) |
| Creates a new instance of the automaton with a concrete initial state and initial pushdown store 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) |
|
void | removeState (const StateType &state) |
|
const ext::set< StateType > & | getFinalStates () const & |
|
ext::set< StateType > && | getFinalStates () && |
|
bool | addFinalState (StateType state) |
|
void | setFinalStates (ext::set< StateType > states) |
|
void | 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) |
|
void | removePushdownStoreSymbol (const PushdownStoreSymbolType &symbol) |
|
const PushdownStoreSymbolType & | getInitialSymbol () const & |
|
PushdownStoreSymbolType && | getInitialSymbol () && |
|
bool | setInitialSymbol (PushdownStoreSymbolType symbol) |
|
const ext::set< InputSymbolType > & | getInputAlphabet () const & |
|
ext::set< InputSymbolType > && | getInputAlphabet () && |
|
bool | addInputSymbol (InputSymbolType symbol) |
|
void | addInputSymbols (ext::set< InputSymbolType > symbols) |
|
void | setInputAlphabet (ext::set< InputSymbolType > symbols) |
|
void | removeInputSymbol (const InputSymbolType &symbol) |
|
bool | setPushdownStoreOperation (InputSymbolType input, ext::vector< PushdownStoreSymbolType > pop, ext::vector< PushdownStoreSymbolType > push) |
|
void | setPushdownStoreOperations (ext::map< InputSymbolType, ext::pair< ext::vector< PushdownStoreSymbolType >, ext::vector< PushdownStoreSymbolType > > > operations) |
|
bool | clearPushdownStoreOperation (const InputSymbolType &input) |
|
const ext::map< InputSymbolType, ext::pair< ext::vector< PushdownStoreSymbolType >, ext::vector< PushdownStoreSymbolType > > > & | getPushdownStoreOperations () const & |
|
ext::map< InputSymbolType, ext::pair< ext::vector< PushdownStoreSymbolType >, ext::vector< PushdownStoreSymbolType > > > && | getPushdownStoreOperations () && |
|
bool | addTransition (StateType from, InputSymbolType input, StateType to) |
| Adds a transition to the automaton. More...
|
|
bool | removeTransition (const StateType &from, const InputSymbolType &input, const StateType &to) |
| Removes a transition from the automaton. More...
|
|
const ext::multimap< ext::pair< StateType, InputSymbolType >, StateType > & | getTransitions () const & |
|
ext::multimap< ext::pair< StateType, InputSymbolType >, StateType > && | getTransitions () && |
|
ext::multimap< ext::pair< StateType, InputSymbolType >, StateType > | getTransitionsFromState (const StateType &from) const |
|
ext::multimap< ext::pair< StateType, InputSymbolType >, StateType > | getTransitionsToState (const StateType &to) const |
|
bool | isDeterministic () const |
| Determines whether the automaton is deterministic. More...
|
|
auto | operator<=> (const InputDrivenNPDA &other) const |
|
bool | operator== (const InputDrivenNPDA &other) const |
|
void | accessComponent () |
|
template<class InputSymbolTypeT = DefaultSymbolType, class PushdownStoreSymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
class automaton::InputDrivenNPDA< InputSymbolTypeT, PushdownStoreSymbolTypeT, StateTypeT >
Nondeterministic input driven pushdown automaton. Accepts subset of context free languages.
Definition is similar to the deterministic finite automata extended with pushdown store. A = (Q, T, G, I, Z, \delta, \zeta, F), Q (States) = nonempty finite set of states, T (TerminalAlphabet) = finite set of terminal symbols - having this empty won't let automaton do much though, G (PushdownStoreAlphabet) = finite set of pushdown store symbol - having this empty makes the automaton equivalent to NFA I (InitialState) = initial state, Z (InitialPushdownStoreSymbol) = initial pushdown store symbol \delta = transition function of the form A \times a -> P(Q), where A \in Q, a \in T, and P(Q) is a powerset of states, \zeta = mapping function of the form a -> ( \alpha, \beta ) where a \in T and \alpha, \beta \in G* F (FinalStates) = set of final states
Note that target state of a transition is required. This class is used to store minimal, total, ... variants of deterministic finite automata.
- 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. |