6 #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);
135 auto auts = std::vector<automaton>{lhs, rhs};
156 static const auto map = std::map<std::string, algo_t>
165 {
"zpc_compact", algo_t::zpc_compact},
167 switch (
getargs(
"to_automaton: algorithm", map, algo))
179 case algo_t::zpc_compact:
180 return zpc(exp,
"compact");
193 auto auts = std::vector<expression>{lhs, rhs};
automaton project(const automaton &aut, unsigned tape)
Keep a single tape from a multiple-tape automaton.
automaton strip(const automaton &a)
The automaton in a with its metadata layers removed.
automaton standard(const automaton &a)
A standardized a.
std::shared_ptr< const detail::context_base > context
A dyn::context.
polynomial derivation(const expression &exp, const label &lbl, bool breaking=false)
Derive exp with respect to s.
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.
std::string type(const automaton &a)
The implementation type of a.
C::mapped_type getargs(const std::string &kind, const C &map, const std::string &key)
Find a correspondance in a map.
std::string normalize_context(const std::string &ctx, bool full=true)
A context, normalized.
automaton lift_automaton(const automaton &aut, vcsn::rat::identities ids, integral_constant)
Bridge.
std::string to_string(identities i)
Wrapper around operator<<.
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.
A simple placeholder for integral constants.
automaton conjunction(const automaton &lhs, const automaton &rhs, bool lazy=false)
The conjunction (aka synchronized product) of automata.
automaton derived_term(const expression &exp, const std::string &algo="auto")
The derived-term automaton of exp.
rat::expression_polynomial_t< ExpSet > derivation(const ExpSet &rs, const typename ExpSet::value_t &e, label_t_of< ExpSet > a, bool breaking=false)
Derive an expression wrt to a letter.
static dyn::context ctx(const driver &d)
Get the context of the driver.
static integral_constant to_integral_constant(unsigned tape)
automaton shuffle(const automaton &lhs, const automaton &rhs)
The shuffle product of automata lhs and rhs.
void compile(const std::string &ctx)
Compile, and load, a DSO with instantiations for ctx.
Aut zpc(const context_t_of< Aut > &ctx, const ExpSet &rs, const typename ExpSet::value_t &r, const std::string &algo="auto")
Build a ZPC automaton from an expression.
std::shared_ptr< detail::automaton_base > automaton
std::shared_ptr< const detail::expansion_base > expansion
static identities ids(const driver &d)
Get the identities of the driver.
automaton thompson(const expression &e)
The Thompson automaton of e.
automaton focus(const automaton &aut, unsigned tape)
Focus on a specific tape of a tupleset automaton.
automaton to_automaton(const expression &exp, const std::string &algo="auto")
An automaton denoting the language of exp.
context make_context(const std::string &name)
Build a context from its name.
automaton zpc(const expression &exp, const std::string &algo="auto")
The ZPC automaton of exp.
boost::flyweight< std::string, boost::flyweights::no_tracking, boost::flyweights::intermodule_holder > symbol
An internalized string.
An expressionset can implement several different sets of identities on expressions.
Aut thompson(const context_t_of< Aut > &ctx, const ExpSet &rs, const typename ExpSet::value_t &r)
Build a Thompson automaton from an expression.
Signature of a function call.
std::shared_ptr< detail::expression_base > expression
auto standard(const Aut &aut) -> decltype(copy(aut))
automaton infiltration(const automaton &lhs, const automaton &rhs)
The infiltration of automata lhs and rhs.
#define BUILTIN_UNREACHABLE()
expression tuple(const expression &lhs, const expression &rhs)
Build a two-tape expression from two expressions.