Storm
A Modern Probabilistic Model Checker
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
UnaryBooleanStateFormula.cpp
Go to the documentation of this file.
2#include <boost/any.hpp>
3#include <ostream>
4
6
9
10namespace storm {
11namespace logic {
12UnaryBooleanStateFormula::UnaryBooleanStateFormula(OperatorType operatorType, std::shared_ptr<Formula const> const& subformula)
13 : UnaryStateFormula(subformula), operatorType(operatorType) {
14 STORM_LOG_THROW(this->getSubformula().hasQualitativeResult(), storm::exceptions::InvalidPropertyException,
15 "Boolean formula must have subformulas with qualitative result.");
16}
17
21
22boost::any UnaryBooleanStateFormula::accept(FormulaVisitor const& visitor, boost::any const& data) const {
23 return visitor.visit(*this, data);
24}
25
29
31 return this->getOperator() == OperatorType::Not;
32}
33
34std::ostream& UnaryBooleanStateFormula::writeToStream(std::ostream& out, bool allowParentheses) const {
35 if (allowParentheses) {
36 out << "(";
37 }
38 switch (operatorType) {
39 case OperatorType::Not:
40 out << "!";
41 break;
42 }
44 if (allowParentheses) {
45 out << ")";
46 }
47 return out;
48}
49} // namespace logic
50} // namespace storm
virtual std::ostream & writeToStream(std::ostream &out, bool allowParentheses=false) const =0
Writes the forumla to the given output stream.
bool isUnaryFormula() const
Definition Formula.cpp:184
virtual bool hasQualitativeResult() const
Definition Formula.cpp:188
virtual boost::any visit(AtomicExpressionFormula const &f, boost::any const &data) const =0
virtual boost::any accept(FormulaVisitor const &visitor, boost::any const &data) const override
virtual std::ostream & writeToStream(std::ostream &out, bool allowParentheses=false) const override
Writes the forumla to the given output stream.
UnaryBooleanStateFormula(OperatorType operatorType, std::shared_ptr< Formula const > const &subformula)
virtual bool isUnaryBooleanStateFormula() const override
Formula const & getSubformula() const
#define STORM_LOG_THROW(cond, exception, message)
Definition macros.h:30
LabParser.cpp.
Definition cli.cpp:18