1 #ifndef VCSN_LABELSET_ONESET_HH
2 # define VCSN_LABELSET_ONESET_HH
33 static std::string
vname(
bool =
true)
65 template <
typename... Args>
68 return value_t{std::forward<Args>(args)...};
102 static constexpr
bool
108 static constexpr
bool
140 const std::string& =
"text")
163 if (i.peek() ==
'\\')
168 "invalid label: unexpected \\", c);
174 static std::set<value_t>
convs(std::istream&)
176 raise(
"oneset: ranges not implemented");
182 if (format ==
"latex")
184 else if (format ==
"text")
187 raise(
"invalid format: ", format);
240 #endif // !VCSN_LABELSET_ONESET_HH
std::ostream & print_set(std::ostream &o, symbol format=symbol{"text"}) const
static bool equals(const value_t, const value_t)
Whether l == r.
static type value(oneset)
static constexpr bool is_special(value_t)
The special label is indistinguishable for the others.
static bool is_letter(empty_t)
static value_t conv(self_type, value_t v)
static std::ostream & print(empty_t, std::ostream &o, const std::string &="text")
static type value(oneset)
boost::flyweight< std::string, boost::flyweights::no_tracking > symbol
An internalized string.
static constexpr bool has_one()
static void make(std::istream &is)
Implementation of labels are ones: there is a single instance of label.
std::size_t hash_value(const T &v)
static std::string sname()
static oneset make(std::istream &is)
Build from the description in is.
static empty_t concat(empty_t, empty_t)
static empty_t transpose(empty_t)
static std::string vname(bool=true)
static type join(const oneset &, const oneset &)
static constexpr bool is_ratexpset()
auto meet(const ratexpset< Ctx1 > &a, const ratexpset< Ctx2 > &b) -> ratexpset< meet_t< Ctx1, Ctx2 >>
The meet of two ratexpsets.
static bool is_one(empty_t)
static size_t hash(value_t v)
std::istringstream is
The input stream: the specification to translate.
bool open(bool o) const
Does not make a lot of sense.
static bool less_than(const value_t, const value_t)
Whether l < r.
A structure that implements the computation of join(V1, V2).
static std::set< value_t > convs(std::istream &)
static constexpr bool is_letterized()
value_t value(Args &&...args) const
Value constructor.
static value_t conv(std::istream &i)
static size_t size(value_t)
The smallest nullableset which includes LabelSet.
static constexpr bool is_free()
void require(bool b, Args &&...args)
If b is not verified, raise an error with args as message.