33 lines
1.5 KiB
33 lines
1.5 KiB
#ifndef STORM_STORAGE_EXPRESSIONS_INTEGERCONSTANTEXPRESSION_H_
|
|
#define STORM_STORAGE_EXPRESSIONS_INTEGERCONSTANTEXPRESSION_H_
|
|
|
|
#include "src/storage/expressions/ConstantExpression.h"
|
|
|
|
namespace storm {
|
|
namespace expressions {
|
|
class IntegerConstantExpression : public ConstantExpression {
|
|
public:
|
|
/*!
|
|
* Creates an integer constant expression with the given constant name.
|
|
*
|
|
* @param constantName The name of the integer constant associated with this expression.
|
|
*/
|
|
IntegerConstantExpression(std::string const& constantName);
|
|
|
|
// Instantiate constructors and assignments with their default implementations.
|
|
IntegerConstantExpression(IntegerConstantExpression const& other) = default;
|
|
IntegerConstantExpression& operator=(IntegerConstantExpression const& other) = default;
|
|
IntegerConstantExpression(IntegerConstantExpression&&) = default;
|
|
IntegerConstantExpression& operator=(IntegerConstantExpression&&) = default;
|
|
virtual ~IntegerConstantExpression() = default;
|
|
|
|
// Override base class methods.
|
|
virtual int_fast64_t evaluateAsInteger(Valuation const& valuation) const;
|
|
virtual double evaluateAsDouble(Valuation const& valuation) const;
|
|
virtual std::unique_ptr<BaseExpression> clone() const;
|
|
virtual void accept(ExpressionVisitor* visitor) const;
|
|
};
|
|
}
|
|
}
|
|
|
|
#endif /* STORM_STORAGE_EXPRESSIONS_INTEGERCONSTANTEXPRESSION_H_ */
|