1#ifndef STORM_STORAGE_EXPRESSIONS_EXPRESSIONVISITOR_H_
2#define STORM_STORAGE_EXPRESSIONS_EXPRESSIONVISITOR_H_
4#include <boost/any.hpp>
5#include <boost/none.hpp>
10class IfThenElseExpression;
11class BinaryBooleanFunctionExpression;
12class BinaryNumericalFunctionExpression;
13class BinaryRelationExpression;
14class VariableExpression;
15class UnaryBooleanFunctionExpression;
16class UnaryNumericalFunctionExpression;
17class BooleanLiteralExpression;
18class IntegerLiteralExpression;
19class RationalLiteralExpression;
20class PredicateExpression;
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 ~ExpressionVisitor()=default
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.