Basic automaton structure. More...
#include <automaton.hpp>
Public Types | |
typedef State | state_type |
The type of the states. | |
typedef Edge | edge_type |
The type of the symbols on the edges. | |
typedef StateComp | state_compare |
The type of the operator used to compare states. | |
typedef EdgeComp | edge_compare |
The type of the operator used to compare edge symbols. | |
typedef std::multimap< edge_type, state_type, edge_compare > | neighbours_list |
The neighbours list associates states to edge symbols. | |
typedef std::map< state_type, neighbours_list, state_compare > | adjacent_list |
Each state is given a set of reachable states with a neighbours list. | |
typedef std::vector< state_type > | result_state_list |
The return type of the methods returning states. | |
typedef std::vector< edge_type > | result_edge_list |
The return type of the methods returning edges. | |
Public Member Functions | |
void | add_edge (const state_type &s1, const state_type &s2, const edge_type &e) |
void | remove_edge (const state_type &s1, const state_type &s2, const edge_type &e) |
void | add_state (const state_type &s) |
void | add_initial_state (const state_type &s) |
void | add_final_state (const state_type &s) |
bool | state_exists (const state_type &s) const |
bool | state_is_final (const state_type &s) const |
bool | state_is_initial (const state_type &s) const |
void | states (result_state_list &v) const |
void | final_states (result_state_list &v) const |
void | initial_states (result_state_list &v) const |
void | alphabet (result_edge_list &v) const |
template<class InputIterator> | |
bool | match (InputIterator first, InputIterator last) const |
unsigned int | states_count () const |
void | reachables (const state_type &s, const edge_type &e, result_state_list &l) const |
void | reachables (const state_type &s, result_state_list &l) const |
void | edges (const state_type &s1, const state_type &s2, result_edge_list &l) const |
void | edges (const state_type &s1, const edge_type &edge, result_edge_list &l) const |
Basic automaton structure.
An automaton is a quintuplet (A, E, I ,F, T) where
Template parameters
Definition at line 57 of file automaton.hpp.
typedef std::map<state_type, neighbours_list, state_compare> claw::automaton< State, Edge, StateComp, EdgeComp >::adjacent_list |
Each state is given a set of reachable states with a neighbours list.
Definition at line 77 of file automaton.hpp.
typedef EdgeComp claw::automaton< State, Edge, StateComp, EdgeComp >::edge_compare |
The type of the operator used to compare edge symbols.
Definition at line 70 of file automaton.hpp.
typedef Edge claw::automaton< State, Edge, StateComp, EdgeComp >::edge_type |
The type of the symbols on the edges.
Definition at line 64 of file automaton.hpp.
typedef std::multimap<edge_type, state_type, edge_compare> claw::automaton< State, Edge, StateComp, EdgeComp >::neighbours_list |
The neighbours list associates states to edge symbols.
Definition at line 73 of file automaton.hpp.
typedef std::vector<edge_type> claw::automaton< State, Edge, StateComp, EdgeComp >::result_edge_list |
The return type of the methods returning edges.
Definition at line 83 of file automaton.hpp.
typedef std::vector<state_type> claw::automaton< State, Edge, StateComp, EdgeComp >::result_state_list |
The return type of the methods returning states.
Definition at line 80 of file automaton.hpp.
typedef StateComp claw::automaton< State, Edge, StateComp, EdgeComp >::state_compare |
The type of the operator used to compare states.
Definition at line 67 of file automaton.hpp.
typedef State claw::automaton< State, Edge, StateComp, EdgeComp >::state_type |
The type of the states.
Definition at line 61 of file automaton.hpp.