Nondeterministic finite tree automaton without epsilon transitions. Accepts regular tree languages.
More...
|
| DFTA () |
| Creates a new instance of the automaton. More...
|
|
| DFTA (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...
|
|
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 (common::ranked_symbol< SymbolType > symbol, ext::vector< StateType > prevStates, StateType next) |
| Add a transition to the automaton. More...
|
|
bool | removeTransition (const common::ranked_symbol< SymbolType > &symbol, const ext::vector< StateType > &states, const StateType &next) |
| Removes a transition from the automaton. More...
|
|
const ext::map< ext::pair< common::ranked_symbol< SymbolType >, ext::vector< StateType > >, StateType > & | getTransitions () const & |
|
ext::map< ext::pair< common::ranked_symbol< SymbolType >, ext::vector< StateType > >, StateType > && | getTransitions () && |
|
ext::map< ext::pair< common::ranked_symbol< SymbolType >, ext::vector< StateType > >, StateType > | getTransitionsToState (const StateType &q) const |
|
ext::map< ext::pair< common::ranked_symbol< SymbolType >, ext::vector< StateType > >, StateType > | getTransitionsFromState (const StateType &q) const |
|
auto | operator<=> (const DFTA &other) const |
|
bool | operator== (const DFTA &other) const |
|
void | accessComponent () |
|
template<class SymbolTypeT = DefaultSymbolType, class StateTypeT = DefaultStateType>
class automaton::DFTA< SymbolTypeT, StateTypeT >
Nondeterministic finite tree automaton without epsilon transitions. Accepts regular tree languages.
Definition is classical definition of finite 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) \mapsto Q, 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.
Note that target state of a transition is required. This class is used to store minimal, total, ... variants of deterministic finite tree automata.
Elements of the \delta mapping must meet following criteria. The size of the state list must equal the rank of the ranked symbol.
- Template Parameters
-
SymbolTypeT | used for the symbol part of the ranked symbol |
StateTypeT | used to the states, and the initial state of the automaton. |