Vcsn
2.3
Be Rational
|
Build an automaton by induction from an expression. More...
#include <inductive.hh>
Classes | |
struct | visit_tuple |
struct | visit_tuple< false, Dummy > |
Public Types | |
using | automaton_t = Aut |
using | expressionset_t = ExpSet |
using | tag_t = Tag |
using | self_t = inductive_visitor |
using | context_t = context_t_of< expressionset_t > |
using | automatonset_t = automatonset< context_t_of< automaton_t >, tag_t > |
using | expression_t = typename expressionset_t::value_t |
using | labelset_t = labelset_t_of< context_t > |
using | weightset_t = weightset_t_of< context_t > |
using | weight_t = weight_t_of< context_t > |
using | state_t = state_t_of< automaton_t > |
using | super_t = typename expressionset_t::const_visitor |
Public Member Functions | |
inductive_visitor (const expressionset_t &rs) | |
automaton_t | operator() (const expression_t &v) |
Static Public Member Functions | |
static constexpr const char * | me () |
Name of this algorithm, for error messages. More... | |
Private Types | |
using | tuple_t = typename super_t::tuple_t |
template<Automaton AutSet> | |
using | compose_mem_fn_t = decltype(std::declval< AutSet >().compose(std::declval< typename AutSet::value_t >(), std::declval< typename AutSet::value_t >())) |
The type of the AutSet::compose() member function. More... | |
template<typename AutSet > | |
using | has_compose_mem_fn = detail::detect< AutSet, compose_mem_fn_t > |
Whether AutSet features a compose() member function. More... | |
Private Member Functions | |
automaton_t | recurse (const expression_t &v) |
void | visit (const tuple_t &v, std::true_type) override |
VCSN_RAT_VISIT (zero,) | |
VCSN_RAT_VISIT (one,) | |
VCSN_RAT_VISIT (atom, e) | |
VCSN_RAT_VISIT (compose, e) | |
VCSN_RAT_VISIT (conjunction, e) | |
VCSN_RAT_VISIT (infiltrate, e) | |
VCSN_RAT_VISIT (ldivide, e) | |
VCSN_RAT_VISIT (shuffle, e) | |
VCSN_RAT_VISIT (add, e) | |
VCSN_RAT_VISIT (mul, e) | |
VCSN_RAT_VISIT (star, e) | |
VCSN_RAT_VISIT (complement, e) | |
VCSN_RAT_VISIT (transposition, e) | |
VCSN_RAT_VISIT (lweight, e) | |
VCSN_RAT_VISIT (rweight, e) | |
Private Attributes | |
expressionset_t | rs_ |
automatonset_t | as_ |
automaton_t | res_ = nullptr |
Build an automaton by induction from an expression.
Aut | the type of the generated automaton. |
ExpSet | the expressionset. |
Tag | the nature of the operations (standard_tag, etc.). |
Definition at line 33 of file inductive.hh.
using vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::automaton_t = Aut |
Definition at line 37 of file inductive.hh.
using vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::automatonset_t = automatonset<context_t_of<automaton_t>, tag_t> |
Definition at line 43 of file inductive.hh.
|
private |
The type of the AutSet::compose() member function.
Definition at line 147 of file inductive.hh.
using vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::context_t = context_t_of<expressionset_t> |
Definition at line 42 of file inductive.hh.
using vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::expression_t = typename expressionset_t::value_t |
Definition at line 44 of file inductive.hh.
using vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::expressionset_t = ExpSet |
Definition at line 38 of file inductive.hh.
|
private |
Whether AutSet features a compose() member function.
Definition at line 151 of file inductive.hh.
using vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::labelset_t = labelset_t_of<context_t> |
Definition at line 45 of file inductive.hh.
using vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::self_t = inductive_visitor |
Definition at line 40 of file inductive.hh.
using vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::state_t = state_t_of<automaton_t> |
Definition at line 48 of file inductive.hh.
using vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::super_t = typename expressionset_t::const_visitor |
Definition at line 50 of file inductive.hh.
using vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::tag_t = Tag |
Definition at line 39 of file inductive.hh.
|
private |
Definition at line 80 of file inductive.hh.
using vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::weight_t = weight_t_of<context_t> |
Definition at line 47 of file inductive.hh.
using vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::weightset_t = weightset_t_of<context_t> |
Definition at line 46 of file inductive.hh.
|
inline |
Definition at line 55 of file inductive.hh.
|
inlinestatic |
Name of this algorithm, for error messages.
Definition at line 53 of file inductive.hh.
|
inline |
Definition at line 60 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_, vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::rs_, and vcsn::rat::to_string().
|
inlineprivate |
Definition at line 74 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_.
Referenced by vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::VCSN_RAT_VISIT().
|
inlineprivate |
Definition at line 127 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_, and vcsn::automatonset< Context, Tag >::zero().
|
inlineprivate |
Definition at line 132 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::automatonset< Context, Tag >::one(), and vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_.
|
inlineprivate |
Definition at line 137 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::automatonset< Context, Tag >::atom(), and vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_.
|
inlineprivate |
Definition at line 154 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::automatonset< Context, Tag >::compose(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), vcsn::res, and vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_.
|
inlineprivate |
Definition at line 171 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::automatonset< Context, Tag >::conjunction(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), vcsn::res, vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_, and vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::rs_.
|
inlineprivate |
Definition at line 189 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::automatonset< Context, Tag >::infiltrate(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), vcsn::res, vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_, and vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::rs_.
|
inlineprivate |
Definition at line 207 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::automatonset< Context, Tag >::ldivide(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), vcsn::res, vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_, and vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::rs_.
|
inlineprivate |
Definition at line 225 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), vcsn::res, vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_, vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::rs_, and vcsn::automatonset< Context, Tag >::shuffle().
|
inlineprivate |
Definition at line 243 of file inductive.hh.
References vcsn::automatonset< Context, Tag >::add(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), vcsn::res, and vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_.
|
inlineprivate |
Definition at line 251 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::automatonset< Context, Tag >::mul(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), vcsn::res, and vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_.
|
inlineprivate |
Definition at line 259 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_, and vcsn::automatonset< Context, Tag >::star().
|
inlineprivate |
Definition at line 264 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::automatonset< Context, Tag >::complement(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_, and vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::rs_.
|
inlineprivate |
Definition at line 279 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_, and vcsn::automatonset< Context, Tag >::transposition().
|
inlineprivate |
Definition at line 284 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::automatonset< Context, Tag >::lweight(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), and vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_.
|
inlineprivate |
Definition at line 289 of file inductive.hh.
References vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::as_, vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::res_, and vcsn::automatonset< Context, Tag >::rweight().
|
inlineoverrideprivate |
Definition at line 122 of file inductive.hh.
References vcsn::v.
|
private |
Definition at line 296 of file inductive.hh.
Referenced by vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::visit_tuple< bool, Dummy >::tape_(), and vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::VCSN_RAT_VISIT().
|
private |
Definition at line 297 of file inductive.hh.
Referenced by vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::operator()(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::visit_tuple< bool, Dummy >::operator()(), vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::recurse(), and vcsn::rat::inductive_visitor< Aut, ExpSet, Tag >::VCSN_RAT_VISIT().
|
private |