Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
vcsn::detail::genset_labelset< GenSet > Struct Template Reference

This class has no modeling purpose, it only serves to factor code common to letterset, nullableset and wordset. More...

#include <genset-labelset.hh>

Inheritance diagram for vcsn::detail::genset_labelset< GenSet >:
Collaboration diagram for vcsn::detail::genset_labelset< GenSet >:

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 = std::set< letter_t >
 

Public Member Functions

 genset_labelset (const genset_ptr &gs)
 
 genset_labelset (const genset_t &gs={})
 
const genset_tgenset () const
 
std::string vname (bool full=true) const
 
std::set< letter_tconvs_ (std::istream &i) const
 Read a range of letters. More...
 
template<typename... Args>
auto begin (Args &&...args) const -> decltype(this->genset().begin(std::forward< Args >(args)...))
 
template<typename... Args>
auto concat (Args &&...args) const -> decltype(this->genset().concat(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>
auto delimit (Args &&...args) const -> decltype(this->genset().delimit(std::forward< Args >(args)...))
 
template<typename... Args>
auto undelimit (Args &&...args) const -> decltype(this->genset().undelimit(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 equals (Args &&...args) const -> decltype(this->genset().equals(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 transpose (Args &&...args) const -> decltype(this->genset().transpose(std::forward< Args >(args)...))
 

Static Public Member Functions

static std::string sname ()
 

Private Attributes

genset_ptr gs_
 

Detailed Description

template<typename GenSet>
struct vcsn::detail::genset_labelset< GenSet >

This class has no modeling purpose, it only serves to factor code common to letterset, nullableset and wordset.

Definition at line 19 of file genset-labelset.hh.

Member Typedef Documentation

template<typename GenSet >
using vcsn::detail::genset_labelset< GenSet >::genset_ptr = std::shared_ptr<const genset_t>

Definition at line 22 of file genset-labelset.hh.

template<typename GenSet >
using vcsn::detail::genset_labelset< GenSet >::genset_t = GenSet

Definition at line 21 of file genset-labelset.hh.

template<typename GenSet >
using vcsn::detail::genset_labelset< GenSet >::letter_t = typename genset_t::letter_t

Definition at line 24 of file genset-labelset.hh.

template<typename GenSet >
using vcsn::detail::genset_labelset< GenSet >::letters_t = std::set<letter_t>

Definition at line 26 of file genset-labelset.hh.

template<typename GenSet >
using vcsn::detail::genset_labelset< GenSet >::word_t = typename genset_t::word_t

Definition at line 25 of file genset-labelset.hh.

Constructor & Destructor Documentation

template<typename GenSet >
vcsn::detail::genset_labelset< GenSet >::genset_labelset ( const genset_ptr gs)
inline

Definition at line 28 of file genset-labelset.hh.

template<typename GenSet >
vcsn::detail::genset_labelset< GenSet >::genset_labelset ( const genset_t gs = {})
inline

Definition at line 32 of file genset-labelset.hh.

Member Function Documentation

template<typename GenSet >
template<typename... Args>
auto vcsn::detail::genset_labelset< GenSet >::begin ( Args &&...  args) const -> decltype(this->genset(). begin (std::forward<Args>(args)...))
inline

Definition at line 118 of file genset-labelset.hh.

template<typename GenSet >
template<typename... Args>
auto vcsn::detail::genset_labelset< GenSet >::concat ( Args &&...  args) const -> decltype(this->genset(). concat (std::forward<Args>(args)...))
inline

Definition at line 119 of file genset-labelset.hh.

template<typename GenSet >
std::set<letter_t> vcsn::detail::genset_labelset< GenSet >::convs_ ( std::istream &  i) const
inline

Read a range of letters.

Stream i is right on a '['. Read up to the closing ']', and return the list of the matching labels.

For instance "[a-d0-9_]".

Definition at line 58 of file genset-labelset.hh.

References vcsn::eat(), vcsn::find(), vcsn::detail::genset_labelset< GenSet >::genset(), vcsn::detail::genset_labelset< GenSet >::has(), vcsn::require(), and vcsn::str_escape().

Referenced by vcsn::letterset< GenSet >::convs(), and vcsn::wordset< GenSet >::convs().

Here is the call graph for this function:

template<typename GenSet >
template<typename... Args>
auto vcsn::detail::genset_labelset< GenSet >::delimit ( Args &&...  args) const -> decltype(this->genset(). delimit (std::forward<Args>(args)...))
inline

Definition at line 121 of file genset-labelset.hh.

template<typename GenSet >
template<typename... Args>
auto vcsn::detail::genset_labelset< GenSet >::end ( Args &&...  args) const -> decltype(this->genset(). end (std::forward<Args>(args)...))
inline

Definition at line 123 of file genset-labelset.hh.

template<typename GenSet >
template<typename... Args>
ATTRIBUTE_PURE auto vcsn::detail::genset_labelset< GenSet >::equals ( Args &&...  args) const -> decltype(this->genset(). equals (std::forward<Args>(args)...))
inline

Definition at line 124 of file genset-labelset.hh.

template<typename GenSet >
template<typename... Args>
auto vcsn::detail::genset_labelset< GenSet >::get_word ( Args &&...  args) const -> decltype(this->genset(). get_word (std::forward<Args>(args)...))
inline

Definition at line 120 of file genset-labelset.hh.

template<typename GenSet >
template<typename... Args>
ATTRIBUTE_PURE auto vcsn::detail::genset_labelset< GenSet >::has ( Args &&...  args) const -> decltype(this->genset(). has (std::forward<Args>(args)...))
inline
template<typename GenSet >
template<typename... Args>
ATTRIBUTE_PURE auto vcsn::detail::genset_labelset< GenSet >::is_letter ( Args &&...  args) const -> decltype(this->genset(). is_letter (std::forward<Args>(args)...))
inline

Definition at line 126 of file genset-labelset.hh.

template<typename GenSet >
static std::string vcsn::detail::genset_labelset< GenSet >::sname ( )
inlinestatic

Definition at line 41 of file genset-labelset.hh.

References vcsn::sname().

Referenced by vcsn::wordset< GenSet >::sname(), and vcsn::letterset< GenSet >::sname().

Here is the call graph for this function:

template<typename GenSet >
template<typename... Args>
ATTRIBUTE_PURE auto vcsn::detail::genset_labelset< GenSet >::transpose ( Args &&...  args) const -> decltype(this->genset(). transpose (std::forward<Args>(args)...))
inline

Definition at line 127 of file genset-labelset.hh.

template<typename GenSet >
template<typename... Args>
auto vcsn::detail::genset_labelset< GenSet >::undelimit ( Args &&...  args) const -> decltype(this->genset(). undelimit (std::forward<Args>(args)...))
inline

Definition at line 122 of file genset-labelset.hh.

template<typename GenSet >
std::string vcsn::detail::genset_labelset< GenSet >::vname ( bool  full = true) const
inline

Definition at line 46 of file genset-labelset.hh.

References vcsn::detail::genset_labelset< GenSet >::genset().

Referenced by vcsn::wordset< GenSet >::vname(), and vcsn::letterset< GenSet >::vname().

Here is the call graph for this function:

Member Data Documentation

template<typename GenSet >
genset_ptr vcsn::detail::genset_labelset< GenSet >::gs_
private

Definition at line 127 of file genset-labelset.hh.

Referenced by vcsn::detail::genset_labelset< GenSet >::genset().


The documentation for this struct was generated from the following file: