Vcsn
2.1
Be Rational
|
A set of letters of type L. More...
#include <setalpha.hh>
Classes | |
struct | has_range |
Whether the genset supports the range concept: whether we can use '++' on letters. More... | |
struct | has_range< Letter, decltype((++std::declval< Letter & >(), void()))> |
Public Types | |
using | letter_t = typename L::letter_t |
using | word_t = typename L::word_t |
using | letters_t = std::set< letter_t, vcsn::less< L, letter_t >> |
using | value_type = letter_t |
The type of our values, when seen as a container. More... | |
using | iterator = typename letters_t::const_iterator |
using | const_iterator = typename letters_t::const_iterator |
Public Member Functions | |
set_alphabet ()=default | |
set_alphabet (const set_alphabet &)=default | |
set_alphabet (const std::initializer_list< letter_t > &l) | |
set_alphabet (const letters_t &l) | |
bool | open (bool o) const |
Whether unknown letters should be added, or rejected. More... | |
set_alphabet & | add_letter (letter_t l) |
Modify this by adding l, and return *this. More... | |
auto | add_range (letter_t l1, letter_t l2) -> set_alphabet & |
Add a range of letters, if it is accepted by the labelset. More... | |
template<typename Letter > | |
auto | add_range_ (Letter l1, Letter l2) -> enable_if_t< has_range< Letter > |
set_alphabet & | if (L::equal(l1, l2)) add_letter(l1) |
template<typename Letter > | |
auto | add_range_ (Letter, Letter) -> enable_if_t<!has_range< Letter > |
set_alphabet &bool | has (letter_t l) const |
Whether l is a letter. More... | |
word_t | get_word (std::istream &i) const |
Extract and return the next word from i. More... | |
const_iterator | begin () const |
const_iterator | end () const |
const_iterator | cbegin () const |
const_iterator | cend () const |
const_iterator | find (letter_t l) const |
std::ostream & | print_set (std::ostream &o, format fmt={}) const |
Static Public Member Functions | |
static symbol | sname () |
static set_alphabet | make (std::istream &is) |
Public Attributes | |
return * | this |
Private Attributes | |
letters_t | alphabet_ |
bool | open_ = false |
Friends | |
set_alphabet | intersection (const set_alphabet &lhs, const set_alphabet &rhs) |
Compute the intersection with another alphabet. More... | |
set_alphabet | get_union (const set_alphabet &lhs, const set_alphabet &rhs) |
Compute the union with another alphabet. More... | |
A set of letters of type L.
L is not simply char
or so. Rather, see char_letters.
Definition at line 22 of file setalpha.hh.
using vcsn::set_alphabet< L >::const_iterator = typename letters_t::const_iterator |
Definition at line 226 of file setalpha.hh.
using vcsn::set_alphabet< L >::iterator = typename letters_t::const_iterator |
Definition at line 225 of file setalpha.hh.
using vcsn::set_alphabet< L >::letter_t = typename L::letter_t |
Definition at line 25 of file setalpha.hh.
using vcsn::set_alphabet< L >::letters_t = std::set<letter_t, vcsn::less<L, letter_t>> |
Definition at line 27 of file setalpha.hh.
using vcsn::set_alphabet< L >::value_type = letter_t |
The type of our values, when seen as a container.
Definition at line 29 of file setalpha.hh.
using vcsn::set_alphabet< L >::word_t = typename L::word_t |
Definition at line 26 of file setalpha.hh.
|
default |
|
default |
|
inline |
Definition at line 102 of file setalpha.hh.
|
inline |
Definition at line 106 of file setalpha.hh.
|
inline |
Modify this by adding l, and return *this.
Definition at line 121 of file setalpha.hh.
References vcsn::set_alphabet< L >::alphabet_, and vcsn::require().
Referenced by vcsn::set_alphabet< L >::has(), and vcsn::set_alphabet< L >::make().
|
inline |
Add a range of letters, if it is accepted by the labelset.
Definition at line 141 of file setalpha.hh.
Referenced by vcsn::set_alphabet< L >::make().
|
inline |
Definition at line 148 of file setalpha.hh.
|
inline |
Definition at line 162 of file setalpha.hh.
|
inline |
Definition at line 228 of file setalpha.hh.
References vcsn::set_alphabet< L >::alphabet_.
|
inline |
Definition at line 238 of file setalpha.hh.
References vcsn::set_alphabet< L >::alphabet_.
|
inline |
Definition at line 243 of file setalpha.hh.
References vcsn::set_alphabet< L >::alphabet_.
|
inline |
Definition at line 233 of file setalpha.hh.
References vcsn::set_alphabet< L >::alphabet_.
|
inline |
Definition at line 248 of file setalpha.hh.
References vcsn::set_alphabet< L >::alphabet_.
|
inline |
Extract and return the next word from i.
Definition at line 184 of file setalpha.hh.
References vcsn::set_alphabet< L >::has(), vcsn::require(), and vcsn::str_escape().
|
inline |
Whether l is a letter.
Definition at line 170 of file setalpha.hh.
References vcsn::set_alphabet< L >::add_letter(), vcsn::set_alphabet< L >::alphabet_, vcsn::has(), and vcsn::set_alphabet< L >::open_.
Referenced by vcsn::set_alphabet< L >::get_word().
set_alphabet& vcsn::set_alphabet< L >::if | ( | L:: | equall1, l2 | ) |
|
inlinestatic |
Definition at line 37 of file setalpha.hh.
References vcsn::set_alphabet< L >::add_letter(), vcsn::set_alphabet< L >::add_range(), vcsn::eat(), vcsn::set_alphabet< L >::open_, and vcsn::set_alphabet< L >::sname().
|
inline |
Whether unknown letters should be added, or rejected.
o | whether to accept |
Definition at line 113 of file setalpha.hh.
References vcsn::set_alphabet< L >::open_.
|
inline |
Definition at line 254 of file setalpha.hh.
|
inlinestatic |
Definition at line 31 of file setalpha.hh.
References vcsn::sname().
Referenced by vcsn::set_alphabet< L >::make().
|
friend |
Compute the union with another alphabet.
Definition at line 298 of file setalpha.hh.
|
friend |
Compute the intersection with another alphabet.
Definition at line 291 of file setalpha.hh.
|
mutableprivate |
Definition at line 305 of file setalpha.hh.
Referenced by vcsn::set_alphabet< L >::add_letter(), vcsn::set_alphabet< L >::begin(), vcsn::set_alphabet< L >::cbegin(), vcsn::set_alphabet< L >::cend(), vcsn::set_alphabet< L >::end(), vcsn::set_alphabet< L >::find(), and vcsn::set_alphabet< L >::has().
|
mutableprivate |
Definition at line 306 of file setalpha.hh.
Referenced by vcsn::set_alphabet< L >::has(), vcsn::set_alphabet< L >::make(), and vcsn::set_alphabet< L >::open().
return* vcsn::set_alphabet< L >::this |
Definition at line 158 of file setalpha.hh.