| Algorithms Library Toolkit
    A toolkit for algorithms, especially for algorithms on formal languages | 
Nondeterministic finite tree automaton without epsilon transitions. Accepts regular tree languages. More...
#include <ExtendedNFTA.h>
| Public Member Functions | |
| ExtendedNFTA () | |
| Creates a new instance of the automaton.  More... | |
| ExtendedNFTA (ext::set< StateType > states, ext::set< common::ranked_symbol< SymbolType > > inputAlphabet, ext::set< StateType > finalStates) | |
| Creates a new instance of the automaton with a concrete set of states, input alphabet, and a set of final states.  More... | |
| ExtendedNFTA (const DFTA< SymbolType, StateType > &other) | |
| ExtendedNFTA (const NFTA< SymbolType, StateType > &other) | |
| 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< common::ranked_symbol< SymbolType > > & | getInputAlphabet () const & | 
| ext::set< common::ranked_symbol< SymbolType > > && | getInputAlphabet () && | 
| bool | addInputSymbol (common::ranked_symbol< SymbolType > symbol) | 
| void | addInputSymbols (ext::set< common::ranked_symbol< SymbolType > > symbols) | 
| void | setInputAlphabet (ext::set< common::ranked_symbol< SymbolType > > symbols) | 
| void | removeInputSymbol (const common::ranked_symbol< SymbolType > &symbol) | 
| bool | addTransition (rte::FormalRTEStructure< ext::variant< SymbolType, StateType > > rte, ext::vector< StateType >, StateType next) | 
| Add a transition to the automaton.  More... | |
| void | addTransitions (rte::FormalRTEStructure< ext::variant< SymbolType, StateType > > rte, ext::vector< StateType >, ext::set< StateType > next) | 
| Add a transition to the automaton.  More... | |
| bool | removeTransition (const rte::FormalRTEStructure< ext::variant< SymbolType, StateType > > &rte, const ext::vector< StateType > &prevStates, const StateType &next) | 
| Removes a transition from the automaton.  More... | |
| const ext::map< ext::pair< rte::FormalRTEStructure< ext::variant< SymbolType, StateType > >, ext::vector< StateType > >, ext::set< StateType > > & | getTransitions () const & | 
| ext::map< ext::pair< rte::FormalRTEStructure< ext::variant< SymbolType, StateType > >, ext::vector< StateType > >, ext::set< StateType > > && | getTransitions () && | 
| ext::map< ext::pair< rte::FormalRTEStructure< ext::variant< SymbolType, StateType > >, ext::vector< StateType > >, StateType > | getTransitionsToState (const StateType &to) const | 
| ext::map< ext::pair< rte::FormalRTEStructure< ext::variant< SymbolType, StateType > >, ext::vector< StateType > >, ext::set< StateType > > | getTransitionsFromState (const StateType &from) const | 
| bool | isDeterministic () const | 
| Determines whether the automaton is deterministic.  More... | |
| unsigned | transitionsSize () const | 
| Computes number of transitions in the automaton.  More... | |
| auto | operator<=> (const ExtendedNFTA &other) const | 
| bool | operator== (const ExtendedNFTA &other) const | 
|  Public Member Functions inherited from core::Components< ExtendedNFTA< DefaultSymbolType, DefaultStateType >, ext::set< common::ranked_symbol< DefaultSymbolType > >, component::Set, InputAlphabet, ext::set< DefaultStateType >, component::Set, std::tuple< States, FinalStates > > | |
| void | accessComponent () | 
| Friends | |
| ext::ostream & | operator<< (ext::ostream &out, const ExtendedNFTA &instance) | 
| Additional Inherited Members | |
|  Static Public Member Functions inherited from core::Components< ExtendedNFTA< DefaultSymbolType, DefaultStateType >, ext::set< common::ranked_symbol< DefaultSymbolType > >, component::Set, InputAlphabet, ext::set< DefaultStateType >, component::Set, std::tuple< States, FinalStates > > | |
| static void | registerComponent () | 
| static void | unregisterComponent () | 
Nondeterministic finite tree automaton without epsilon transitions. Accepts regular tree languages.
Definition is classical definition of finite automata. A = (Q, T, \delta, F), Q (States) = nonempty finite set of states, T (TerminalAlphabet) = finite set of terminal ranked symbols - having this empty won't let automaton do much though, \delta = transition function of the form (A, B, C, ...) \times a -> P(Q), where A, B, C, ... \in Q, a \in T, and P(Q) is a powerset of states, F (FinalStates) = set of final states
Elements of the \delta mapping must meet following criteria. The size of the state list must equal the rank of the ranked symbol.
| SymbolType | used for the symbol part of the ranked symbol | 
| StateType | used to the states, and the initial state of the automaton. | 
| 
 | explicit | 
Creates a new instance of the automaton.
| 
 | explicit | 
Creates a new instance of the automaton with a concrete set of states, input alphabet, and a set of final states.
| states | the initial set of states of the automaton | 
| inputAlphabet | the initial input alphabet | 
| finalStates | the initial set of final states of the automaton | 
| 
 | explicit | 
| 
 | explicit | 
| 
 | inline | 
Adder of a final state.
| state | the new state to be added to a set of final states | 
| 
 | inline | 
Adder of a input symbol.
| symbol | the new symbol to be added to an input alphabet | 
| 
 | inline | 
Adder of input symbols.
| symbols | new symbols to be added to an input alphabet | 
| 
 | inline | 
Adder of a state.
| state | the new state to be added to a set of states | 
| bool automaton::ExtendedNFTA< SymbolType, StateType >::addTransition | ( | rte::FormalRTEStructure< ext::variant< SymbolType, StateType > > | rte, | 
| ext::vector< StateType > | prevStates, | ||
| StateType | next | ||
| ) | 
Add a transition to the automaton.
The transition is in a form ( A, B, C, ... ) \times a -> X, where A, B, C, ..., X \in Q and a \in T
| children | the source states (A, B, C, ...) | 
| current | the input symbol (a) | 
| next | the target state (B) | 
| AutomatonException | when transition contains state or symbol not present in the automaton components | 
| void automaton::ExtendedNFTA< SymbolType, StateType >::addTransitions | ( | rte::FormalRTEStructure< ext::variant< SymbolType, StateType > > | rte, | 
| ext::vector< StateType > | prevStates, | ||
| ext::set< StateType > | next | ||
| ) | 
Add a transition to the automaton.
The transition is in a form ( A, B, C, ... ) \times a -> P(Q), where A, B, C, ... \in Q and a \in T, P(Q) is a powerset of states
| children | the source states (A, B, C, ...) | 
| current | the input symbol (a) | 
| next | the target states (P(Q)) | 
| AutomatonException | when transition contains state or symbol not present in the automaton components | 
| 
 | inline | 
Getter of final states.
| 
 | inline | 
Getter of final states.
| 
 | inline | 
Getter of the input alphabet.
| 
 | inline | 
Getter of the input alphabet.
| 
 | inline | 
Getter of states.
| 
 | inline | 
Getter of states.
| 
 | inline | 
Get the transition function of the automaton in its natural form.
| 
 | inline | 
Get the transition function of the automaton in its natural form.
| ext::map< ext::pair< rte::FormalRTEStructure< ext::variant< SymbolType, StateType > >, ext::vector< StateType > >, ext::set< StateType > > automaton::ExtendedNFTA< SymbolType, StateType >::getTransitionsFromState | ( | const StateType & | from | ) | const | 
q is a source state | ext::map< ext::pair< rte::FormalRTEStructure< ext::variant< SymbolType, StateType > >, ext::vector< StateType > >, StateType > automaton::ExtendedNFTA< SymbolType, StateType >::getTransitionsToState | ( | const StateType & | to | ) | const | 
q is a target state | bool automaton::ExtendedNFTA< SymbolType, StateType >::isDeterministic | 
Determines whether the automaton is deterministic.
the automaton is deterministic if and only if:
size of transition function \delta (from states, input symbol) \leq 1| 
 | inline | 
The three way comparison implementation
| other | the other instance | 
other. | 
 | inline | 
The equality comparison implementation.
| other | the other object to compare with. | 
| 
 | inline | 
Remover of a final state.
| state | a state to be removed from a set of final states | 
| 
 | inline | 
Remover of an input symbol.
| symbol | a symbol to be removed from an input alphabet | 
| 
 | inline | 
Remover of a state.
| state | a state to be removed from a set of states | 
| bool automaton::ExtendedNFTA< SymbolType, StateType >::removeTransition | ( | const rte::FormalRTEStructure< ext::variant< SymbolType, StateType > > & | rte, | 
| const ext::vector< StateType > & | prevStates, | ||
| const StateType & | next | ||
| ) | 
Removes a transition from the automaton.
The transition is in a form ( A, B, C, ... ) \times a -> X, where A, B, C, ..., X \in Q and a \in T
| children | the source states (A, B, C, ...) | 
| current | the input symbol (a) | 
| next | the target state (B) | 
| 
 | inline | 
Setter of final states.
| states | completely new set of final states | 
| 
 | inline | 
Setter of input alphabet.
| symbols | completely new input alphabet | 
| 
 | inline | 
Setter of states.
| states | completely new set of states | 
| unsigned automaton::ExtendedNFTA< SymbolType, StateType >::transitionsSize | 
Computes number of transitions in the automaton.
| 
 | friend | 
Print this object as raw representation to ostream.
| out | ostream where to print | 
| instance | object to print |