Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ToRationalNumberVisitor.h
Go to the documentation of this file.
1#pragma once
2
3#include <unordered_map>
4
5#include <boost/optional.hpp>
6
8
14
15namespace storm {
16namespace expressions {
17
18template<typename RationalNumberType>
20 public:
23
24 RationalNumberType toRationalNumber(Expression const& expression);
25
26 virtual boost::any visit(IfThenElseExpression const& expression, boost::any const& data) override;
27 virtual boost::any visit(BinaryBooleanFunctionExpression const& expression, boost::any const& data) override;
28 virtual boost::any visit(BinaryNumericalFunctionExpression const& expression, boost::any const& data) override;
29 virtual boost::any visit(BinaryRelationExpression const& expression, boost::any const& data) override;
30 virtual boost::any visit(VariableExpression const& expression, boost::any const& data) override;
31 virtual boost::any visit(UnaryBooleanFunctionExpression const& expression, boost::any const& data) override;
32 virtual boost::any visit(UnaryNumericalFunctionExpression const& expression, boost::any const& data) override;
33 virtual boost::any visit(BooleanLiteralExpression const& expression, boost::any const& data) override;
34 virtual boost::any visit(IntegerLiteralExpression const& expression, boost::any const& data) override;
35 virtual boost::any visit(RationalLiteralExpression const& expression, boost::any const& data) override;
36
37 void setMapping(storm::expressions::Variable const& variable, RationalNumberType const& value);
38
39 private:
40 std::unordered_map<storm::expressions::Variable, RationalNumberType> valueMapping;
41
42 // An optional reference to an expression evaluator (mainly for resolving the boolean condition in IfThenElse expressions)
43 boost::optional<ExpressionEvaluatorBase<RationalNumberType> const&> evaluator;
44};
45} // namespace expressions
46} // namespace storm
RationalNumberType toRationalNumber(Expression const &expression)
void setMapping(storm::expressions::Variable const &variable, RationalNumberType const &value)
virtual boost::any visit(IfThenElseExpression const &expression, boost::any const &data) override
LabParser.cpp.
Definition cli.cpp:18