mCRL2
Loading...
Searching...
No Matches
binder_type.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_BINDER_TYPE_H
13#define MCRL2_DATA_BINDER_TYPE_H
14
17
18namespace mcrl2
19{
20
21namespace data
22{
23
24//--- start generated classes ---//
27{
28 public:
31 : atermpp::aterm(core::detail::default_values::BindingOperator)
32 {}
33
36 explicit binder_type(const atermpp::aterm& term)
37 : atermpp::aterm(term)
38 {
40 }
41
43 binder_type(const binder_type&) noexcept = default;
44 binder_type(binder_type&&) noexcept = default;
45 binder_type& operator=(const binder_type&) noexcept = default;
46 binder_type& operator=(binder_type&&) noexcept = default;
47};
48
51
54
55// prototype declaration
56std::string pp(const binder_type& x);
57
62inline
63std::ostream& operator<<(std::ostream& out, const binder_type& x)
64{
65 return out << data::pp(x);
66}
67
69inline void swap(binder_type& t1, binder_type& t2)
70{
71 t1.swap(t2);
72}
73
74
77{
78 public:
81 : binder_type(core::detail::default_values::UntypedSetBagComp)
82 {}
83
87 : binder_type(term)
88 {
89 assert(core::detail::check_term_UntypedSetBagComp(*this));
90 }
91
97};
98
102inline
103bool is_untyped_set_or_bag_comprehension_binder(const atermpp::aterm& x)
104{
105 return x.function() == core::detail::function_symbols::UntypedSetBagComp;
106}
107
108// prototype declaration
109std::string pp(const untyped_set_or_bag_comprehension_binder& x);
110
115inline
116std::ostream& operator<<(std::ostream& out, const untyped_set_or_bag_comprehension_binder& x)
117{
118 return out << data::pp(x);
119}
120
123{
124 t1.swap(t2);
125}
126
127
130{
131 public:
134 : binder_type(core::detail::default_values::SetComp)
135 {}
136
140 : binder_type(term)
141 {
142 assert(core::detail::check_term_SetComp(*this));
143 }
144
148 set_comprehension_binder& operator=(const set_comprehension_binder&) noexcept = default;
149 set_comprehension_binder& operator=(set_comprehension_binder&&) noexcept = default;
150};
151
155inline
156bool is_set_comprehension_binder(const atermpp::aterm& x)
157{
158 return x.function() == core::detail::function_symbols::SetComp;
159}
160
161// prototype declaration
162std::string pp(const set_comprehension_binder& x);
163
168inline
169std::ostream& operator<<(std::ostream& out, const set_comprehension_binder& x)
170{
171 return out << data::pp(x);
172}
173
176{
177 t1.swap(t2);
178}
179
180
183{
184 public:
187 : binder_type(core::detail::default_values::BagComp)
188 {}
189
193 : binder_type(term)
194 {
195 assert(core::detail::check_term_BagComp(*this));
196 }
197
201 bag_comprehension_binder& operator=(const bag_comprehension_binder&) noexcept = default;
202 bag_comprehension_binder& operator=(bag_comprehension_binder&&) noexcept = default;
203};
204
208inline
209bool is_bag_comprehension_binder(const atermpp::aterm& x)
210{
211 return x.function() == core::detail::function_symbols::BagComp;
212}
213
214// prototype declaration
215std::string pp(const bag_comprehension_binder& x);
216
221inline
222std::ostream& operator<<(std::ostream& out, const bag_comprehension_binder& x)
223{
224 return out << data::pp(x);
225}
226
229{
230 t1.swap(t2);
231}
232
233
236{
237 public:
240 : binder_type(core::detail::default_values::Forall)
241 {}
242
245 explicit forall_binder(const atermpp::aterm& term)
246 : binder_type(term)
247 {
248 assert(core::detail::check_term_Forall(*this));
249 }
250
252 forall_binder(const forall_binder&) noexcept = default;
253 forall_binder(forall_binder&&) noexcept = default;
254 forall_binder& operator=(const forall_binder&) noexcept = default;
255 forall_binder& operator=(forall_binder&&) noexcept = default;
256};
257
261inline
262bool is_forall_binder(const atermpp::aterm& x)
263{
264 return x.function() == core::detail::function_symbols::Forall;
265}
266
267// prototype declaration
268std::string pp(const forall_binder& x);
269
274inline
275std::ostream& operator<<(std::ostream& out, const forall_binder& x)
276{
277 return out << data::pp(x);
278}
279
281inline void swap(forall_binder& t1, forall_binder& t2)
282{
283 t1.swap(t2);
284}
285
286
289{
290 public:
293 : binder_type(core::detail::default_values::Exists)
294 {}
295
298 explicit exists_binder(const atermpp::aterm& term)
299 : binder_type(term)
300 {
301 assert(core::detail::check_term_Exists(*this));
302 }
303
305 exists_binder(const exists_binder&) noexcept = default;
306 exists_binder(exists_binder&&) noexcept = default;
307 exists_binder& operator=(const exists_binder&) noexcept = default;
308 exists_binder& operator=(exists_binder&&) noexcept = default;
309};
310
314inline
315bool is_exists_binder(const atermpp::aterm& x)
316{
317 return x.function() == core::detail::function_symbols::Exists;
318}
319
320// prototype declaration
321std::string pp(const exists_binder& x);
322
327inline
328std::ostream& operator<<(std::ostream& out, const exists_binder& x)
329{
330 return out << data::pp(x);
331}
332
334inline void swap(exists_binder& t1, exists_binder& t2)
335{
336 t1.swap(t2);
337}
338
339
342{
343 public:
346 : binder_type(core::detail::default_values::Lambda)
347 {}
348
351 explicit lambda_binder(const atermpp::aterm& term)
352 : binder_type(term)
353 {
354 assert(core::detail::check_term_Lambda(*this));
355 }
356
358 lambda_binder(const lambda_binder&) noexcept = default;
359 lambda_binder(lambda_binder&&) noexcept = default;
360 lambda_binder& operator=(const lambda_binder&) noexcept = default;
361 lambda_binder& operator=(lambda_binder&&) noexcept = default;
362};
363
367inline
368bool is_lambda_binder(const atermpp::aterm& x)
369{
370 return x.function() == core::detail::function_symbols::Lambda;
371}
372
373// prototype declaration
374std::string pp(const lambda_binder& x);
375
380inline
381std::ostream& operator<<(std::ostream& out, const lambda_binder& x)
382{
383 return out << data::pp(x);
384}
385
387inline void swap(lambda_binder& t1, lambda_binder& t2)
388{
389 t1.swap(t2);
390}
391//--- end generated classes ---//
392
393} // namespace data
394
395} // namespace mcrl2
396
397#endif // MCRL2_DATA_BINDER_TYPE_H
void swap(StaticGraph &a, StaticGraph &b)
Definition Graph.h:297
aterm()
Default constructor.
Definition aterm.h:48
const function_symbol & function() const
Returns the function symbol belonging to an aterm.
Definition aterm.h:144
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 Binder for bag comprehension
bag_comprehension_binder(const atermpp::aterm &term)
bag_comprehension_binder(const bag_comprehension_binder &) noexcept=default
Move semantics.
bag_comprehension_binder()
\brief Default constructor X3.
bag_comprehension_binder(bag_comprehension_binder &&) noexcept=default
binder_type()
\brief Default constructor X3.
Definition binder_type.h:30
binder_type(binder_type &&) noexcept=default
binder_type(const binder_type &) noexcept=default
Move semantics.
binder_type(const atermpp::aterm &term)
Definition binder_type.h:36
\brief Binder for existential quantification
exists_binder(const exists_binder &) noexcept=default
Move semantics.
exists_binder(exists_binder &&) noexcept=default
exists_binder()
\brief Default constructor X3.
exists_binder(const atermpp::aterm &term)
\brief Binder for universal quantification
forall_binder(const forall_binder &) noexcept=default
Move semantics.
forall_binder(const atermpp::aterm &term)
forall_binder()
\brief Default constructor X3.
forall_binder(forall_binder &&) noexcept=default
\brief Binder for lambda abstraction
lambda_binder(const atermpp::aterm &term)
lambda_binder()
\brief Default constructor X3.
lambda_binder(lambda_binder &&) noexcept=default
lambda_binder(const lambda_binder &) noexcept=default
Move semantics.
\brief Binder for set comprehension
set_comprehension_binder(const atermpp::aterm &term)
set_comprehension_binder()
\brief Default constructor X3.
set_comprehension_binder(set_comprehension_binder &&) noexcept=default
set_comprehension_binder(const set_comprehension_binder &) noexcept=default
Move semantics.
\brief Binder for untyped set or bag comprehension
Definition binder_type.h:77
untyped_set_or_bag_comprehension_binder(untyped_set_or_bag_comprehension_binder &&) noexcept=default
untyped_set_or_bag_comprehension_binder(const atermpp::aterm &term)
Definition binder_type.h:86
untyped_set_or_bag_comprehension_binder()
\brief Default constructor X3.
Definition binder_type.h:80
untyped_set_or_bag_comprehension_binder(const untyped_set_or_bag_comprehension_binder &) noexcept=default
Move semantics.
add your file description here.
The main namespace for the aterm++ library.
Definition algorithm.h:21
bool check_rule_BindingOperator(const Term &t)
void swap(abstraction &t1, abstraction &t2)
\brief swap overload
std::vector< binder_type > binder_type_vector
\brief vector of binder_types
Definition binder_type.h:53
std::string pp(const abstraction &x)
Definition data.cpp:39
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Definition indexed_set.h:72
STL namespace.
Add your file description here.