8 #include <vcsn/dyn/registries.hh>
28 auto auts = std::vector<automaton>{lhs, rhs};
44 REGISTRY_DEFINE(
focus);
49 return detail::focus_registry().call(aut, t);
60 auto auts = std::vector<automaton>{lhs, rhs};
79 signame += (
"std::integral_constant<unsigned, "
85 sig.
sig.emplace_back(
"vcsn::rat::identities");
86 for (
const auto& t: tapes)
87 sig.
sig.emplace_back(
"std::integral_constant<unsigned, "
89 return detail::lift_automaton_registry().call(sig, aut, ids, t);
103 if (!detail::make_context_registry().get0({
sname}))
105 return detail::make_context_registry().call({
sname}, full_name);
118 return detail::project_registry().call(aut, t);
126 return detail::project_context_registry().call(ctx, t);
134 return detail::project_polynomial_registry().call(p, t);
142 return detail::project_label_registry().call(l, t);
152 auto auts = std::vector<automaton>{lhs, rhs};
164 static const auto map
167 "to_automaton algorithm",
169 {
"auto",
"expansion"},
173 {
"derived_term",
"expansion"},
191 return map[algo](exp);
202 auto auts = std::vector<expression>{lhs, rhs};
std::shared_ptr< const detail::polynomial_base > polynomial
expansion tuple(const std::vector< expansion > &rs)
Build a k-tape expansion from k expansions.
automaton focus(const automaton &aut, unsigned tape)
Focus on a specific tape of a tupleset automaton.
context< project_labelset< Tape, labelset_t_of< Context >>, weightset_t_of< Context >> project_context
The type of the resulting apparent context when keeping only tape Tape.
An expressionset can implement several different sets of identities on expressions.
label project_label(const label &lbl, integral_constant)
Bridge (project).
A simple placeholder for integral constants.
polynomial project_polynomial(const polynomial &poly, integral_constant)
Bridge (project).
std::string normalize_context(const std::string &ctx, bool full=true)
A context, normalized.
std::string type(const automaton &a)
The implementation type of a.
weightset_mixin< detail::r_impl > r
Provide a variadic mul on top of a binary mul(), and one().
static integral_constant to_integral_constant(unsigned tape)
std::shared_ptr< const detail::label_base > label
A mapping from strings to Values.
automaton zpc(const expression &exp, const std::string &algo="auto")
The ZPC automaton of exp.
automaton trim(const automaton &aut)
The trim subautomaton of aut.
automaton strip(const automaton &a)
The automaton in a with its metadata layers removed.
automaton shuffle(const automaton &lhs, const automaton &rhs)
The shuffle product of automata lhs and rhs.
boost::flyweight< std::string, boost::flyweights::no_tracking, boost::flyweights::intermodule_holder > symbol
An internalized string.
std::shared_ptr< const detail::context_base > context
A dyn::context.
automaton project(const automaton &aut, unsigned tape)
Keep a single tape from a multiple-tape automaton.
std::shared_ptr< detail::automaton_base > automaton
automaton conjunction(const automaton &lhs, const automaton &rhs, bool lazy=false)
The conjunction (aka synchronized product) of automata.
automaton thompson(const expression &e)
The Thompson automaton of e.
automaton lift(const automaton &aut, const std::vector< unsigned > &tapes={}, rat::identities ids={})
Lift some tapes of the transducer, or turn an automaton into a spontaneous automaton.
context make_context(const std::string &name)
Build a context from its name.
static dyn::context ctx(const driver &d)
Get the context of the driver.
std::string to_string(identities i)
Wrapper around operator<<.
automaton infiltration(const automaton &lhs, const automaton &rhs)
The infiltration of automata lhs and rhs.
automaton standard(const automaton &a)
A standardized a.
automaton derived_term(const expression &exp, const std::string &algo="auto")
The derived-term automaton of exp.
std::shared_ptr< detail::expression_base > expression
automaton lift_automaton(const automaton &aut, vcsn::rat::identities ids, integral_constant)
Bridge.
static identities ids(const driver &d)
Get the identities of the driver.
automaton to_automaton(const expression &exp, const std::string &algo="auto")
An automaton denoting the language of exp.
void compile(const std::string &ctx)
Compile, and load, a DSO with instantiations for ctx.
Signature of a function call.