2#include <boost/any.hpp>
15 boost::any result = f.
accept(*
this, std::ref(manager));
16 return boost::any_cast<storm::expressions::Expression>(result);
25 "Cannot assemble expression, because the undefined atomic label '" << f.
getLabel() <<
"' appears in the formula.");
32 case BinaryBooleanStateFormula::OperatorType::And:
35 case BinaryBooleanStateFormula::OperatorType::Or:
43 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
49 result = boost::any_cast<std::reference_wrapper<storm::expressions::ExpressionManager const>>(data).get().boolean(
true);
51 result = boost::any_cast<std::reference_wrapper<storm::expressions::ExpressionManager const>>(data).get().boolean(
false);
57 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
61 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
65 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
69 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
73 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
77 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
81 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
85 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
89 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
93 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
97 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
101 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
105 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
109 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
113 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
117 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
123 case UnaryBooleanStateFormula::OperatorType::Not:
124 return !subexpression;
131 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
135 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
139 STORM_LOG_THROW(
false, storm::exceptions::InvalidOperationException,
"Cannot assemble expression from formula that contains illegal elements.");
This class is responsible for managing a set of typed variables and all expressions using these varia...
virtual boost::any visit(AtomicExpressionFormula const &f, boost::any const &data) const override
storm::expressions::Expression toExpression(Formula const &f, storm::expressions::ExpressionManager const &manager) const
#define STORM_LOG_THROW(cond, exception, message)