Vcsn  2.2
Be Rational
vcsn::rat::expand_visitor< ExpSet > Class Template Reference

#include <expand.hh>

Inheritance diagram for vcsn::rat::expand_visitor< ExpSet >:
Collaboration diagram for vcsn::rat::expand_visitor< ExpSet >:

Public Types

using expressionset_t = ExpSet
 
using expression_t = typename expressionset_t::value_t
 
using context_t = context_t_of< expressionset_t >
 
using weightset_t = weightset_t_of< expressionset_t >
 
using weight_t = typename weightset_t::value_t
 
using polynomialset_t = expression_polynomialset_t< expressionset_t >
 
using polynomial_t = typename polynomialset_t::value_t
 
using super_t = typename ExpSet::const_visitor
 

Public Member Functions

 expand_visitor (const expressionset_t &rs)
 
expression_t operator() (const expression_t &v)
 

Static Public Member Functions

static constexpr const charme ()
 

Private Types

using tuple_t = typename super_t::tuple_t
 

Private Member Functions

polynomial_t expand (const expression_t &e)
 Syntactic sugar: recursive call to this visitor. More...
 
 VCSN_RAT_VISIT (zero,)
 
 VCSN_RAT_VISIT (one,)
 
 VCSN_RAT_VISIT (atom, v)
 
 VCSN_RAT_VISIT (sum, v)
 
 VCSN_RAT_VISIT (conjunction, v)
 
virtual void visit (const tuple_t &, std::true_type) override
 
 VCSN_RAT_VISIT (prod, v)
 
 VCSN_RAT_VISIT (star, v)
 
 VCSN_RAT_VISIT (lweight, v)
 
 VCSN_RAT_VISIT (rweight, v)
 

Private Attributes

expressionset_t rs_
 
weightset_t ws_ = *rs_.weightset()
 Shorthand to the weightset. More...
 
polynomialset_t ps_ = make_expression_polynomialset(rs_)
 Polynomialset of expressions. More...
 
polynomial_t res_
 The result. More...
 

Detailed Description

template<typename ExpSet>
class vcsn::rat::expand_visitor< ExpSet >

Template Parameters
ExpSetrelative to the expression.

Definition at line 21 of file expand.hh.

Member Typedef Documentation

template<typename ExpSet >
using vcsn::rat::expand_visitor< ExpSet >::context_t = context_t_of<expressionset_t>

Definition at line 27 of file expand.hh.

template<typename ExpSet >
using vcsn::rat::expand_visitor< ExpSet >::expression_t = typename expressionset_t::value_t

Definition at line 26 of file expand.hh.

template<typename ExpSet >
using vcsn::rat::expand_visitor< ExpSet >::expressionset_t = ExpSet

Definition at line 25 of file expand.hh.

template<typename ExpSet >
using vcsn::rat::expand_visitor< ExpSet >::polynomial_t = typename polynomialset_t::value_t

Definition at line 32 of file expand.hh.

Definition at line 31 of file expand.hh.

template<typename ExpSet >
using vcsn::rat::expand_visitor< ExpSet >::super_t = typename ExpSet::const_visitor

Definition at line 34 of file expand.hh.

template<typename ExpSet >
using vcsn::rat::expand_visitor< ExpSet >::tuple_t = typename super_t::tuple_t
private

Definition at line 102 of file expand.hh.

template<typename ExpSet >
using vcsn::rat::expand_visitor< ExpSet >::weight_t = typename weightset_t::value_t

Definition at line 29 of file expand.hh.

template<typename ExpSet >
using vcsn::rat::expand_visitor< ExpSet >::weightset_t = weightset_t_of<expressionset_t>

Definition at line 28 of file expand.hh.

Constructor & Destructor Documentation

template<typename ExpSet >
vcsn::rat::expand_visitor< ExpSet >::expand_visitor ( const expressionset_t rs)
inline

Definition at line 38 of file expand.hh.

Member Function Documentation

template<typename ExpSet >
polynomial_t vcsn::rat::expand_visitor< ExpSet >::expand ( const expression_t e)
inlineprivate

Syntactic sugar: recursive call to this visitor.

Definition at line 51 of file expand.hh.

References vcsn::rat::expand_visitor< ExpSet >::res_.

Referenced by vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT().

template<typename ExpSet >
static constexpr const char* vcsn::rat::expand_visitor< ExpSet >::me ( )
inlinestatic

Definition at line 36 of file expand.hh.

Referenced by vcsn::rat::expand_visitor< ExpSet >::visit().

template<typename ExpSet >
expression_t vcsn::rat::expand_visitor< ExpSet >::operator() ( const expression_t v)
inline
template<typename ExpSet >
vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT ( zero  )
inlineprivate
template<typename ExpSet >
vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT ( one  )
inlineprivate
template<typename ExpSet >
vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT ( atom  ,
 
)
inlineprivate
template<typename ExpSet >
vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT ( sum  ,
 
)
inlineprivate

Definition at line 72 of file expand.hh.

References vcsn::rat::expand_visitor< ExpSet >::expand(), vcsn::rat::expand_visitor< ExpSet >::ps_, vcsn::rat::expand_visitor< ExpSet >::res_, and vcsn::detail::v.

Here is the call graph for this function:

template<typename ExpSet >
vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT ( conjunction  ,
 
)
inlineprivate

Definition at line 80 of file expand.hh.

References vcsn::rat::expand_visitor< ExpSet >::expand(), vcsn::label_of(), vcsn::rat::expand_visitor< ExpSet >::ps_, vcsn::rat::expand_visitor< ExpSet >::res_, vcsn::rat::expand_visitor< ExpSet >::rs_, vcsn::rat::sum, vcsn::detail::v, vcsn::weight_of(), and vcsn::rat::expand_visitor< ExpSet >::ws_.

Here is the call graph for this function:

template<typename ExpSet >
vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT ( prod  ,
 
)
inlineprivate

Definition at line 108 of file expand.hh.

References vcsn::rat::expand_visitor< ExpSet >::expand(), vcsn::weightset_mixin< WeightSet >::mul(), vcsn::rat::expand_visitor< ExpSet >::ps_, vcsn::rat::expand_visitor< ExpSet >::res_, and vcsn::detail::v.

Here is the call graph for this function:

template<typename ExpSet >
vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT ( lweight  ,
 
)
inlineprivate
template<typename ExpSet >
vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT ( rweight  ,
 
)
inlineprivate
template<typename ExpSet >
virtual void vcsn::rat::expand_visitor< ExpSet >::visit ( const tuple_t ,
std::true_type   
)
inlineoverrideprivatevirtual

Definition at line 103 of file expand.hh.

References vcsn::rat::expand_visitor< ExpSet >::me().

Here is the call graph for this function:

Member Data Documentation

template<typename ExpSet >
polynomialset_t vcsn::rat::expand_visitor< ExpSet >::ps_ = make_expression_polynomialset(rs_)
private

Polynomialset of expressions.

Definition at line 140 of file expand.hh.

Referenced by vcsn::rat::expand_visitor< ExpSet >::operator()(), and vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT().

template<typename ExpSet >
expressionset_t vcsn::rat::expand_visitor< ExpSet >::rs_
private

Definition at line 136 of file expand.hh.

Referenced by vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT().

template<typename ExpSet >
weightset_t vcsn::rat::expand_visitor< ExpSet >::ws_ = *rs_.weightset()
private

Shorthand to the weightset.

Definition at line 138 of file expand.hh.

Referenced by vcsn::rat::expand_visitor< ExpSet >::VCSN_RAT_VISIT().


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