Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
RewardOperatorFormula.cpp
Go to the documentation of this file.
2#include <boost/any.hpp>
3#include <ostream>
4
8
9namespace storm {
10namespace logic {
11RewardOperatorFormula::RewardOperatorFormula(std::shared_ptr<Formula const> const& subformula, boost::optional<std::string> const& rewardModelName,
12 OperatorInformation const& operatorInformation)
13 : OperatorFormula(subformula, operatorInformation), rewardModelName(rewardModelName) {
14 // Intentionally left empty.
15}
16
18 return true;
19}
20
21boost::any RewardOperatorFormula::accept(FormulaVisitor const& visitor, boost::any const& data) const {
22 return visitor.visit(*this, data);
23}
24
26 return this->rewardModelName.get();
27}
28
30 return static_cast<bool>(rewardModelName);
31}
32
33boost::optional<std::string> const& RewardOperatorFormula::getOptionalRewardModelName() const {
34 return this->rewardModelName;
35}
36
37void RewardOperatorFormula::gatherReferencedRewardModels(std::set<std::string>& referencedRewardModels) const {
38 if (this->hasRewardModelName()) {
39 referencedRewardModels.insert(this->getRewardModelName());
40 } else {
41 referencedRewardModels.insert("");
42 }
43 this->getSubformula().gatherReferencedRewardModels(referencedRewardModels);
44}
45
46std::ostream& RewardOperatorFormula::writeToStream(std::ostream& out, bool /* allowParentheses */) const {
47 // No parentheses necessary
48 out << "R";
49 if (this->hasRewardModelName()) {
50 out << "{\"" << this->getRewardModelName() << "\"}";
51 }
53 return out;
54}
55} // namespace logic
56} // namespace storm
virtual void gatherReferencedRewardModels(std::set< std::string > &referencedRewardModels) const
Definition Formula.cpp:564
virtual boost::any visit(AtomicExpressionFormula const &f, boost::any const &data) const =0
virtual std::ostream & writeToStream(std::ostream &out, bool allowParentheses=false) const override
Writes the forumla to the given output stream.
virtual std::ostream & writeToStream(std::ostream &out, bool allowParentheses=false) const override
Writes the forumla to the given output stream.
virtual bool isRewardOperatorFormula() const override
virtual boost::any accept(FormulaVisitor const &visitor, boost::any const &data) const override
boost::optional< std::string > const & getOptionalRewardModelName() const
Retrieves the optional representing the reward model name this property refers to.
RewardOperatorFormula(std::shared_ptr< Formula const > const &subformula, boost::optional< std::string > const &rewardModelName=boost::none, OperatorInformation const &operatorInformation=OperatorInformation())
virtual void gatherReferencedRewardModels(std::set< std::string > &referencedRewardModels) const override
std::string const & getRewardModelName() const
Retrieves the name of the reward model this property refers to (if any).
bool hasRewardModelName() const
Retrieves whether the reward model refers to a specific reward model.
Formula const & getSubformula() const
LabParser.cpp.
Definition cli.cpp:18