Preliminirary support for generic acceptance.
* src/tgba/acc.hh: Add creation and printing of generic acceptance code. * src/tgba/acc.cc: New file. * src/tgba/Makefile.am: Add it. * src/tgbatest/acc.cc: More tests. * src/tgbatest/acc.test: Update. * src/tgba/tgba.hh (set_acceptance, get_acceptance): New methods. * src/tgba/tgbagraph.hh: Store acceptance code. * src/hoaparse/hoaparse.yy: Read any acceptance. * src/dstarparse/nsa2tgba.cc, src/ta/taexplicit.cc, src/tgba/tgbaproduct.cc, src/tgba/tgbasafracomplement.cc, src/tgbaalgos/degen.cc, src/tgbaalgos/hoa.cc, src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/product.cc, src/tgbaalgos/stutter.cc, src/tgbatest/hoaparse.test: Adjust.
This commit is contained in:
parent
c61f053e2d
commit
fd1f6c4d61
19 changed files with 778 additions and 176 deletions
|
|
@ -1,5 +1,5 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2012, 2013, 2014 Laboratoire de Recherche et
|
||||
// Copyright (C) 2012, 2013, 2014, 2015 Laboratoire de Recherche et
|
||||
// Développement de l'Epita.
|
||||
//
|
||||
// This file is part of Spot, a model checking library.
|
||||
|
|
@ -128,13 +128,12 @@ namespace spot
|
|||
|
||||
public:
|
||||
unsigned
|
||||
next_level(const acc_cond& acc, int slevel,
|
||||
acc_cond::mark_t set, bool skip_levels)
|
||||
next_level(int slevel, acc_cond::mark_t set, bool skip_levels)
|
||||
{
|
||||
// Update the order with any new set we discover
|
||||
if (auto newsets = set - found_)
|
||||
{
|
||||
acc.fill_from(newsets, std::back_inserter(order_));
|
||||
newsets.fill(std::back_inserter(order_));
|
||||
found_ |= newsets;
|
||||
}
|
||||
|
||||
|
|
@ -161,20 +160,19 @@ namespace spot
|
|||
// Accepting order for each SCC
|
||||
class scc_orders
|
||||
{
|
||||
const acc_cond& acc_;
|
||||
std::map<int, acc_order> orders_;
|
||||
bool skip_levels_;
|
||||
|
||||
public:
|
||||
scc_orders(const acc_cond& acc, bool skip_levels):
|
||||
acc_(acc), skip_levels_(skip_levels)
|
||||
scc_orders(bool skip_levels):
|
||||
skip_levels_(skip_levels)
|
||||
{
|
||||
}
|
||||
|
||||
unsigned
|
||||
next_level(int scc, int slevel, acc_cond::mark_t set)
|
||||
{
|
||||
return orders_[scc].next_level(acc_, slevel, set, skip_levels_);
|
||||
return orders_[scc].next_level(slevel, set, skip_levels_);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -226,7 +224,7 @@ namespace spot
|
|||
}
|
||||
|
||||
// Initialize scc_orders
|
||||
scc_orders orders(a->acc(), skip_levels);
|
||||
scc_orders orders(skip_levels);
|
||||
|
||||
// and vice-versa.
|
||||
ds2num_map ds2num;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue