12#ifndef MCRL2_PBES_ABSINTHE_STRATEGY_H
13#define MCRL2_PBES_ABSINTHE_STRATEGY_H
15#include "mcrl2/utilities/exception.h"
18namespace mcrl2::pbes_system {
31 if (strategy ==
"over")
35 else if (strategy ==
"under")
41 throw mcrl2::
runtime_error(
"unknown approximation strategy specified (got `" + strategy +
"')");
56 throw mcrl2::runtime_error(
"unknown absinthe strategy");
66 strategy = parse_absinthe_strategy(s);
70 is.setstate(
std::ios_base::failbit);
78 os << print_absinthe_strategy(strategy);
89 return "an over-approximation";
91 return "an under-approximation";
93 throw mcrl2::runtime_error(
"unknown absinthe strategy");
Standard exception class for reporting runtime errors.
std::string description(const absinthe_strategy strategy)
Prints an absinthe strategy.
std::istream & operator>>(std::istream &is, absinthe_strategy &strategy)
std::string print_absinthe_strategy(const absinthe_strategy strategy)
Prints an absinthe strategy.
absinthe_strategy parse_absinthe_strategy(const std::string &strategy)
Parses an absinthe strategy.
absinthe_strategy
The approximation strategies of the absinthe tool.
std::size_t operator()(const std::vector< X > &v) const