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

Implementation of labels are words. More...

#include <fwd.hh>

Inheritance diagram for vcsn::wordset< GenSet >:
Collaboration diagram for vcsn::wordset< GenSet >:

Public Types

using genset_t = GenSet
 
using super_t = detail::genset_labelset< genset_t >
 
using self_type = wordset
 
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 >
 
using value_t = word_t
 
using kind_t = labels_are_words
 
- Public Types inherited from vcsn::detail::genset_labelset< GenSet >
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

 wordset (const genset_ptr &gs)
 
 wordset (const genset_t &gs={})
 
std::string vname (bool full=true) const
 
bool open (bool o) const
 Whether unknown letters should be added, or rejected. More...
 
template<typename... Args>
value_t value (Args &&...args) const
 Value constructor. More...
 
word_t word (const value_t &v) const
 Convert to a word. More...
 
bool is_valid (const value_t &v) const
 
value_t conv (std::istream &i) const
 
std::set< value_tconvs (std::istream &i) const
 Read a range of labels. More...
 
std::ostream & print (const value_t &l, std::ostream &o, symbol format=symbol{"text"}) const
 
std::ostream & print_set (std::ostream &o, symbol format=symbol{"text"}) const
 
- Public Member Functions inherited from vcsn::detail::genset_labelset< GenSet >
 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 ()
 
static wordset make (std::istream &is)
 Build from the description in is. More...
 
static constexpr bool is_free ()
 
static word_t letters_of (word_t v)
 Prepare to iterate over the letters of v. More...
 
static bool equals (const value_t l, const value_t r)
 Whether l == r. More...
 
static bool less_than (const value_t l, const value_t r)
 Whether l < r. More...
 
static value_t special ()
 
static bool is_special (const value_t &v)
 
static constexpr bool is_ratexpset ()
 
static constexpr bool has_one ()
 
static constexpr bool is_letterized ()
 
static value_t one ()
 
static bool is_one (const value_t &l) ATTRIBUTE_PURE
 
static size_t size (const value_t &v)
 
static size_t hash (const value_t &v)
 
static value_t conv (self_type, value_t v)
 
static value_t lgcd (const value_t &w1, const value_t &w2)
 The longest common prefix. More...
 
static value_t ldiv (const value_t &w1, const value_t &w2)
 Compute w1 \ w2 = w1^{-1}w2. More...
 
static value_tldiv_here (const value_t &w1, value_t &w2)
 w2 := w1 \ w2. More...
 
- Static Public Member Functions inherited from vcsn::detail::genset_labelset< GenSet >
static std::string sname ()
 

Detailed Description

template<typename GenSet>
class vcsn::wordset< GenSet >

Implementation of labels are words.

Definition at line 24 of file fwd.hh.

Member Typedef Documentation

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

Definition at line 27 of file wordset.hh.

template<typename GenSet >
using vcsn::wordset< GenSet >::genset_t = GenSet

Definition at line 24 of file wordset.hh.

template<typename GenSet >
using vcsn::wordset< GenSet >::kind_t = labels_are_words

Definition at line 35 of file wordset.hh.

template<typename GenSet >
using vcsn::wordset< GenSet >::letter_t = typename genset_t::letter_t

Definition at line 29 of file wordset.hh.

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

Definition at line 31 of file wordset.hh.

template<typename GenSet >
using vcsn::wordset< GenSet >::self_type = wordset

Definition at line 26 of file wordset.hh.

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

Definition at line 25 of file wordset.hh.

template<typename GenSet >
using vcsn::wordset< GenSet >::value_t = word_t

Definition at line 33 of file wordset.hh.

template<typename GenSet >
using vcsn::wordset< GenSet >::word_t = typename genset_t::word_t

Definition at line 30 of file wordset.hh.

Constructor & Destructor Documentation

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

Definition at line 37 of file wordset.hh.

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

Definition at line 41 of file wordset.hh.

Member Function Documentation

template<typename GenSet >
static value_t vcsn::wordset< GenSet >::conv ( self_type  ,
value_t  v 
)
inlinestatic

Definition at line 176 of file wordset.hh.

template<typename GenSet >
value_t vcsn::wordset< GenSet >::conv ( std::istream &  i) const
inline

Definition at line 182 of file wordset.hh.

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

Here is the call graph for this function:

template<typename GenSet >
std::set<value_t> vcsn::wordset< GenSet >::convs ( std::istream &  i) const
inline

Read a range of labels.

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 194 of file wordset.hh.

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

Here is the call graph for this function:

template<typename GenSet >
static bool vcsn::wordset< GenSet >::equals ( const value_t  l,
const value_t  r 
)
inlinestatic

Whether l == r.

Definition at line 102 of file wordset.hh.

template<typename GenSet >
static constexpr bool vcsn::wordset< GenSet >::has_one ( )
inlinestatic

Definition at line 142 of file wordset.hh.

template<typename GenSet >
static size_t vcsn::wordset< GenSet >::hash ( const value_t v)
inlinestatic

Definition at line 170 of file wordset.hh.

References vcsn::hash_value().

Here is the call graph for this function:

template<typename GenSet >
static constexpr bool vcsn::wordset< GenSet >::is_free ( )
inlinestatic

Definition at line 75 of file wordset.hh.

template<typename GenSet >
static constexpr bool vcsn::wordset< GenSet >::is_letterized ( )
inlinestatic

Definition at line 148 of file wordset.hh.

template<typename GenSet >
static bool vcsn::wordset< GenSet >::is_one ( const value_t l)
inlinestatic

Definition at line 160 of file wordset.hh.

template<typename GenSet >
static constexpr bool vcsn::wordset< GenSet >::is_ratexpset ( )
inlinestatic

Definition at line 136 of file wordset.hh.

template<typename GenSet >
static bool vcsn::wordset< GenSet >::is_special ( const value_t v)
inlinestatic

Definition at line 121 of file wordset.hh.

References vcsn::wordset< GenSet >::special().

Here is the call graph for this function:

template<typename GenSet >
bool vcsn::wordset< GenSet >::is_valid ( const value_t v) const
inline

Definition at line 127 of file wordset.hh.

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

Here is the call graph for this function:

template<typename GenSet >
static value_t vcsn::wordset< GenSet >::ldiv ( const value_t w1,
const value_t w2 
)
inlinestatic

Compute w1 \ w2 = w1^{-1}w2.

Precondition: w1 is prefix of w2.

Definition at line 242 of file wordset.hh.

References vcsn::require(), vcsn::wordset< GenSet >::size(), and vcsn::str_escape().

Referenced by vcsn::wordset< GenSet >::ldiv_here().

Here is the call graph for this function:

template<typename GenSet >
static value_t& vcsn::wordset< GenSet >::ldiv_here ( const value_t w1,
value_t w2 
)
inlinestatic

w2 := w1 \ w2.

Definition at line 251 of file wordset.hh.

References vcsn::wordset< GenSet >::ldiv().

Here is the call graph for this function:

template<typename GenSet >
static bool vcsn::wordset< GenSet >::less_than ( const value_t  l,
const value_t  r 
)
inlinestatic

Whether l < r.

Definition at line 108 of file wordset.hh.

template<typename GenSet >
static word_t vcsn::wordset< GenSet >::letters_of ( word_t  v)
inlinestatic

Prepare to iterate over the letters of v.

Definition at line 95 of file wordset.hh.

template<typename GenSet >
static value_t vcsn::wordset< GenSet >::lgcd ( const value_t w1,
const value_t w2 
)
inlinestatic

The longest common prefix.

Definition at line 235 of file wordset.hh.

template<typename GenSet >
static wordset vcsn::wordset< GenSet >::make ( std::istream &  is)
inlinestatic

Build from the description in is.

Definition at line 56 of file wordset.hh.

References vcsn::eat().

Here is the call graph for this function:

template<typename GenSet >
static value_t vcsn::wordset< GenSet >::one ( )
inlinestatic

Definition at line 154 of file wordset.hh.

template<typename GenSet >
bool vcsn::wordset< GenSet >::open ( bool  o) const
inline

Whether unknown letters should be added, or rejected.

Parameters
owhether to accept
Returns
the previous status.

Definition at line 70 of file wordset.hh.

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

Here is the call graph for this function:

template<typename GenSet >
std::ostream& vcsn::wordset< GenSet >::print ( const value_t l,
std::ostream &  o,
symbol  format = symbol{"text"} 
) const
inline

Definition at line 203 of file wordset.hh.

template<typename GenSet >
std::ostream& vcsn::wordset< GenSet >::print_set ( std::ostream &  o,
symbol  format = symbol{"text"} 
) const
inline

Definition at line 220 of file wordset.hh.

template<typename GenSet >
static size_t vcsn::wordset< GenSet >::size ( const value_t v)
inlinestatic

Definition at line 165 of file wordset.hh.

Referenced by vcsn::wordset< GenSet >::ldiv().

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

Definition at line 45 of file wordset.hh.

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

Here is the call graph for this function:

template<typename GenSet >
static value_t vcsn::wordset< GenSet >::special ( )
inlinestatic

Definition at line 115 of file wordset.hh.

Referenced by vcsn::wordset< GenSet >::is_special().

template<typename GenSet >
template<typename... Args>
value_t vcsn::wordset< GenSet >::value ( Args &&...  args) const
inline

Value constructor.

Definition at line 82 of file wordset.hh.

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

Definition at line 50 of file wordset.hh.

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

Here is the call graph for this function:

template<typename GenSet >
word_t vcsn::wordset< GenSet >::word ( const value_t v) const
inline

Convert to a word.

Definition at line 88 of file wordset.hh.


The documentation for this class was generated from the following files: