mCRL2
Loading...
Searching...
No Matches
untyped_identifier.h
Go to the documentation of this file.
1// Author(s): Wieger Wesselink
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_UNTYPED_IDENTIFIER_H
13#define MCRL2_DATA_UNTYPED_IDENTIFIER_H
14
16
17namespace mcrl2 {
18
19namespace data {
20
21//--- start generated class untyped_identifier ---//
24{
25 public:
28 : data_expression(core::detail::default_values::UntypedIdentifier)
29 {}
30
33 explicit untyped_identifier(const atermpp::aterm& term)
34 : data_expression(term)
35 {
37 }
38
41 : data_expression(atermpp::aterm(core::detail::function_symbol_UntypedIdentifier(), name))
42 {}
43
45 untyped_identifier(const std::string& name)
46 : data_expression(atermpp::aterm(core::detail::function_symbol_UntypedIdentifier(), core::identifier_string(name)))
47 {}
48
50 untyped_identifier(const untyped_identifier&) noexcept = default;
52 untyped_identifier& operator=(const untyped_identifier&) noexcept = default;
53 untyped_identifier& operator=(untyped_identifier&&) noexcept = default;
54
55 const core::identifier_string& name() const
56 {
57 return atermpp::down_cast<core::identifier_string>((*this)[0]);
58 }
59};
60
63template <class... ARGUMENTS>
64inline void make_untyped_identifier(atermpp::aterm& t, const ARGUMENTS&... args)
65{
67}
68
69// prototype declaration
70std::string pp(const untyped_identifier& x);
71
76inline
77std::ostream& operator<<(std::ostream& out, const untyped_identifier& x)
78{
79 return out << data::pp(x);
80}
81
84{
85 t1.swap(t2);
86}
87//--- end generated class untyped_identifier ---//
88
89} // namespace data
90
91} // namespace mcrl2
92
93#endif // MCRL2_DATA_UNTYPED_IDENTIFIER_H
Term containing a string.
aterm()
Default constructor.
Definition aterm.h:48
void swap(unprotected_aterm_core &t) noexcept
Swaps this term with its argument.
Definition aterm_core.h:152
\brief An untyped identifier
untyped_identifier(const atermpp::aterm &term)
untyped_identifier(const untyped_identifier &) noexcept=default
Move semantics.
untyped_identifier(const std::string &name)
\brief Constructor Z2.
const core::identifier_string & name() const
untyped_identifier(untyped_identifier &&) noexcept=default
untyped_identifier()
\brief Default constructor X3.
untyped_identifier(const core::identifier_string &name)
\brief Constructor Z14.
The class data_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_UntypedIdentifier(const Term &t)
const atermpp::function_symbol & function_symbol_UntypedIdentifier()
void swap(abstraction &t1, abstraction &t2)
\brief swap overload
void make_untyped_identifier(atermpp::aterm &t, const ARGUMENTS &... args)
std::string pp(const abstraction &x)
Definition data.cpp:39
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