17 #ifndef AWALI_STTC_WAUTOMATON_HH 
   18 #define AWALI_STTC_WAUTOMATON_HH 
   44     mutable_automaton<context<ctx::lal_char,T>>
 
   47       return make_shared_ptr<mutable_automaton<context<ctx::lal_char,T>>>
 
   55     mutable_automaton<context<ctx::lal_char,b>>
 
   58       return make_automaton<b>(letters);
 
   71     mutable_automaton<context<ctx::lan_char,T>>
 
   74       return make_shared_ptr<mutable_automaton<context<ctx::lan_char,T>>>
 
   82     mutable_automaton<context<ctx::lan_char,b>>
 
   85       return make_automaton_with_epsilon<b>(letters);
 
   89     mutable_automaton<context<ctx::lat<ctx::lan_char,ctx::lan_char>,T>>
 
   92       return make_shared_ptr<mutable_automaton<context<ctx::lat<ctx::lan_char,ctx::lan_char>,T>>>
 
   96     mutable_automaton<context<ctx::lat<ctx::lan_char,ctx::lan_char>,b>>
 
   97       make_transducer(
const std::set<char>& letterA, 
const std::set<char>& letterB)
 
   99       return make_transducer<b>(letterA, letterB);
 
  103     mutable_automaton<context<ctx::lal_char,T>>
 
  107         throw std::runtime_error(
"json: Automaton");
 
  111         throw std::runtime_error(
"Not a letter automaton");
 
  113         throw std::runtime_error(
"Epsilon transitions not supported by this function");
 
  115       for(
auto jv : *jl->
at(
"alphabet")->
array())
 
  124     mutable_automaton<context<ctx::lal_char,b>>
 
  126         return load_automaton<b>(is);
 
  130     ratexpset_of<context<ctx::lal_char, T>>
 
  138     ratexpset_of<context<ctx::lal_char, b>>
 
  140         return make_ratexpset<b>();
 
  144     ratexpset_of<context<ctx::lat<ctx::lan_char,ctx::lan_char>, T>>
 
  152     ratexpset_of<context<ctx::lat<ctx::lan_char,ctx::lan_char>, b>>
 
  154         return make_tdc_ratexpset<b>();
 
  158     template<
typename RATEXPSET>
 
  160     make_ratexp(RATEXPSET& ratset, 
const std::string& exp) -> 
typename RATEXPSET::ratexp_t
 
  162         return parse_exp(ratset, exp, 
true, 
false);
 
  165     template<
typename AUTOMATON>
 
  170       return ratset_t(
get_rat_context(aut->context()),ratset_t::identities_t::trivial);
 
virtual std::string to_string() const
Coerces this node_t to an std::string.
Definition: node.hh:329
 
virtual object_t const  * object() const
Casts this node to object_t.
Definition: node.hh:201
 
virtual array_t const  * array() const
Casts this node to array_t.
Definition: node.hh:205
 
virtual bool has_child(std::string const &key) const override
Definition: node.hh:378
 
virtual node_t * at(std::string const &key) override
 
carries the algebraic settings of automata
Definition: context.hh:40
 
Implementation of labels are letters.
Definition: letterset.hh:43
 
GenSet genset_t
Definition: letterset.hh:45
 
Implementation of labels are nullables (letter or empty).
Definition: nullableset.hh:189
 
A ValueSet which is a Cartesian product of ValueSets.
Definition: tupleset.hh:80
 
node_t * parse(std::istream &)
 
auto make_ratexp(RATEXPSET &ratset, const std::string &exp) -> typename RATEXPSET::ratexp_t
Definition: automaton.hh:160
 
auto get_rat_context(const Context &ctx) -> context< typename labelset_trait< typename Context::labelset_t >::ratlabelset_t, typename Context::weightset_t >
Definition: traits.hh:238
 
RatExpSet::ratexp_t parse_exp(const RatExpSet &ratexpset, const std::string &s, bool check_complete=true, bool strict_alphabet=true)
parser of rational expressions
Definition: exp_parser.hh:425
 
mutable_automaton< context< ctx::lan_char, T > > make_automaton_with_epsilon(const std::set< char > &letters)
Build an awali weighted automaton labeled by letters with epsilon transitions.
Definition: automaton.hh:72
 
mutable_automaton< context< ctx::lal_char, T > > make_automaton(const std::set< char > &letters)
Build an awali weighted automaton labeled by letters.
Definition: automaton.hh:45
 
mutable_automaton< context< ctx::lal_char, T > > load_automaton(std::istream &is)
Definition: automaton.hh:104
 
auto get_ratexpset(AUTOMATON &aut) -> ratexpset_of< context_t_of< AUTOMATON >>
Definition: automaton.hh:167
 
mutable_automaton< context< ctx::lat< ctx::lan_char, ctx::lan_char >, T > > make_transducer(const std::set< char > &letterA, const std::set< char > &letterB)
Definition: automaton.hh:90
 
mutable_automaton< Context > js_parse_aut_content(const Context &context, json::object_t const *p)
Definition: js_parser.hh:104
 
void js_add_metadata(Aut &aut, json::object_t *p)
Definition: js_parser.hh:165
 
ratexpset_of< context< ctx::lat< ctx::lan_char, ctx::lan_char >, T > > make_tdc_ratexpset()
Definition: automaton.hh:145
 
ratexpset_of< context< ctx::lal_char, T > > make_ratexpset()
Definition: automaton.hh:131
 
Main namespace of Awali.
Definition: ato.hh:22
 
Provide a variadic mul on top of a binary mul(), and one().
Definition: weightset.hh:38