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_ */