17 #ifndef AWALI_ALGOS_LAL_LAN_CONVERSION_HH
18 # define AWALI_ALGOS_LAL_LAN_CONVERSION_HH
30 raise(
"to_lal: ",
"unsupported operation");
33 static Aut
allow_eps_(
const Aut& aut,
bool keep_history) {
34 raise(
"to_lan: ",
"unsupported operation");
38 template<
typename Aut,
typename T>
46 return copy(aut, keep_history);
56 template<
typename Aut,
typename T>
68 auto final_history = std::make_shared<single_history<n_automaton_t>>(aut);
69 auto & tmp_history = tmp->history()->template as<single_history<n_automaton_t>>();
70 auto & res_history = res->history()->template as<single_history<n_automaton_t>>();
71 for(
auto s: res->states())
72 final_history->add_state(s,tmp_history.get_state(res_history.get_state(s)));
74 res->set_history(final_history);
79 static const Aut
allow_eps_(
const Aut& aut,
bool keep_history) {
80 return copy(aut, keep_history);
85 template<
typename Aut>
92 template<
typename Aut>
carries the algebraic settings of automata
Definition: context.hh:40
Implementation of labels are letters.
Definition: letterset.hh:43
Implementation of labels are nullables (letter or empty).
Definition: nullableset.hh:189
direction_t
Used in some algorithms in which one may considers transitions forward or backwards.
Definition: enums.hh:35
@ BACKWARD
Definition: enums.hh:37
auto proper(const Aut &aut, direction_t dir=BACKWARD, bool prune=true, bool keep_history=true) -> decltype(copy(aut))
Eliminate spontaneous transitions.
Definition: proper.hh:444
void copy_into(const AutIn &in, AutOut &out, Pred keep_state, bool keep_history=true, bool transpose=false)
Copy an automaton.
Definition: copy.hh:144
auto get_not_nullable_context(const Context &ctx) -> not_nullable_of< Context >
Definition: traits.hh:309
auto to_lan(const Aut &aut, bool keep_history=true) -> typename internal::dispatch_lal_lan< Aut, labelset_t_of< Aut >>::n_automaton_t
Definition: lal_lan_conversion.hh:94
AutOut copy(const AutIn &input, Pred keep_state, bool keep_history=true, bool transpose=false)
A copy of input keeping only its states that are accepted by keep_state.
Definition: copy.hh:189
auto to_lal(const Aut &aut, direction_t dir=BACKWARD, bool prune=true, bool keep_history=true) -> typename internal::dispatch_lal_lan< Aut, labelset_t_of< Aut >>::l_automaton_t
Definition: lal_lan_conversion.hh:87
auto get_nullable_context(const Context &ctx) -> nullable_of< Context >
Definition: traits.hh:302
std::shared_ptr< internal::mutable_automaton_impl< Context > > mutable_automaton
Definition: mutable_automaton.hh:45
Main namespace of Awali.
Definition: ato.hh:22
static const Aut proper_(const Aut &aut, direction_t, bool, bool keep_history)
Definition: lal_lan_conversion.hh:45
typename labelset_trait< letterset< T > >::nullable_t nullable_t
Definition: lal_lan_conversion.hh:40
Aut l_automaton_t
Definition: lal_lan_conversion.hh:42
mutable_automaton< n_context_t > n_automaton_t
Definition: lal_lan_conversion.hh:43
static n_automaton_t allow_eps_(const Aut &aut, bool keep_history)
Definition: lal_lan_conversion.hh:49
static l_automaton_t proper_(const Aut &aut, direction_t dir, bool prune, bool keep_history)
Definition: lal_lan_conversion.hh:63
Aut n_automaton_t
Definition: lal_lan_conversion.hh:61
mutable_automaton< l_context_t > l_automaton_t
Definition: lal_lan_conversion.hh:60
typename labelset_trait< nullableset< T > >::not_nullable_t letterset_t
Definition: lal_lan_conversion.hh:58
static const Aut allow_eps_(const Aut &aut, bool keep_history)
Definition: lal_lan_conversion.hh:79
Definition: lal_lan_conversion.hh:26
Aut n_automaton_t
Definition: lal_lan_conversion.hh:28
static const Aut proper_(const Aut &aut, direction_t dir, bool prune, bool keep_history)
Definition: lal_lan_conversion.hh:29
Aut l_automaton_t
Definition: lal_lan_conversion.hh:27
static Aut allow_eps_(const Aut &aut, bool keep_history)
Definition: lal_lan_conversion.hh:33
trait that computes the related types of a labelset
Definition: traits.hh:34