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. | |
typedef automaton_traits< T > ::geometry_t::coords_t | geometry_coords_t |
Type of the coordinates used in the geometry map. | |
typedef automaton_traits< T > ::hstate_t | hstate_t |
Type of handlers. | |
Public Member Functions | |
const series_set_t & | series () const |
The set of series from which is build the automaton (const version). | |
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. (const version). | |
transitions_t | transitions () const |
Accessor to the set of states. (const version). | |
initial_support_t | initial () const |
Accessor to the initial application. | |
final_support_t | final () const |
Accessor to the final application. | |
bool | is_initial (const hstate_t &state) const |
Return true if the state is initial (ie it is in the initial support) . | |
bool | is_final (const hstate_t &state) const |
Return true if the state is final (ie it is in the final support). | |
void | set_initial (const hstate_t &state) |
Set the state to be initial. | |
void | set_initial (const hstate_t &state, const series_set_elt_t &m) |
Set an initial multiplicity to the state. | |
void | set_final (const hstate_t &state) |
Set the state to be final. | |
void | set_final (const hstate_t &state, const series_set_elt_t &m) |
Set a final multiplicity to the state. | |
void | unset_initial (const hstate_t &state) |
Set the state not to be initial. | |
void | unset_final (const 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 (const hstate_t &state) const |
Return the initial multiplicity of the state. | |
Element< series_set_t, series_set_elt_value_t > | get_final (const hstate_t &state) const |
Return the final multiplicity of the state. | |
hstate_t | add_state () |
Add a new state to the automaton. | |
hstate_t | get_state (unsigned state) const |
Return a state descriptor for state number 'state'. | |
hstate_t | choose_state () const |
Return a randomly chosen state. | |
htransition_t | add_transition (const hstate_t &src, const hstate_t &dst, const label_t &label) |
Add a new transition between src and dst labelled by label . | |
htransition_t | add_weighted_transition (const hstate_t &src, const hstate_t &dst, const semiring_elt_t &w, const monoid_elt_value_t &m) |
Add a new weighted transition, specifying a semiring element and a monoid element. | |
htransition_t | add_series_transition (const hstate_t &src, const hstate_t &dst, const series_set_elt_t &e) |
Add a transition using a series. | |
htransition_t | add_spontaneous (const hstate_t &src, const hstate_t &dst, const semiring_elt_t &w) |
Add a spontaneous transition between src and dst . | |
htransition_t | add_letter_transition (const hstate_t &src, const hstate_t &dst, const letter_t &l) |
Add a transition between src and dst labelled by a letter. | |
void | update (const htransition_t &e, const label_t &l) |
Update the label of a transition. | |
void | del_state (const hstate_t &state) |
Delete the state s . | |
void | del_transition (const htransition_t &e) |
Delete the transition e . | |
bool | has_state (const hstate_t &state) const |
Check if the state s is in the automaton. | |
bool | has_transition (const htransition_t &e) const |
Check if the transition e is in the automaton. | |
hstate_t | src_of (const htransition_t &e) const |
Return the origin of the transition e . | |
hstate_t | dst_of (const htransition_t &e) const |
Return the aim of the transition e . | |
automaton_traits< T >::label_t | label_of (const htransition_t &e) const |
Return the label of the transition e . | |
series_set_elt_t | series_of (const htransition_t &e) const |
Return the label seen as a series. | |
series_set_elt_value_t | series_value_of (const htransition_t &e) const |
Return the label seen as a series implementation. | |
bool | is_spontaneous (const htransition_t &e) const |
Return true if the transition is spontaneous. | |
monoid_elt_t | word_of (const htransition_t &e) const |
Return the label seen as a word. | |
semiring_elt_t | weight_of (const htransition_t &e) const |
Return the label seen as a weight. | |
monoid_elt_value_t | word_value_of (const htransition_t &e) const |
Returns the label seen as word implementation. | |
letter_t | letter_of (const htransition_t &e) const |
Return the label seen as a letter. | |
template<typename OutputIterator, typename Kind> | |
void | delta (OutputIterator res, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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, const 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 (const MetaElement &other) | |
Copy constructor. |
MetaElement<AutomataBase<Self>, T> defines the interface of every automaton that is the result of the interaction of a structural element (AutomataBase<Self>) and an implementation T.
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 157 of file automata_base.hh.
const MetaElement< AutomataBase< Self >, T >::series_set_t & series | ( | ) | const [inline] |
The set of series from which is build the automaton (const version).
The optional information aggregated to the automaton.
Definition at line 112 of file automata_base.hxx.
MetaElement< AutomataBase< Self >, T >::tag_t & tag | ( | ) | [inline] |
The optional information aggregated to the automaton.
Definition at line 56 of file automata_base.hxx.
const MetaElement< AutomataBase< Self >, T >::tag_t & tag | ( | ) | const [inline] |
The optional information aggregated to the automaton.
Definition at line 64 of file automata_base.hxx.
MetaElement< AutomataBase< Self >, T >::geometry_t & geometry | ( | ) | [inline] |
The optional geometry information aggregated to the automaton.
Definition at line 72 of file automata_base.hxx.
const MetaElement< AutomataBase< Self >, T >::geometry_t & geometry | ( | ) | const [inline] |
The optional geometry information aggregated to the automaton.
Definition at line 80 of file automata_base.hxx.
bool exists | ( | ) | const [inline] |
Return true if the automaton is consistent.
Definition at line 88 of file automata_base.hxx.
References vcsn::op_exists().
automaton_traits< T >::states_t states | ( | ) | const [inline] |
Accessor to the set of states. (const version).
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 [inline] |
Accessor to the set of states. (const version).
Accessor to the set of states.
(const version)
Definition at line 104 of file automata_base.hxx.
References vcsn::op_transitions().
automaton_traits< T >::initial_support_t initial | ( | ) | const [inline] |
Accessor to the initial application.
Definition at line 120 of file automata_base.hxx.
References vcsn::op_initial().
automaton_traits< T >::final_support_t final | ( | ) | const [inline] |
Accessor to the final application.
Definition at line 129 of file automata_base.hxx.
References vcsn::op_final().
bool is_initial | ( | const hstate_t & | state | ) | const |
Return true if the state is initial (ie it is in the initial support) .
void clear_initial | ( | ) | [inline] |
Make the support of the initial application to be empty.
Definition at line 294 of file automata_base.hxx.
References vcsn::op_clear_initial().
void clear_final | ( | ) | [inline] |
Make the support of the final application to be empty.
Definition at line 302 of file automata_base.hxx.
References vcsn::op_clear_final().
automaton_traits< T >::hstate_t add_state | ( | ) | [inline] |
Add a new state to the automaton.
Definition at line 340 of file automata_base.hxx.
References vcsn::op_add_state().
automaton_traits< T >::hstate_t get_state | ( | unsigned | state | ) | const [inline] |
Return a state descriptor for state number 'state'.
Definition at line 348 of file automata_base.hxx.
References vcsn::op_get_state().
automaton_traits< T >::hstate_t choose_state | ( | ) | const [inline] |
Return a randomly chosen state.
(valid only if the automaton is not empty)
(valid only if the automaton is not empty)
Definition at line 357 of file automata_base.hxx.
References vcsn::op_choose_state().
htransition_t add_weighted_transition | ( | const hstate_t & | src, | |
const hstate_t & | dst, | |||
const semiring_elt_t & | w, | |||
const monoid_elt_value_t & | m | |||
) |
Add a new weighted transition, specifying a semiring element and a monoid element.
htransition_t add_series_transition | ( | const hstate_t & | src, | |
const hstate_t & | dst, | |||
const series_set_elt_t & | e | |||
) |
Add a transition using a series.
If the underlying implementation is not sufficiently general to support this operation, you will have several transitions created.
letter_t letter_of | ( | const htransition_t & | e | ) | const |
Return the label seen as a letter.
Be careful, when you have more general label this method is ! probably invalidated (in that case, an exception should be ! raised.)
void delta | ( | OutputIterator | res, | |
const hstate_t & | src, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the output transitions/states of the state src using res.
void delta | ( | OutputIterator | res, | |
const hstate_t & | src, | |||
const L & | query, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the output transitions/states of the state src where query is true on a transition/state, using res.
void letter_delta | ( | OutputIterator | res, | |
const hstate_t & | src, | |||
const L & | letter, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the output transitions/states of the state src where the label matches the letter letter.
void spontaneous_delta | ( | OutputIterator | res, | |
const hstate_t & | src, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the output spontaneous transitions or states reached from src by an epsilon-transition.
void deltac | ( | Container & | res, | |
const hstate_t & | src, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the output transitions/states of the state src in the container res.
void deltac | ( | Container & | res, | |
const hstate_t & | src, | |||
const L & | query, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the output transitions/states of the state src where query is true on a transition/state, using the container res.
void letter_deltac | ( | Container & | res, | |
const hstate_t & | src, | |||
const L & | letter, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the output transitions/states of the state src where the label matches the letter letter.
void spontaneous_deltac | ( | Container & | res, | |
const hstate_t & | src, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the output spontaneous transitions or states reached from src by an epsilon-transition in the container res.
void deltaf | ( | Functor & | fun, | |
const hstate_t & | src, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
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.
void deltaf | ( | Functor & | fun, | |
const hstate_t & | src, | |||
const L & | query, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
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.
void letter_deltaf | ( | Functor & | fun, | |
const hstate_t & | src, | |||
const L & | letter, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
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.
void spontaneous_deltaf | ( | Functor & | fun, | |
const hstate_t & | src, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
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.
void rdelta | ( | OutputIterator | res, | |
const hstate_t & | src, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the input transitions/states of the state src using res.
void rdelta | ( | OutputIterator | res, | |
const hstate_t & | src, | |||
const L & | query, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the input transitions/states of the state src where query is true on a transition/state, using res.
void letter_rdelta | ( | OutputIterator | res, | |
const hstate_t & | src, | |||
const L & | letter, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the input transitions/states of the state src where the label matches the letter letter.
void spontaneous_rdelta | ( | OutputIterator | res, | |
const hstate_t & | src, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store every input spontaneous transitions or every states that reach src with an epsilon-transition using res.
void rdeltac | ( | Container & | res, | |
const hstate_t & | src, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the input transitions/states of the state src in the container res.
void rdeltac | ( | Container & | res, | |
const hstate_t & | src, | |||
const L & | query, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the input transitions/states of the state src where query is true on a transition/state, using the container res.
void letter_rdeltac | ( | Container & | res, | |
const hstate_t & | src, | |||
const L & | letter, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store the input transitions/states of the state src where the label matches the letter letter.
void spontaneous_rdeltac | ( | Container & | res, | |
const hstate_t & | src, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Store every input spontaneous transitions or every states that reach src with an epsilon-transition in the container res.
void rdeltaf | ( | Functor & | fun, | |
const hstate_t & | src, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Call the functor fun on every input transitions/states of the state src.
void rdeltaf | ( | Functor & | fun, | |
const hstate_t & | src, | |||
const L & | query, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Call the functor fun on every input transitions/states of the state src where query is true.
void letter_rdeltaf | ( | Functor & | fun, | |
const hstate_t & | src, | |||
const L & | letter, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Call the functor fun on every input transitions/states of the state src where the label matches the letter letter.
void spontaneous_rdeltaf | ( | Functor & | fun, | |
const hstate_t & | src, | |||
delta_kind::kind< Kind > | k | |||
) | const [inline] |
Call the functor fun on every input spontaneous transitions or every states that reach src with an epsilon-transition.