mCRL2
Loading...
Searching...
No Matches
alias.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_ALIAS_H
13#define MCRL2_DATA_ALIAS_H
14
16
17namespace mcrl2
18{
19
20namespace data
21{
22
23//--- start generated class alias ---//
25class alias: public atermpp::aterm
26{
27 public:
30 : atermpp::aterm(core::detail::default_values::SortRef)
31 {}
32
35 explicit alias(const atermpp::aterm& term)
36 : atermpp::aterm(term)
37 {
39 }
40
43 : atermpp::aterm(core::detail::function_symbol_SortRef(), name, reference)
44 {}
45
47 alias(const alias&) noexcept = default;
48 alias(alias&&) noexcept = default;
49 alias& operator=(const alias&) noexcept = default;
50 alias& operator=(alias&&) noexcept = default;
51
52 const basic_sort& name() const
53 {
54 return atermpp::down_cast<basic_sort>((*this)[0]);
55 }
56
58 {
59 return atermpp::down_cast<sort_expression>((*this)[1]);
60 }
61};
62
65template <class... ARGUMENTS>
66inline void make_alias(atermpp::aterm& t, const ARGUMENTS&... args)
67{
69}
70
73
75typedef std::vector<alias> alias_vector;
76
80inline
82{
84}
85
86// prototype declaration
87std::string pp(const alias& x);
88
93inline
94std::ostream& operator<<(std::ostream& out, const alias& x)
95{
96 return out << data::pp(x);
97}
98
100inline void swap(alias& t1, alias& t2)
101{
102 t1.swap(t2);
103}
104//--- end generated class alias ---//
105
106} // namespace data
107
108} // namespace mcrl2
109
110#endif // MCRL2_DATA_ALIAS_H
111
The class basic_sort.
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 A sort alias
Definition alias.h:26
alias()
\brief Default constructor X3.
Definition alias.h:29
alias(const alias &) noexcept=default
Move semantics.
alias(const basic_sort &name, const sort_expression &reference)
\brief Constructor Z12.
Definition alias.h:42
alias(alias &&) noexcept=default
alias(const atermpp::aterm &term)
Definition alias.h:35
const basic_sort & name() const
Definition alias.h:52
const sort_expression & reference() const
Definition alias.h:57
\brief A basic sort
Definition basic_sort.h:26
\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
const atermpp::function_symbol & function_symbol_SortRef()
bool check_term_SortRef(const Term &t)
void swap(abstraction &t1, abstraction &t2)
\brief swap overload
std::vector< alias > alias_vector
\brief vector of aliass
Definition alias.h:75
atermpp::term_list< alias > alias_list
\brief list of aliass
Definition alias.h:72
std::string pp(const abstraction &x)
Definition data.cpp:39
void make_alias(atermpp::aterm &t, const ARGUMENTS &... args)
Definition alias.h:66
bool is_alias(const atermpp::aterm &x)
Definition alias.h:81
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
static const atermpp::function_symbol SortRef