26 lines
882 B
26 lines
882 B
#ifndef STORM_STORAGE_EXPRESSIONS_BASEEXPRESSION_H_
|
|
#define STORM_STORAGE_EXPRESSIONS_BASEEXPRESSION_H_
|
|
|
|
#include "src/storage/expressions/Valuation.h"
|
|
|
|
namespace storm {
|
|
namespace expressions {
|
|
class BaseExpression {
|
|
public:
|
|
/*!
|
|
* Each node in an expression tree has a uniquely defined type from this enum.
|
|
*/
|
|
enum ReturnType {undefined, bool_, int_, double_};
|
|
|
|
std::unique_ptr<BaseExpression> substitute() const = 0;
|
|
|
|
virtual int_fast64_t evaluateAsInt(Evaluation const& evaluation) const = 0;
|
|
|
|
virtual bool evaluateAsBool(Evaluation const& evaluation) const = 0;
|
|
|
|
virtual double evaluateAsDouble(Evaluation const& evaluation) const = 0;
|
|
};
|
|
}
|
|
}
|
|
|
|
#endif /* STORM_STORAGE_EXPRESSIONS_BASEEXPRESSION_H_ */
|