spot/src/bin/common_r.cc
Alexandre Duret-Lutz b6b6582b05 bin: Fix handling of LTL simplification options.
Enable LTL simplifications by default for ltl2tgba & ltl2tgta, and make
sure the ltl_simplifier_options are all false initially.  Before this
patch --low/-r1 had the same effect as --medium/-r2 with respect to LTL
simplification.

* src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc (simplification_level): Set
to 3 by default.
* src/bin/common_r.cc: Disable all ltl_simplifier options initially.
2013-03-02 15:36:26 +01:00

63 lines
1.7 KiB
C++

// -*- coding: utf-8 -*-
// Copyright (C) 2012, 2013 Laboratoire de Recherche et Développement
// de l'Epita (LRDE).
//
// This file is part of Spot, a model checking library.
//
// Spot is free software; you can redistribute it and/or modify it
// under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 3 of the License, or
// (at your option) any later version.
//
// Spot is distributed in the hope that it will be useful, but WITHOUT
// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
// License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "common_sys.hh"
#include "error.h"
#include "common_r.hh"
int simplification_level = 0;
void
parse_r(const char* arg)
{
if (!arg)
{
simplification_level = 3;
return;
}
if (arg[1] == 0 && arg[0] >= '0' && arg[0] <= '3')
{
simplification_level = arg[0] - '0';
return;
}
error(2, 0, "invalid simplification level '%s'", arg);
}
spot::ltl::ltl_simplifier_options
simplifier_options()
{
spot::ltl::ltl_simplifier_options options(false, false, false);
switch (simplification_level)
{
case 3:
options.containment_checks = true;
options.containment_checks_stronger = true;
// fall through
case 2:
options.synt_impl = true;
// fall through
case 1:
options.reduce_basics = true;
options.event_univ = true;
// fall through
default:
break;
}
return options;
}