14 BaseExpression const& otherBaseExpression = boost::any_cast<std::reference_wrapper<BaseExpression const>>(data).get();
15 auto const rhs = std::dynamic_pointer_cast<storm::expressions::ValueArrayExpression const>(otherBaseExpression.
getSharedPointer());
18 STORM_LOG_ASSERT(!rhs->size()->containsVariables(),
"non-const size of value array expr");
19 auto lhsSize = expression.
size()->evaluateAsInt();
20 auto rhsSize = rhs->size()->evaluateAsInt();
21 if (lhsSize != rhsSize) {
24 for (int64_t i = 0; i < lhsSize; ++i) {
25 if (!boost::any_cast<bool>(expression.
at(i)->accept(*
this, std::ref(*rhs->at(i))))) {
36 BaseExpression const& otherBaseExpression = boost::any_cast<std::reference_wrapper<BaseExpression const>>(data).get();
37 auto const rhs = std::dynamic_pointer_cast<storm::expressions::ConstructorArrayExpression const>(otherBaseExpression.
getSharedPointer());
39 return boost::any_cast<bool>(expression.
size()->accept(*
this, std::ref(*rhs->size()))) &&
40 boost::any_cast<bool>(expression.
getElementExpression()->accept(*
this, std::ref(*rhs->getElementExpression()))) &&
48 BaseExpression const& otherBaseExpression = boost::any_cast<std::reference_wrapper<BaseExpression const>>(data).get();
49 auto const rhs = std::dynamic_pointer_cast<storm::expressions::ArrayAccessExpression const>(otherBaseExpression.
getSharedPointer());
51 return boost::any_cast<bool>(expression.
getFirstOperand()->accept(*
this, std::ref(*rhs->getFirstOperand()))) &&
52 boost::any_cast<bool>(expression.
getSecondOperand()->accept(*
this, std::ref(*rhs->getSecondOperand())));
59 BaseExpression const& otherBaseExpression = boost::any_cast<std::reference_wrapper<BaseExpression const>>(data).get();
60 auto const rhs = std::dynamic_pointer_cast<storm::expressions::FunctionCallExpression const>(otherBaseExpression.
getSharedPointer());
66 if (!boost::any_cast<bool>(expression.
getArgument(i)->accept(*
this, std::ref(*rhs->getArgument(i))))) {
77 BaseExpression const& otherBaseExpression = boost::any_cast<std::reference_wrapper<BaseExpression const>>(data).get();
78 auto const rhs = std::dynamic_pointer_cast<storm::expressions::TranscendentalNumberLiteralExpression const>(otherBaseExpression.
getSharedPointer());
Represents an access to an array.
The base class of all expression classes.
std::shared_ptr< BaseExpression const > getSharedPointer() const
Retrieves a shared pointer to this expression.
std::shared_ptr< BaseExpression const > const & getSecondOperand() const
Retrieves the second operand of the expression.
std::shared_ptr< BaseExpression const > const & getFirstOperand() const
Retrieves the first operand of the expression.
Represents an array of the given size, where the i'th entry is determined by the elementExpression,...
virtual std::shared_ptr< BaseExpression const > size() const override
std::shared_ptr< BaseExpression const > const & getElementExpression() const
storm::expressions::Variable const & getIndexVar() const
Represents an array with a given list of elements.
uint64_t getNumberOfArguments() const
std::shared_ptr< BaseExpression const > getArgument(uint64_t i) const
std::string const & getFunctionIdentifier() const
virtual boost::any visit(ValueArrayExpression const &expression, boost::any const &data) override
JaniSyntacticalEqualityCheckVisitor()
Creates a visitor that checks if the given expressions are syntactically equal.
TranscendentalNumber const & getTranscendentalNumber() const
Getter for the constant value stored by the object.
Represents an array with a given list of elements.
virtual std::shared_ptr< BaseExpression const > size() const override
virtual std::shared_ptr< BaseExpression const > at(uint64_t i) const override
#define STORM_LOG_ASSERT(cond, message)