Storm
A Modern Probabilistic Model Checker
Loading...
Searching...
No Matches
ExpressionVisitor.h
Go to the documentation of this file.
1#ifndef STORM_STORAGE_EXPRESSIONS_EXPRESSIONVISITOR_H_
2#define STORM_STORAGE_EXPRESSIONS_EXPRESSIONVISITOR_H_
3
4#include <boost/any.hpp>
5#include <boost/none.hpp>
6
7namespace storm {
8namespace expressions {
9// Forward-declare all expression classes.
10class IfThenElseExpression;
11class BinaryBooleanFunctionExpression;
12class BinaryNumericalFunctionExpression;
13class BinaryRelationExpression;
14class VariableExpression;
15class UnaryBooleanFunctionExpression;
16class UnaryNumericalFunctionExpression;
17class BooleanLiteralExpression;
18class IntegerLiteralExpression;
19class RationalLiteralExpression;
20class PredicateExpression;
21
23 public:
24 virtual ~ExpressionVisitor() = default;
25
26 virtual boost::any visit(IfThenElseExpression const& expression, boost::any const& data) = 0;
27 virtual boost::any visit(BinaryBooleanFunctionExpression const& expression, boost::any const& data) = 0;
28 virtual boost::any visit(BinaryNumericalFunctionExpression const& expression, boost::any const& data) = 0;
29 virtual boost::any visit(BinaryRelationExpression const& expression, boost::any const& data) = 0;
30 virtual boost::any visit(VariableExpression const& expression, boost::any const& data) = 0;
31 virtual boost::any visit(UnaryBooleanFunctionExpression const& expression, boost::any const& data) = 0;
32 virtual boost::any visit(UnaryNumericalFunctionExpression const& expression, boost::any const& data) = 0;
33 virtual boost::any visit(BooleanLiteralExpression const& expression, boost::any const& data) = 0;
34 virtual boost::any visit(IntegerLiteralExpression const& expression, boost::any const& data) = 0;
35 virtual boost::any visit(RationalLiteralExpression const& expression, boost::any const& data) = 0;
36 virtual boost::any visit(PredicateExpression const& expression, boost::any const& data);
37};
38} // namespace expressions
39} // namespace storm
40
41#endif /* STORM_STORAGE_EXPRESSIONS_EXPRESSIONVISITOR_H_ */
virtual boost::any visit(VariableExpression const &expression, boost::any const &data)=0
virtual boost::any visit(BinaryNumericalFunctionExpression const &expression, boost::any const &data)=0
virtual boost::any visit(UnaryBooleanFunctionExpression const &expression, boost::any const &data)=0
virtual boost::any visit(RationalLiteralExpression const &expression, boost::any const &data)=0
virtual boost::any visit(IfThenElseExpression const &expression, boost::any const &data)=0
virtual boost::any visit(UnaryNumericalFunctionExpression const &expression, boost::any const &data)=0
virtual boost::any visit(BinaryBooleanFunctionExpression const &expression, boost::any const &data)=0
virtual boost::any visit(BinaryRelationExpression const &expression, boost::any const &data)=0
virtual boost::any visit(BooleanLiteralExpression const &expression, boost::any const &data)=0
virtual boost::any visit(IntegerLiteralExpression const &expression, boost::any const &data)=0
The base class of all binary expressions.
LabParser.cpp.
Definition cli.cpp:18