12#ifndef MCRL2_DATA_WHERE_CLAUSE_H
13#define MCRL2_DATA_WHERE_CLAUSE_H
47 template <
typename Container>
60 return atermpp::down_cast<data_expression>((*
this)[0]);
65 return atermpp::down_cast<assignment_expression_list>((*
this)[1]);
70 return atermpp::down_cast<const assignment_list>((*
this)[1]);
77template <
class... ARGUMENTS>
84std::string
pp(
const where_clause& x);
aterm()
Default constructor.
void swap(unprotected_aterm_core &t) noexcept
Swaps this term with its argument.
const_iterator end() const
const_iterator begin() const
\brief A where expression
const assignment_list & assignments() const
where_clause(const where_clause &) noexcept=default
Move semantics.
where_clause(const atermpp::aterm &term)
const data_expression & body() const
const assignment_expression_list & declarations() const
where_clause()
\brief Default constructor X3.
where_clause(const data_expression &body, const Container &declarations, typename atermpp::enable_if_container< Container, assignment_expression >::type *=nullptr)
\brief Constructor Z2.
where_clause(where_clause &&) noexcept=default
where_clause(const data_expression &body, const assignment_expression_list &declarations)
\brief Constructor Z14.
The main namespace for the aterm++ library.
void make_term_appl(Term &target, const function_symbol &sym, ForwardIterator begin, ForwardIterator end)
Constructor an aterm in a variable based on a function symbol and an forward iterator providing the a...
bool check_term_Whr(const Term &t)
const atermpp::function_symbol & function_symbol_Whr()
void swap(abstraction &t1, abstraction &t2)
\brief swap overload
void make_where_clause(atermpp::aterm &t, const ARGUMENTS &... args)
std::string pp(const abstraction &x)
std::ostream & operator<<(std::ostream &out, const abstraction &x)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...