12#ifndef MCRL2_DATA_ADD_BINDING_H
13#define MCRL2_DATA_ADD_BINDING_H
32template <
template <
class>
class Builder,
class Derived>
141template <
template <
class>
class Builder,
class Derived>
155 static_cast<Derived&
>(*this).enter(x);
156 static_cast<Derived&
>(*this).apply(x.
body());
157 static_cast<Derived&
>(*this).leave(x);
162template <
template <
class>
class Builder,
class Derived>
178 static_cast<Derived&
>(*this).enter(x);
180 [&](data_expression& r){
static_cast<Derived&
>(*this).apply(r, x.
body()); },
182 static_cast<Derived&
>(*this).leave(x);
add your file description here.
Traverser that defines functions for maintaining bound variables.
const std::multiset< variable_type > & bound_variables() const
Returns the bound variables.
void decrease_bind_count(const variable_type &var)
Remove a variable from the multiset of bound variables.
void increase_bind_count(const variable_type &var)
Add a variable to the multiset of bound variables.
const variable_list & variables() const
\brief Assignment of a data expression to a variable
const variable & lhs() const
universal quantification.
const variable_list & variables() const
existential quantification.
universal quantification.
universal quantification.
universal quantification.
\brief A where expression
const assignment_list & assignments() const
const data_expression & body() const
const assignment_expression_list & declarations() const
add your file description here.
void make_where_clause(atermpp::aterm &t, const ARGUMENTS &... args)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
add your file description here.
Maintains a multiset of bound data variables during traversal.
void decrease_bind_count(const assignment_list &assignments)
void leave(const data::exists &x)
void enter(const data::forall &x)
void leave(const data::forall &x)
void leave(const data::data_equation &x)
void enter(const data::set_comprehension &x)
core::add_binding< Builder, Derived, variable > super
void enter(const data::data_equation &x)
void leave(const data::set_comprehension &x)
void enter(const data::exists &x)
void leave(const data::bag_comprehension &x)
void enter(const data::lambda &x)
void leave(const data::untyped_set_or_bag_comprehension &x)
void increase_bind_count(const assignment_list &assignments)
void enter(const data::bag_comprehension &x)
void leave(const data::lambda &x)
void enter(const data::untyped_set_or_bag_comprehension &x)
void enter(const data::where_clause &x)
void leave(const data::where_clause &x)
add_data_variable_binding< Builder, Derived > super
void apply(T &result, const data::where_clause &x)
add_data_variable_binding< Builder, Derived > super
void apply(const data::where_clause &x)
add your file description here.