acc: more helper functions
* src/tgba/acc.hh: Make it possible to call acc_cond::mark_t({1,2,3}),
and acc_code::fin({1,2,3}).
This commit is contained in:
parent
39b92a6dea
commit
c65bf731fd
1 changed files with 34 additions and 4 deletions
|
|
@ -43,6 +43,19 @@ namespace spot
|
|||
{
|
||||
}
|
||||
|
||||
template<class iterator>
|
||||
mark_t(const iterator& begin, const iterator& end)
|
||||
{
|
||||
id = 0U;
|
||||
for (iterator i = begin; i != end; ++i)
|
||||
set(*i);
|
||||
}
|
||||
|
||||
mark_t(std::initializer_list<unsigned> vals)
|
||||
: mark_t(vals.begin(), vals.end())
|
||||
{
|
||||
}
|
||||
|
||||
bool operator==(unsigned o) const
|
||||
{
|
||||
assert(o == 0U);
|
||||
|
|
@ -368,6 +381,11 @@ namespace spot
|
|||
return res;
|
||||
}
|
||||
|
||||
static acc_code fin(std::initializer_list<unsigned> vals)
|
||||
{
|
||||
return fin(mark_t(vals));
|
||||
}
|
||||
|
||||
static acc_code fin_neg(mark_t m)
|
||||
{
|
||||
acc_code res;
|
||||
|
|
@ -378,6 +396,11 @@ namespace spot
|
|||
return res;
|
||||
}
|
||||
|
||||
static acc_code fin_neg(std::initializer_list<unsigned> vals)
|
||||
{
|
||||
return fin_neg(mark_t(vals));
|
||||
}
|
||||
|
||||
static acc_code inf(mark_t m)
|
||||
{
|
||||
acc_code res;
|
||||
|
|
@ -388,6 +411,11 @@ namespace spot
|
|||
return res;
|
||||
}
|
||||
|
||||
static acc_code inf(std::initializer_list<unsigned> vals)
|
||||
{
|
||||
return inf(mark_t(vals));
|
||||
}
|
||||
|
||||
static acc_code inf_neg(mark_t m)
|
||||
{
|
||||
acc_code res;
|
||||
|
|
@ -398,6 +426,11 @@ namespace spot
|
|||
return res;
|
||||
}
|
||||
|
||||
static acc_code inf_neg(std::initializer_list<unsigned> vals)
|
||||
{
|
||||
return inf_neg(mark_t(vals));
|
||||
}
|
||||
|
||||
void append_and(acc_code&& r)
|
||||
{
|
||||
if (is_true() || r.is_false())
|
||||
|
|
@ -809,10 +842,7 @@ namespace spot
|
|||
template<class iterator>
|
||||
mark_t marks(const iterator& begin, const iterator& end) const
|
||||
{
|
||||
mark_t::value_t res = 0U;
|
||||
for (iterator i = begin; i != end; ++i)
|
||||
res |= mark_(*i);
|
||||
return res;
|
||||
return mark_t(begin, end);
|
||||
}
|
||||
|
||||
mark_t marks(std::initializer_list<unsigned> vals) const
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue