Vcsn  2.3
Be Rational
vcsn::detail::expression_automaton_impl< Aut > Class Template Reference

An incremental automaton whose states are expressions. More...

#include <expression-automaton.hh>

Inheritance diagram for vcsn::detail::expression_automaton_impl< Aut >:
Collaboration diagram for vcsn::detail::expression_automaton_impl< Aut >:

Public Types

using automaton_t = Aut
 
using super_t = automaton_decorator< automaton_t >
 
using context_t = context_t_of< automaton_t >
 
using expressionset_t = expressionset< context_t >
 
using expression_t = typename expressionset_t::value_t
 
using state_t = state_t_of< super_t >
 
using label_t = label_t_of< super_t >
 
using weight_t = weight_t_of< super_t >
 
using state_name_t = expression_t
 State are named by expressions. More...
 
using left_t = boost::bimaps::unordered_set_of< expression_t, vcsn::hash< expressionset_t >, vcsn::equal_to< expressionset_t >>
 Storage for state names. More...
 
using right_t = boost::bimaps::set_of< state_t >
 Storage for state index. More...
 
using bimap_t = boost::bimap< left_t, right_t >
 Bijective map state_name_t -> state_t;. More...
 
using origins_t = typename bimap_t::right_map
 Ordered map: state -> its derived term. More...
 
- Public Types inherited from vcsn::detail::automaton_decorator< Aut >
using automaton_t = Aut
 The type of automaton to wrap. More...
 
using context_t = context_t_of< Aut >
 
using element_type = typename automaton_t::element_type
 The automaton type, without shared_ptr. More...
 
using fresh_automaton_t = typename element_type::template fresh_automaton_t< Ctx >
 The (shared pointer) type to use it we have to create an automaton of the same (underlying) type. More...
 
using kind_t = typename context_t::kind_t
 
using labelset_t = typename context_t::labelset_t
 
using labelset_ptr = typename context_t::labelset_ptr
 
using label_t = typename labelset_t::value_t
 
using weightset_t = typename context_t::weightset_t
 
using weightset_ptr = typename context_t::weightset_ptr
 
using weight_t = typename weightset_t::value_t
 
using state_t = state_t_of< automaton_t >
 
using transition_t = transition_t_of< automaton_t >
 

Public Member Functions

 expression_automaton_impl (const expressionset_t &rs)
 
std::ostream & print_set (std::ostream &o, format fmt={}) const
 
state_t state (const expression_t &r)
 The state for expression r. More...
 
void add_transition (state_t src, const expression_t &dst, label_t l, const weight_t &w)
 
void new_transition (state_t src, const expression_t &dst, label_t l, const weight_t &w)
 
void set_initial (const expression_t &s, const weight_t &w)
 
bool state_has_name (state_t s) const
 
std::ostream & print_state_name (state_t s, std::ostream &o, format fmt={}, bool=false) const
 
const origins_torigins () const
 
- Public Member Functions inherited from vcsn::detail::automaton_decorator< Aut >
 automaton_decorator (automaton_t aut)
 
 automaton_decorator (const automaton_decorator &aut)
 
 automaton_decorator (const context_t &ctx)
 
 automaton_decorator (automaton_decorator &&aut)
 
automaton_decoratoroperator= (automaton_decorator &&that)
 
automaton_t strip ()
 The automaton we decorate. More...
 
auto all_in (Args &&...args) const -> decltype(aut_-> all_in(std::forward< Args >(args)...))
 
auto all_out (Args &&...args) const -> decltype(aut_-> all_out(std::forward< Args >(args)...))
 
auto all_states (Args &&...args) const -> decltype(aut_-> all_states(std::forward< Args >(args)...))
 
auto all_transitions (Args &&...args) const -> decltype(aut_-> all_transitions(std::forward< Args >(args)...))
 
auto context (Args &&...args) const -> decltype(aut_-> context(std::forward< Args >(args)...))
 
auto dst_of (Args &&...args) const -> decltype(aut_-> dst_of(std::forward< Args >(args)...))
 
auto get_final_weight (Args &&...args) const -> decltype(aut_-> get_ final _weight(std
 
auto get_initial_weight (Args &&...args) const -> decltype(aut_-> get_initial_weight(std::forward< Args >(args)...))
 
auto get_transition (Args &&...args) const -> decltype(aut_-> get_transition(std::forward< Args >(args)...))
 
auto has_state (Args &&...args) const -> decltype(aut_-> has_state(std::forward< Args >(args)...))
 
auto has_transition (Args &&...args) const -> decltype(aut_-> has_transition(std::forward< Args >(args)...))
 
auto is_final (Args &&...args) const -> decltype(aut_-> is_ final(std
 
auto is_initial (Args &&...args) const -> decltype(aut_-> is_initial(std::forward< Args >(args)...))
 
auto label_of (Args &&...args) const -> decltype(aut_-> label_of(std::forward< Args >(args)...))
 
auto labelset (Args &&...args) const -> decltype(aut_-> labelset(std::forward< Args >(args)...))
 
auto num_all_states (Args &&...args) const -> decltype(aut_-> num_all_states(std::forward< Args >(args)...))
 
auto num_finals (Args &&...args) const -> decltype(aut_-> num_ final s(std
 
auto num_initials (Args &&...args) const -> decltype(aut_-> num_initials(std::forward< Args >(args)...))
 
auto num_states (Args &&...args) const -> decltype(aut_-> num_states(std::forward< Args >(args)...))
 
auto num_transitions (Args &&...args) const -> decltype(aut_-> num_transitions(std::forward< Args >(args)...))
 
auto prepost_label (Args &&...args) const -> decltype(aut_-> prepost_label(std::forward< Args >(args)...))
 
auto print (Args &&...args) const -> decltype(aut_-> print(std::forward< Args >(args)...))
 
auto print_set (Args &&...args) const -> decltype(aut_-> print_set(std::forward< Args >(args)...))
 
auto print_state (Args &&...args) const -> decltype(aut_-> print_state(std::forward< Args >(args)...))
 
auto print_state_name (Args &&...args) const -> decltype(aut_-> print_state_name(std::forward< Args >(args)...))
 
auto src_of (Args &&...args) const -> decltype(aut_-> src_of(std::forward< Args >(args)...))
 
auto state_has_name (Args &&...args) const -> decltype(aut_-> state_has_name(std::forward< Args >(args)...))
 
auto is_lazy (Args &&...args) const -> decltype(aut_-> is_lazy(std::forward< Args >(args)...))
 
auto is_lazy_in (Args &&...args) const -> decltype(aut_-> is_lazy_in(std::forward< Args >(args)...))
 
auto states (Args &&...args) const -> decltype(aut_-> states(std::forward< Args >(args)...))
 
auto weight_of (Args &&...args) const -> decltype(aut_-> weight_of(std::forward< Args >(args)...))
 
auto weightset (Args &&...args) const -> decltype(aut_-> weightset(std::forward< Args >(args)...))
 
auto add_final (Args &&...args) -> decltype(aut_-> add_ final(std
 
auto add_initial (Args &&...args) -> decltype(aut_-> add_initial(std::forward< Args >(args)...))
 
auto add_transition (Args &&...args) -> decltype(aut_-> add_transition(std::forward< Args >(args)...))
 
auto add_transition_copy (Args &&...args) -> decltype(aut_-> add_transition_copy(std::forward< Args >(args)...))
 
auto add_weight (Args &&...args) -> decltype(aut_-> add_weight(std::forward< Args >(args)...))
 
auto del_state (Args &&...args) -> decltype(aut_-> del_state(std::forward< Args >(args)...))
 
auto del_transition (Args &&...args) -> decltype(aut_-> del_transition(std::forward< Args >(args)...))
 
auto lweight (Args &&...args) -> decltype(aut_-> lweight(std::forward< Args >(args)...))
 
auto new_state (Args &&...args) -> decltype(aut_-> new_state(std::forward< Args >(args)...))
 
auto new_transition (Args &&...args) -> decltype(aut_-> new_transition(std::forward< Args >(args)...))
 
auto new_transition_copy (Args &&...args) -> decltype(aut_-> new_transition_copy(std::forward< Args >(args)...))
 
auto rweight (Args &&...args) -> decltype(aut_-> rweight(std::forward< Args >(args)...))
 
auto set_final (Args &&...args) -> decltype(aut_-> set_ final(std
 
auto set_lazy (Args &&...args) -> decltype(aut_-> set_lazy(std::forward< Args >(args)...))
 
auto set_lazy_in (Args &&...args) -> decltype(aut_-> set_lazy_in(std::forward< Args >(args)...))
 
auto set_initial (Args &&...args) -> decltype(aut_-> set_initial(std::forward< Args >(args)...))
 
auto set_transition (Args &&...args) -> decltype(aut_-> set_transition(std::forward< Args >(args)...))
 
auto set_weight (Args &&...args) -> decltype(aut_-> set_weight(std::forward< Args >(args)...))
 
auto unset_final (Args &&...args) -> decltype(aut_-> unset_ final(std
 
auto unset_initial (Args &&...args) -> decltype(aut_-> unset_initial(std::forward< Args >(args)...))
 

Static Public Member Functions

static symbol sname ()
 Static name. More...
 
- Static Public Member Functions inherited from vcsn::detail::automaton_decorator< Aut >
static constexpr auto lazy_transition (Args &&...args) -> decltype(element_type::lazy_transition(std::forward< Args >(args)...))
 
static constexpr auto null_state (Args &&...args) -> decltype(element_type::null_state(std::forward< Args >(args)...))
 
static constexpr auto null_transition (Args &&...args) -> decltype(element_type::null_transition(std::forward< Args >(args)...))
 
static constexpr auto post (Args &&...args) -> decltype(element_type::post(std::forward< Args >(args)...))
 
static constexpr auto pre (Args &&...args) -> decltype(element_type::pre(std::forward< Args >(args)...))
 
static constexpr auto sname (Args &&...args) -> decltype(element_type::sname(std::forward< Args >(args)...))
 

Public Attributes

expressionset_t rs_
 The expression's set. More...
 
std::stack< std::pair< state_t, const state_name_t > > todo_
 States to visit. More...
 
bimap_t bimap_
 expression -> state. More...
 

Additional Inherited Members

- Protected Attributes inherited from vcsn::detail::automaton_decorator< Aut >
automaton_t aut_
 The wrapped automaton, possibly const. More...
 

Detailed Description

template<Automaton Aut>
class vcsn::detail::expression_automaton_impl< Aut >

An incremental automaton whose states are expressions.

Definition at line 21 of file expression-automaton.hh.

Member Typedef Documentation

template<Automaton Aut>
using vcsn::detail::expression_automaton_impl< Aut >::automaton_t = Aut

Definition at line 25 of file expression-automaton.hh.

template<Automaton Aut>
using vcsn::detail::expression_automaton_impl< Aut >::bimap_t = boost::bimap<left_t, right_t>

Bijective map state_name_t -> state_t;.

Definition at line 65 of file expression-automaton.hh.

Definition at line 27 of file expression-automaton.hh.

template<Automaton Aut>
using vcsn::detail::expression_automaton_impl< Aut >::expression_t = typename expressionset_t::value_t

Definition at line 29 of file expression-automaton.hh.

Definition at line 28 of file expression-automaton.hh.

template<Automaton Aut>
using vcsn::detail::expression_automaton_impl< Aut >::label_t = label_t_of<super_t>

Definition at line 31 of file expression-automaton.hh.

template<Automaton Aut>
using vcsn::detail::expression_automaton_impl< Aut >::left_t = boost::bimaps::unordered_set_of<expression_t, vcsn::hash<expressionset_t>, vcsn::equal_to<expressionset_t>>

Storage for state names.

Definition at line 61 of file expression-automaton.hh.

template<Automaton Aut>
using vcsn::detail::expression_automaton_impl< Aut >::origins_t = typename bimap_t::right_map

Ordered map: state -> its derived term.

Definition at line 128 of file expression-automaton.hh.

template<Automaton Aut>
using vcsn::detail::expression_automaton_impl< Aut >::right_t = boost::bimaps::set_of<state_t>

Storage for state index.

Definition at line 63 of file expression-automaton.hh.

template<Automaton Aut>
using vcsn::detail::expression_automaton_impl< Aut >::state_name_t = expression_t

State are named by expressions.

Definition at line 35 of file expression-automaton.hh.

template<Automaton Aut>
using vcsn::detail::expression_automaton_impl< Aut >::state_t = state_t_of<super_t>

Definition at line 30 of file expression-automaton.hh.

Definition at line 26 of file expression-automaton.hh.

template<Automaton Aut>
using vcsn::detail::expression_automaton_impl< Aut >::weight_t = weight_t_of<super_t>

Definition at line 32 of file expression-automaton.hh.

Constructor & Destructor Documentation

template<Automaton Aut>
vcsn::detail::expression_automaton_impl< Aut >::expression_automaton_impl ( const expressionset_t rs)
inline

Definition at line 37 of file expression-automaton.hh.

Member Function Documentation

template<Automaton Aut>
void vcsn::detail::expression_automaton_impl< Aut >::add_transition ( state_t  src,
const expression_t dst,
label_t  l,
const weight_t w 
)
inline

Definition at line 88 of file expression-automaton.hh.

template<Automaton Aut>
void vcsn::detail::expression_automaton_impl< Aut >::new_transition ( state_t  src,
const expression_t dst,
label_t  l,
const weight_t w 
)
inline

Definition at line 96 of file expression-automaton.hh.

template<Automaton Aut>
const origins_t& vcsn::detail::expression_automaton_impl< Aut >::origins ( ) const
inline

Definition at line 129 of file expression-automaton.hh.

template<Automaton Aut>
std::ostream& vcsn::detail::expression_automaton_impl< Aut >::print_set ( std::ostream &  o,
format  fmt = {} 
) const
inline

Definition at line 50 of file expression-automaton.hh.

template<Automaton Aut>
std::ostream& vcsn::detail::expression_automaton_impl< Aut >::print_state_name ( state_t  s,
std::ostream &  o,
format  fmt = {},
bool  = false 
) const
inline

Definition at line 115 of file expression-automaton.hh.

template<Automaton Aut>
void vcsn::detail::expression_automaton_impl< Aut >::set_initial ( const expression_t s,
const weight_t w 
)
inline

Definition at line 104 of file expression-automaton.hh.

template<Automaton Aut>
static symbol vcsn::detail::expression_automaton_impl< Aut >::sname ( )
inlinestatic

Static name.

Definition at line 43 of file expression-automaton.hh.

References vcsn::res, and vcsn::sname().

Here is the call graph for this function:

template<Automaton Aut>
state_t vcsn::detail::expression_automaton_impl< Aut >::state ( const expression_t r)
inline

The state for expression r.

If this is a new state, schedule it for visit.

Definition at line 69 of file expression-automaton.hh.

template<Automaton Aut>
bool vcsn::detail::expression_automaton_impl< Aut >::state_has_name ( state_t  s) const
inline

Definition at line 109 of file expression-automaton.hh.

Member Data Documentation

template<Automaton Aut>
bimap_t vcsn::detail::expression_automaton_impl< Aut >::bimap_

expression -> state.

Definition at line 140 of file expression-automaton.hh.

template<Automaton Aut>
expressionset_t vcsn::detail::expression_automaton_impl< Aut >::rs_

The expression's set.

Definition at line 136 of file expression-automaton.hh.

template<Automaton Aut>
std::stack<std::pair<state_t, const state_name_t> > vcsn::detail::expression_automaton_impl< Aut >::todo_

States to visit.

Definition at line 138 of file expression-automaton.hh.


The documentation for this class was generated from the following file: