Inheritance diagram for MetaElement< AutomataBase< Self >, T >:
Public Types | |
typedef MetaElement< AutomataBase< Self >, T > | self_t |
Type of the interface of an automaton. | |
typedef AutomataBase< Self >::series_set_t | series_set_t |
Type the series set from which is build the automaton. | |
typedef automaton_traits< T >::series_set_elt_value_t | series_set_elt_value_t |
Type of the implementation of series that holds the automaton. | |
typedef Element< series_set_t, series_set_elt_value_t > | series_set_elt_t |
Type of the element of the set of series that holds the automaton. | |
typedef series_set_t::monoid_t | monoid_t |
Type of the free monoid. | |
typedef series_set_elt_t::monoid_elt_t | monoid_elt_t |
Type of the free monoid element. | |
typedef monoid_elt_t::value_t | monoid_elt_value_t |
Type of the implementation of a word. | |
typedef monoid_t::letter_t | letter_t |
Type of the letter. | |
typedef series_set_t::semiring_t | semiring_t |
Type of the semiring set. | |
typedef series_set_elt_t::semiring_elt_t | semiring_elt_t |
Type of the free monoid element. | |
typedef series_set_elt_t::semiring_elt_value_t | semiring_elt_value_t |
Type of the implementation of a semiring_elt. | |
typedef automaton_traits< T >::tag_t | tag_t |
Type of additional information that is aggregated to the automaton. | |
typedef automaton_traits< T >::label_t | label_t |
Type of the label of the automaton implementation. | |
typedef automaton_traits< T >::states_t | states_t |
Type of the states container. | |
typedef automaton_traits< T >::state_iterator | state_iterator |
Type of the iterator over the states set. | |
typedef automaton_traits< T >::transitions_t | transitions_t |
Type of the transitions set. | |
typedef automaton_traits< T >::transition_iterator | transition_iterator |
Type of the iterator over the transitions. | |
typedef automaton_traits< T >::initial_support_t | initial_support_t |
Type of the initial application support. | |
typedef automaton_traits< T >::initial_iterator | initial_iterator |
Type of the iterator of the initial application support. | |
typedef automaton_traits< T >::final_support_t | final_support_t |
Type of the final application support. | |
typedef automaton_traits< T >::final_iterator | final_iterator |
Type of the iterator of the final application support. | |
typedef automaton_traits< T >::geometry_t | geometry_t |
Type of the geometry map containing state coordinates. | |
Public Member Functions | |
const series_set_t & | series () const |
The optional information aggregated to the automaton. | |
tag_t & | tag () |
The optional information aggregated to the automaton. | |
const tag_t & | tag () const |
The optional information aggregated to the automaton. | |
geometry_t & | geometry () |
The optional geometry information aggregated to the automaton. | |
const geometry_t & | geometry () const |
The optional geometry information aggregated to the automaton. | |
bool | exists () const |
Return true if the automaton is consistent. | |
states_t | states () const |
Accessor to the set of states. | |
transitions_t | transitions () const |
Accessor to the set of states. | |
initial_support_t | initial () const |
Accessor to the initial application. | |
final_support_t | final () const |
Accessor to the final application. | |
bool | is_initial (hstate_t state) const |
Return true if the state is initial (ie it is in the initial support) . | |
bool | is_final (hstate_t state) const |
Return true if the state is final (ie it is in the final support). | |
void | set_initial (hstate_t state) |
Set the state to be initial. | |
void | set_initial (hstate_t state, const series_set_elt_t &m) |
Set an initial multiplicity to the state. | |
void | set_final (hstate_t state) |
Set the state to be final. | |
void | set_final (hstate_t state, const series_set_elt_t &m) |
Set a final multiplicity to the state. | |
void | unset_initial (hstate_t state) |
Set the state not to be initial. | |
void | unset_final (hstate_t state) |
Set the set not to be final. | |
void | clear_initial () |
Make the support of the initial application to be empty. | |
void | clear_final () |
Make the support of the final application to be empty. | |
Element< series_set_t, series_set_elt_value_t > | get_initial (hstate_t state) const |
Return the initial multiplicity of the state. | |
Element< series_set_t, series_set_elt_value_t > | get_final (hstate_t what) const |
Return the final multiplicity of the state. | |
hstate_t | add_state () |
Add a new state to the automaton. | |
hstate_t | choose_state () const |
Return a randomly chosen state. | |
htransition_t | add_transition (hstate_t src, hstate_t dst, const label_t &label) |
Add a new transition between src and to labelled by label . | |
htransition_t | add_weighted_transition (hstate_t src, hstate_t dst, const semiring_elt_t &w, const monoid_elt_value_t &m) |
Add a new weighted transition. | |
htransition_t | add_series_transition (hstate_t src, hstate_t dst, const series_set_elt_t &e) |
If the underlying implementation is not sufficiently general to support this operation, you will have several transitions created. | |
htransition_t | add_spontaneous (hstate_t src, hstate_t dst, const semiring_elt_t &w) |
Add a spontaneous transition between src and dst . | |
htransition_t | add_spontaneous (hstate_t src, hstate_t dst) |
Add a spontaneous transition between src and dst . | |
htransition_t | add_letter_transition (hstate_t src, hstate_t dst, const letter_t &l) |
Add a transition between src and dst labelled by a letter. | |
void | update (htransition_t e, const label_t &l) |
Update the label of a transition. | |
void | del_state (hstate_t s) |
Delete the state s . | |
void | del_transition (htransition_t e) |
Delete the transition e . | |
bool | has_state (hstate_t s) const |
Check if the state s is in the automaton. | |
bool | has_transition (htransition_t e) const |
Check if the transition e is in the automaton. | |
hstate_t | src_of (htransition_t e) const |
Return the origin of the transition e . | |
hstate_t | dst_of (htransition_t e) const |
Return the aim of the transition e . | |
automaton_traits< T >::label_t | label_of (htransition_t e) const |
Return the label of the transition e . | |
series_set_elt_t | series_of (htransition_t e) const |
Return the label seen as a series. | |
series_set_elt_value_t | series_value_of (htransition_t e) const |
Return the label seen as a series implementation. | |
bool | is_spontaneous (htransition_t e) const |
Return true if the transition is spontaneous. | |
monoid_elt_t | word_of (htransition_t e) const |
Return the label seen as a word. | |
semiring_elt_t | weight_of (htransition_t e) const |
Return the label seen as a weight. | |
monoid_elt_value_t | word_value_of (htransition_t e) const |
Returns the label seen as word implementation. | |
letter_t | letter_of (htransition_t e) const |
Becareful, when you have more general label this method is probably invalidated. | |
template<typename OutputIterator, typename Kind> | |
void | delta (OutputIterator res, hstate_t src, delta_kind::kind< Kind > k) const |
Store the output transitions/states of the state src using res. | |
template<typename OutputIterator, typename L, typename Kind> | |
void | delta (OutputIterator res, hstate_t src, const L &query, delta_kind::kind< Kind > k) const |
Store the output transitions/states of the state src where query is true on a transition/state, using res. | |
template<typename OutputIterator, typename L, typename Kind> | |
void | letter_delta (OutputIterator res, hstate_t src, const L &letter, delta_kind::kind< Kind > k) const |
Store the output transitions/states of the state src where the label matches the letter letter. | |
template<typename OutputIterator, typename Kind> | |
void | spontaneous_delta (OutputIterator res, hstate_t src, delta_kind::kind< Kind > k) const |
Store the output spontaneous transitions or states reached from src by an epsilon-transition. | |
template<typename Container, typename Kind> | |
void | deltac (Container &res, hstate_t src, delta_kind::kind< Kind > k) const |
Store the output transitions/states of the state src in the container res. | |
template<typename Container, typename L, typename Kind> | |
void | deltac (Container &res, hstate_t src, const L &query, delta_kind::kind< Kind > k) const |
Store the output transitions/states of the state src where query is true on a transition/state, using the container res. | |
template<typename Container, typename L, typename Kind> | |
void | letter_deltac (Container &res, hstate_t src, const L &letter, delta_kind::kind< Kind > k) const |
Store the output transitions/states of the state src where the label matches the letter letter. | |
template<typename Container, typename Kind> | |
void | spontaneous_deltac (Container &res, hstate_t src, delta_kind::kind< Kind > k) const |
Store the output spontaneous transitions or states reached from src by an epsilon-transition in the container res. | |
template<typename Functor, typename Kind> | |
void | deltaf (Functor &fun, hstate_t src, delta_kind::kind< Kind > k) const |
Call the functor fun on every output transitions/states of the state src. | |
template<typename Functor, typename L, typename Kind> | |
void | deltaf (Functor &fun, hstate_t src, const L &query, delta_kind::kind< Kind > k) const |
Call the functor fun on every output transitions/states of the state src where query is true. | |
template<typename Functor, typename L, typename Kind> | |
void | letter_deltaf (Functor &fun, hstate_t src, const L &letter, delta_kind::kind< Kind > k) const |
Call the functor fun on every output transitions/states of the state src where the label matches the letter letter. | |
template<typename Functor, typename Kind> | |
void | spontaneous_deltaf (Functor &fun, hstate_t src, delta_kind::kind< Kind > k) const |
Call the functor fun on every output spontaneous transitions or every states reached by src with an epsilon-transition. | |
template<typename OutputIterator, typename Kind> | |
void | rdelta (OutputIterator res, hstate_t src, delta_kind::kind< Kind > k) const |
Store the input transitions/states of the state src using res. | |
template<typename OutputIterator, typename L, typename Kind> | |
void | rdelta (OutputIterator res, hstate_t src, const L &query, delta_kind::kind< Kind > k) const |
Store the input transitions/states of the state src where query is true on a transition/state, using res. | |
template<typename OutputIterator, typename L, typename Kind> | |
void | letter_rdelta (OutputIterator res, hstate_t src, const L &letter, delta_kind::kind< Kind > k) const |
Store the input transitions/states of the state src where the label matches the letter letter. | |
template<typename OutputIterator, typename Kind> | |
void | spontaneous_rdelta (OutputIterator res, hstate_t src, delta_kind::kind< Kind > k) const |
Store every input spontaneous transitions or every states that reach src with an epsilon-transition using res. | |
template<typename Container, typename Kind> | |
void | rdeltac (Container &res, hstate_t src, delta_kind::kind< Kind > k) const |
Store the input transitions/states of the state src in the container res. | |
template<typename Container, typename L, typename Kind> | |
void | rdeltac (Container &res, hstate_t src, const L &query, delta_kind::kind< Kind > k) const |
Store the input transitions/states of the state src where query is true on a transition/state, using the container res. | |
template<typename Container, typename L, typename Kind> | |
void | letter_rdeltac (Container &res, hstate_t src, const L &letter, delta_kind::kind< Kind > k) const |
Store the input transitions/states of the state src where the label matches the letter letter. | |
template<typename Container, typename Kind> | |
void | spontaneous_rdeltac (Container &res, hstate_t src, delta_kind::kind< Kind > k) const |
Store every input spontaneous transitions or every states that reach src with an epsilon-transition in the container res. | |
template<typename Functor, typename Kind> | |
void | rdeltaf (Functor &fun, hstate_t src, delta_kind::kind< Kind > k) const |
Call the functor fun on every input transitions/states of the state src. | |
template<typename Functor, typename L, typename Kind> | |
void | rdeltaf (Functor &fun, hstate_t src, const L &query, delta_kind::kind< Kind > k) const |
Call the functor fun on every input transitions/states of the state src where query is true. | |
template<typename Functor, typename L, typename Kind> | |
void | letter_rdeltaf (Functor &fun, hstate_t src, const L &letter, delta_kind::kind< Kind > k) const |
Call the functor fun on every input transitions/states of the state src where the label matches the letter letter. | |
template<typename Functor, typename Kind> | |
void | spontaneous_rdeltaf (Functor &fun, hstate_t src, delta_kind::kind< Kind > k) const |
Call the functor fun on every input spontaneous transitions or every states that reach src with an epsilon-transition. | |
Protected Member Functions | |
MetaElement () | |
MetaElement (const MetaElement &other) | |
Copy constructor. |
The implementation must be compatible with the automaton implementation concept. For this purpose, you can either use directly your implementation of automaton or use for example the class automaton_impl which is an adapter that enrich basic data structures to make them compatible with automaton implementation concept.
Definition at line 117 of file automata_base.hh.
automaton_traits< T >::states_t states | ( | ) | const |
Accessor to the set of states.
(const version)
Definition at line 96 of file automata_base.hxx.
References vcsn::op_states().
automaton_traits< T >::transitions_t transitions | ( | ) | const |
Accessor to the set of states.
(const version)
Definition at line 104 of file automata_base.hxx.
References vcsn::op_transitions().
hstate_t choose_state | ( | ) | const |
Return a randomly chosen state.
(valid only if the automaton is not empty)
Definition at line 265 of file automata_base.hxx.
MetaElement< AutomataBase< Self >, T >::letter_t letter_of | ( | htransition_t | e | ) | const |
Becareful, when you have more general label this method is probably invalidated.
)
Definition at line 456 of file automata_base.hxx.
References vcsn::op_letter_of().
void deltaf | ( | Functor & | fun, | |
hstate_t | src, | |||
delta_kind::kind< Kind > | k | |||
) | const |
Call the functor fun on every output transitions/states of the state src.
If fun returns Boolean values and returns false, the loop is stopped.
Definition at line 561 of file automata_base.hxx.
References vcsn::op_deltaf().
void deltaf | ( | Functor & | fun, | |
hstate_t | src, | |||
const L & | query, | |||
delta_kind::kind< Kind > | k | |||
) | const |
Call the functor fun on every output transitions/states of the state src where query is true.
If fun returns Boolean values and returns false, the loop is stopped.
Definition at line 570 of file automata_base.hxx.
References vcsn::op_deltaf().
void letter_deltaf | ( | Functor & | fun, | |
hstate_t | src, | |||
const L & | letter, | |||
delta_kind::kind< Kind > | k | |||
) | const |
Call the functor fun on every output transitions/states of the state src where the label matches the letter letter.
If fun returns Boolean values and returns false, the loop is stopped.
Definition at line 581 of file automata_base.hxx.
References vcsn::op_letter_deltaf().
void spontaneous_deltaf | ( | Functor & | fun, | |
hstate_t | src, | |||
delta_kind::kind< Kind > | k | |||
) | const |
Call the functor fun on every output spontaneous transitions or every states reached by src with an epsilon-transition.
If fun returns Boolean values and returns false, the loop is stopped.
Definition at line 593 of file automata_base.hxx.
References vcsn::op_spontaneous_deltaf().