7 #include <vcsn/dyn/registries.hh>
26 auto auts = std::vector<automaton>{lhs, rhs};
42 REGISTRY_DEFINE(
focus);
47 return detail::focus_registry().call(aut, t);
58 auto auts = std::vector<automaton>{lhs, rhs};
77 signame += (
"std::integral_constant<unsigned, "
83 sig.
sig.emplace_back(
"vcsn::rat::identities");
84 for (
const auto& t: tapes)
85 sig.
sig.emplace_back(
"std::integral_constant<unsigned, "
87 return detail::lift_automaton_registry().call(sig, aut, ids, t);
101 if (!detail::make_context_registry().get0({
sname}))
103 return detail::make_context_registry().call({
sname}, full_name);
116 return detail::project_registry().call(aut, t);
124 return detail::project_context_registry().call(ctx, t);
132 return detail::project_expansion_registry().call(e, t);
140 return detail::project_expression_registry().call(e, t);
148 return detail::project_polynomial_registry().call(p, t);
156 return detail::project_label_registry().call(l, t);
166 auto auts = std::vector<automaton>{lhs, rhs};
178 static const auto map
181 "to_automaton algorithm",
183 {
"auto",
"expansion"},
187 {
"derived_term",
"expansion"},
191 {
"inductive",
"inductive,standard"},
209 return map[algo](exp);
220 auto auts = std::vector<automaton>{lhs, rhs};
227 auto auts = std::vector<expression>{lhs, rhs};
context make_context(const std::string &name)
Build a context from its name.
automaton lift(const automaton &aut, const std::vector< unsigned > &tapes={}, identities ids={})
Lift some tapes of the transducer, or turn an automaton into a spontaneous automaton.
automaton thompson(const expression &e)
The Thompson automaton of e.
std::string type(const automaton &a)
The implementation type of a.
boost::flyweight< std::string, boost::flyweights::no_tracking, boost::flyweights::intermodule_holder > symbol
An internalized string.
automaton conjunction(const automaton &lhs, const automaton &rhs, bool lazy=false)
The conjunction (aka synchronized product) of automata.
automaton tuple(const automaton &lhs, const automaton &rhs)
Build a two-tape automaton from two automata.
automaton standard(const automaton &a)
A standardized a.
label project_label(const label &lbl, integral_constant)
Bridge (project).
automaton to_automaton(const expression &exp, const std::string &algo="auto")
An automaton denoting the language of exp.
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.
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.
value_impl< detail::label_tag > label
Template-less root for contexts.
std::string normalize_context(const std::string &ctx, bool full)
A context, normalized.
automaton inductive(const expression &e, const std::string &algo="auto")
The inductive translation of e in an automaton.
value_impl< detail::polynomial_tag > polynomial
An expressionset can implement several different sets of identities on expressions.
polynomial project_polynomial(const polynomial &poly, integral_constant)
Bridge (project).
symbol vname() const
A description of the automaton, sufficient to build it.
A simple placeholder for integral constants.
static integral_constant to_integral_constant(unsigned tape)
automaton infiltrate(const automaton &lhs, const automaton &rhs)
The infiltration of automata lhs and rhs.
value_impl< detail::expansion_tag > expansion
void compile(const std::string &ctx)
Compile, and load, a DSO with instantiations for ctx.
expansion project_expansion(const expansion &exp, integral_constant)
Bridge (project).
std::string to_string(identities i)
Wrapper around operator<<.
Signature of a function call.
automaton shuffle(const automaton &lhs, const automaton &rhs)
The shuffle product of automata lhs and rhs.
automaton project(const automaton &aut, unsigned tape)
Keep a single tape from a multiple-tape automaton.
automaton derived_term(const expression &exp, const std::string &algo="auto")
The derived-term automaton of exp.
expression project_expression(const expression &exp, integral_constant)
Bridge (project).
automaton focus(const automaton &aut, unsigned tape)
Focus on a specific tape of a tupleset automaton.
A mapping from strings to Values.
static identities ids(const driver &d)
Get the identities of the driver.
Provide a variadic mul on top of a binary mul(), and one().
value_impl< detail::expression_tag > expression
automaton lift_automaton(const automaton &aut, identities ids, integral_constant)
Bridge.
automaton strip(const automaton &a)
The automaton in a with its metadata layers removed.
weightset_mixin< detail::r_impl > r