mCRL2
Loading...
Searching...
No Matches
container_sort.h
Go to the documentation of this file.
1// Author(s): Jeroen Keiren
2// Copyright: see the accompanying file COPYING or copy at
3// https://github.com/mCRL2org/mCRL2/blob/master/COPYING
4//
5// Distributed under the Boost Software License, Version 1.0.
6// (See accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8//
11
12#ifndef MCRL2_DATA_CONTAINER_SORT_H
13#define MCRL2_DATA_CONTAINER_SORT_H
14
17
18namespace mcrl2
19{
20
21namespace data
22{
23
24//--- start generated class container_sort ---//
27{
28 public:
31 : sort_expression(core::detail::default_values::SortCons)
32 {}
33
36 explicit container_sort(const atermpp::aterm& term)
37 : sort_expression(term)
38 {
40 }
41
44 : sort_expression(atermpp::aterm(core::detail::function_symbol_SortCons(), container_name, element_sort))
45 {}
46
48 container_sort(const container_sort&) noexcept = default;
49 container_sort(container_sort&&) noexcept = default;
50 container_sort& operator=(const container_sort&) noexcept = default;
51 container_sort& operator=(container_sort&&) noexcept = default;
52
54 {
55 return atermpp::down_cast<container_type>((*this)[0]);
56 }
57
59 {
60 return atermpp::down_cast<sort_expression>((*this)[1]);
61 }
62};
63
66template <class... ARGUMENTS>
67inline void make_container_sort(atermpp::aterm& t, const ARGUMENTS&... args)
68{
70}
71
72// prototype declaration
73std::string pp(const container_sort& x);
74
79inline
80std::ostream& operator<<(std::ostream& out, const container_sort& x)
81{
82 return out << data::pp(x);
83}
84
86inline void swap(container_sort& t1, container_sort& t2)
87{
88 t1.swap(t2);
89}
90//--- end generated class container_sort ---//
91
95
98typedef std::vector<container_sort> container_sort_vector;
99
100} // namespace data
101
102} // namespace mcrl2
103
104#endif // MCRL2_DATA_CONTAINER_SORT_H
105
aterm()
Default constructor.
Definition aterm.h:48
A list of aterm objects.
Definition aterm_list.h:24
void swap(unprotected_aterm_core &t) noexcept
Swaps this term with its argument.
Definition aterm_core.h:152
\brief A container sort
container_sort()
\brief Default constructor X3.
container_sort(const container_sort &) noexcept=default
Move semantics.
container_sort(const container_type &container_name, const sort_expression &element_sort)
\brief Constructor Z14.
container_sort(container_sort &&) noexcept=default
const container_type & container_name() const
const sort_expression & element_sort() const
container_sort(const atermpp::aterm &term)
\brief Container type
\brief A sort expression
The main namespace for the aterm++ library.
Definition algorithm.h:21
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...
Definition aterm.h:213
bool check_term_SortCons(const Term &t)
const atermpp::function_symbol & function_symbol_SortCons()
void swap(abstraction &t1, abstraction &t2)
\brief swap overload
std::vector< container_sort > container_sort_vector
list of function sorts
std::string pp(const abstraction &x)
Definition data.cpp:39
atermpp::term_list< container_sort > container_sort_list
list of function sorts
void make_container_sort(atermpp::aterm &t, const ARGUMENTS &... args)
std::ostream & operator<<(std::ostream &out, const abstraction &x)
Definition abstraction.h:94
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Definition indexed_set.h:72
The class sort_expression.