Vcsn
2.2
Be Rational
|
This class has no modeling purpose, it only serves to factor code common to letterset and wordset. More...
#include <genset-labelset.hh>
Public Types | |
using | genset_t = GenSet |
using | genset_ptr = std::shared_ptr< const genset_t > |
using | letter_t = typename genset_t::letter_t |
using | word_t = typename genset_t::word_t |
using | letters_t = typename genset_t::letters_t |
Public Member Functions | |
genset_labelset (const genset_ptr &gs) | |
genset_labelset (const genset_t &gs={}) | |
genset_ptr | genset () const |
const genset_t & | generators () const |
template<typename Fun > | |
void | convs_ (std::istream &i, Fun fun) const |
Read and process a class of letters. More... | |
letter_t | get_letter (std::istream &i, bool quoted=true) const |
Read one letter from i. More... | |
template<typename... Args> | |
auto | begin (Args &&...args) const -> decltype(this->genset() -> begin(std::forward< Args >(args)...)) |
template<typename... Args> | |
auto | delimit (Args &&...args) const -> decltype(this->genset() -> delimit(std::forward< Args >(args)...)) |
template<typename... Args> | |
auto | end (Args &&...args) const -> decltype(this->genset() -> end(std::forward< Args >(args)...)) |
template<typename... Args> | |
ATTRIBUTE_PURE auto | equal (Args &&...args) const -> decltype(this->genset() -> equal(std::forward< Args >(args)...)) |
template<typename... Args> | |
auto | get_word (Args &&...args) const -> decltype(this->genset() -> get_word(std::forward< Args >(args)...)) |
template<typename... Args> | |
ATTRIBUTE_PURE auto | has (Args &&...args) const -> decltype(this->genset() -> has(std::forward< Args >(args)...)) |
template<typename... Args> | |
ATTRIBUTE_PURE auto | is_letter (Args &&...args) const -> decltype(this->genset() -> is_letter(std::forward< Args >(args)...)) |
template<typename... Args> | |
ATTRIBUTE_PURE auto | less (Args &&...args) const -> decltype(this->genset() -> less(std::forward< Args >(args)...)) |
template<typename... Args> | |
auto | mul (Args &&...args) const -> decltype(this->genset() -> mul(std::forward< Args >(args)...)) |
template<typename... Args> | |
ATTRIBUTE_PURE auto | transpose (Args &&...args) const -> decltype(this->genset() -> transpose(std::forward< Args >(args)...)) |
template<typename... Args> | |
auto | undelimit (Args &&...args) const -> decltype(this->genset() -> undelimit(std::forward< Args >(args)...)) |
Static Public Member Functions | |
static symbol | sname () |
Private Attributes | |
genset_ptr | gs_ |
This class has no modeling purpose, it only serves to factor code common to letterset and wordset.
Definition at line 19 of file genset-labelset.hh.
using vcsn::detail::genset_labelset< GenSet >::genset_ptr = std::shared_ptr<const genset_t> |
Definition at line 22 of file genset-labelset.hh.
using vcsn::detail::genset_labelset< GenSet >::genset_t = GenSet |
Definition at line 21 of file genset-labelset.hh.
using vcsn::detail::genset_labelset< GenSet >::letter_t = typename genset_t::letter_t |
Definition at line 24 of file genset-labelset.hh.
using vcsn::detail::genset_labelset< GenSet >::letters_t = typename genset_t::letters_t |
Definition at line 26 of file genset-labelset.hh.
using vcsn::detail::genset_labelset< GenSet >::word_t = typename genset_t::word_t |
Definition at line 25 of file genset-labelset.hh.
|
inline |
Definition at line 28 of file genset-labelset.hh.
|
inline |
Definition at line 32 of file genset-labelset.hh.
|
inline |
Definition at line 97 of file genset-labelset.hh.
|
inline |
Read and process a class of letters.
Letters are sorted, and uniqued.
Stream i is on the '[', read up to the closing ']', included. Apply fun to all the letters. Take negation into account. Classes can never be empty.
For instance "[a-d0-9_]", or "[^a-fz], or "[^]", but not "[]".
Definition at line 65 of file genset-labelset.hh.
References vcsn::detail::conv_label_class_(), and vcsn::eat().
Referenced by vcsn::letterset< GenSet >::convs(), and vcsn::wordset< GenSet >::convs().
|
inline |
Definition at line 98 of file genset-labelset.hh.
|
inline |
Definition at line 99 of file genset-labelset.hh.
|
inline |
Definition at line 100 of file genset-labelset.hh.
|
inline |
Definition at line 41 of file genset-labelset.hh.
References vcsn::detail::genset_labelset< GenSet >::gs_.
Referenced by vcsn::random_label().
|
inline |
Definition at line 36 of file genset-labelset.hh.
References vcsn::detail::genset_labelset< GenSet >::gs_.
Referenced by vcsn::wordset< GenSet >::conv(), vcsn::detail::genset_labelset< GenSet >::get_letter(), vcsn::letterset< GenSet >::open(), and vcsn::wordset< GenSet >::open().
|
inline |
Read one letter from i.
Definition at line 78 of file genset-labelset.hh.
References vcsn::detail::genset_labelset< GenSet >::genset(), vcsn::detail::genset_labelset< GenSet >::has(), vcsn::str_escape(), and VCSN_REQUIRE.
Referenced by vcsn::letterset< GenSet >::conv().
|
inline |
Definition at line 101 of file genset-labelset.hh.
|
inline |
Definition at line 102 of file genset-labelset.hh.
Referenced by vcsn::detail::genset_labelset< GenSet >::get_letter(), vcsn::wordset< GenSet >::is_valid(), and vcsn::letterset< GenSet >::is_valid().
|
inline |
Definition at line 103 of file genset-labelset.hh.
|
inline |
Definition at line 104 of file genset-labelset.hh.
|
inline |
Definition at line 105 of file genset-labelset.hh.
Referenced by vcsn::random_label().
|
inlinestatic |
Definition at line 46 of file genset-labelset.hh.
References vcsn::sname().
Referenced by vcsn::letterset< GenSet >::sname(), and vcsn::wordset< GenSet >::sname().
|
inline |
Definition at line 106 of file genset-labelset.hh.
Referenced by vcsn::detail::nullable_helper< letterset< GenSet > >::transpose().
|
inline |
Definition at line 107 of file genset-labelset.hh.
|
private |
Definition at line 107 of file genset-labelset.hh.
Referenced by vcsn::detail::genset_labelset< GenSet >::generators(), and vcsn::detail::genset_labelset< GenSet >::genset().