mCRL2
Loading...
Searching...
No Matches
structured_sort_constructor_argument.h
Go to the documentation of this file.
1// Author(s): Jeroen Keiren, Jeroen van der Wulp
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_STRUCTURED_SORT_CONSTRUCTOR_ARGUMENT_H
13#define MCRL2_DATA_STRUCTURED_SORT_CONSTRUCTOR_ARGUMENT_H
14
16
17namespace mcrl2
18{
19
20namespace data
21{
22
23//--- start generated class structured_sort_constructor_argument ---//
26{
27 public:
30 : atermpp::aterm(core::detail::default_values::StructProj)
31 {}
32
36 : atermpp::aterm(term)
37 {
39 }
40
43 : atermpp::aterm(core::detail::function_symbol_StructProj(), name, sort)
44 {}
45
48 : atermpp::aterm(core::detail::function_symbol_StructProj(), core::identifier_string(name), sort)
49 {}
50
56
57 const core::identifier_string& name() const
58 {
59 return atermpp::down_cast<core::identifier_string>((*this)[0]);
60 }
61
62 const sort_expression& sort() const
63 {
64 return atermpp::down_cast<sort_expression>((*this)[1]);
65 }
66//--- start user section structured_sort_constructor_argument ---//
71 : atermpp::aterm(core::detail::function_symbol_StructProj(), core::empty_identifier_string(), sort)
72 {}
73
77 template < std::size_t S >
79 : atermpp::aterm(core::detail::function_symbol_StructProj(), core::identifier_string(name), sort)
80 {}
81//--- end user section structured_sort_constructor_argument ---//
82};
83
86template <class... ARGUMENTS>
87inline void make_structured_sort_constructor_argument(atermpp::aterm& t, const ARGUMENTS&... args)
88{
90}
91
94
96typedef std::vector<structured_sort_constructor_argument> structured_sort_constructor_argument_vector;
97
101inline
103{
105}
106
107// prototype declaration
108std::string pp(const structured_sort_constructor_argument& x);
109
114inline
115std::ostream& operator<<(std::ostream& out, const structured_sort_constructor_argument& x)
116{
117 return out << data::pp(x);
118}
119
122{
123 t1.swap(t2);
124}
125//--- end generated class structured_sort_constructor_argument ---//
126
127} // namespace data
128
129} // namespace mcrl2
130
131#endif // MCRL2_DATA_STRUCTURED_SORT_CONSTRUCTOR_ARGUMENT_H
132
Term containing a string.
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 expression
\brief An argument of a constructor of a structured sort
structured_sort_constructor_argument(const sort_expression &sort)
Constructor.
structured_sort_constructor_argument(const std::string &name, const sort_expression &sort)
\brief Constructor Z1.
structured_sort_constructor_argument(const core::identifier_string &name, const sort_expression &sort)
\brief Constructor Z12.
structured_sort_constructor_argument(structured_sort_constructor_argument &&) noexcept=default
structured_sort_constructor_argument(const char(&name)[S], const sort_expression &sort)
structured_sort_constructor_argument(const structured_sort_constructor_argument &) noexcept=default
Move semantics.
The class function symbol.
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_StructProj()
bool check_term_StructProj(const Term &t)
void swap(abstraction &t1, abstraction &t2)
\brief swap overload
atermpp::term_list< structured_sort_constructor_argument > structured_sort_constructor_argument_list
\brief list of structured_sort_constructor_arguments
std::string pp(const abstraction &x)
Definition data.cpp:39
void make_structured_sort_constructor_argument(atermpp::aterm &t, const ARGUMENTS &... args)
bool is_structured_sort_constructor_argument(const atermpp::aterm &x)
std::vector< structured_sort_constructor_argument > structured_sort_constructor_argument_vector
\brief vector of structured_sort_constructor_arguments
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 StructProj