Epsilon nondeterministic finite tree automaton. Accepts regular tree languages.
More...
|
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) |
|
|
| EpsilonNFTA () |
| Creates a new instance of the automaton. More...
|
|
| EpsilonNFTA (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...
|
|
| EpsilonNFTA (const NFTA< SymbolType, StateType > &other) |
|
| EpsilonNFTA (const DFTA< SymbolType, StateType > &other) |
|
void | accessComponent () |
|
bool | addTransition (ext::variant< StateType, ext::pair< common::ranked_symbol< SymbolType >, ext::vector< StateType > > > lhs, StateType rhs) |
| Add a transition to the automaton. More...
|
|
bool | addTransition (common::ranked_symbol< SymbolType > symbol, ext::vector< StateType > prevStates, StateType next) |
| Add a transition to the automaton. More...
|
|
bool | addTransition (StateType from, StateType to) |
| Add a transition to the automaton. More...
|
|
bool | removeTransition (const ext::variant< StateType, ext::pair< common::ranked_symbol< SymbolType >, ext::vector< StateType > > > &lhs, const StateType &rhs) |
| Removes a transition from the automaton. More...
|
|
bool | removeTransition (const common::ranked_symbol< SymbolType > &symbol, const ext::vector< StateType > &prevStates, const StateType &next) |
| Removes a transition from the automaton. More...
|
|
bool | removeTransition (const StateType &from, const StateType &to) |
| Removes a transition from the automaton. More...
|
|
const ext::multimap< ext::variant< StateType, ext::pair< common::ranked_symbol< SymbolType >, ext::vector< StateType > > >, StateType > & | getTransitions () const & |
|
ext::multimap< ext::variant< StateType, ext::pair< common::ranked_symbol< SymbolType >, ext::vector< StateType > > >, StateType > && | getTransitions () && |
|
ext::multimap< StateType, StateType > | getEpsilonTransitions () const |
|
ext::multimap< ext::pair< common::ranked_symbol< SymbolType >, ext::vector< StateType > >, StateType > | getSymbolTransitions () const |
|
ext::multimap< ext::variant< StateType, ext::pair< common::ranked_symbol< SymbolType >, ext::vector< StateType > > >, StateType > | getTransitionsToState (const StateType &q) const |
|
ext::multimap< ext::variant< StateType, ext::pair< common::ranked_symbol< SymbolType >, ext::vector< StateType > > >, StateType > | getTransitionsFromState (const StateType &q) const |
|
ext::multimap< StateType, StateType > | getEpsilonTransitionsFromState (const StateType &from) const |
|
ext::multimap< StateType, StateType > | getEpsilonTransitionsToState (const StateType &to) const |
|
bool | isEpsilonFree () const |
| Determines whether the automaton is without epsilon transitions. More...
|
|
bool | isDeterministic () const |
| Determines whether the automaton is deterministic. More...
|
|
auto | operator<=> (const EpsilonNFTA &other) const |
|
bool | operator== (const EpsilonNFTA &other) const |
|
ext::ostream & | operator<< (ext::ostream &out, const EpsilonNFTA &instance) |
|
template<class SymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
class automaton::EpsilonNFTA< SymbolTypeT, StateTypeT >
Epsilon nondeterministic finite tree automaton. Accepts regular tree languages.
Definition is classical definition of epsilon finite tree automata. A = (Q, \Sigma, \delta, F), Q (States) = nonempty finite set of states, \Sigma (TerminalAlphabet) = finite set of terminal ranked symbols - having this empty won't let automaton do much though,
- the alphabet may be partitioned based on the arity of symbols into \Sigma_n, where n is the arity. \delta = transition function of the form (Q^n \times \Sigma_n) \cup (Q \times \epsilon\} \mapsto P(Q), F (FinalStates) = set of final states
Elements of the \delta multimapping must meet following criteria. The size of the state list must equal the rank of the ranked symbol from the non-epsilon transition.
- Template Parameters
-
SymbolTypeT | used for the symbol part of the ranked symbol |
StateTypeT | used to the states, and the initial state of the automaton. |