#ifndef STORM_LOGIC_OPERATORFORMULA_H_ #define STORM_LOGIC_OPERATORFORMULA_H_ #include <boost/optional.hpp> #include "src/logic/UnaryStateFormula.h" #include "src/logic/OptimalityType.h" #include "src/logic/ComparisonType.h" namespace storm { namespace logic { class OperatorFormula : public UnaryStateFormula { public: OperatorFormula(boost::optional<OptimalityType> optimalityType, boost::optional<ComparisonType> comparisonType, boost::optional<double> bound, std::shared_ptr<Formula const> const& subformula); virtual ~OperatorFormula() { // Intentionally left empty. } bool hasBound() const; ComparisonType const& getComparisonType() const; double getBound() const; bool hasOptimalityType() const; OptimalityType const& getOptimalityType() const; virtual std::ostream& writeToStream(std::ostream& out) const override; private: std::string operatorSymbol; boost::optional<ComparisonType> comparisonType; boost::optional<double> bound; boost::optional<OptimalityType> optimalityType; }; } } #endif /* STORM_LOGIC_OPERATORFORMULA_H_ */