mCRL2
Loading...
Searching...
No Matches
process_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_PROCESS_PROCESS_IDENTIFIER_H
13#define MCRL2_PROCESS_PROCESS_IDENTIFIER_H
14
16
17namespace mcrl2
18{
19
20namespace process
21{
22
23//--- start generated class process_identifier ---//
26{
27 public:
28
29
31 process_identifier(const process_identifier&) noexcept = default;
33 process_identifier& operator=(const process_identifier&) noexcept = default;
34 process_identifier& operator=(process_identifier&&) noexcept = default;
35
36 const core::identifier_string& name() const
37 {
38 return atermpp::down_cast<core::identifier_string>((*this)[0]);
39 }
40
42 {
43 return atermpp::down_cast<data::variable_list>((*this)[1]);
44 }
45//--- start user section process_identifier ---//
48 : atermpp::aterm_appl(core::detail::default_values::ProcVarId)
49 {}
50
53 explicit process_identifier(const atermpp::aterm& term)
54 : atermpp::aterm_appl(term)
55 {
57 }
58
61 {
63 }
64
67 {
69 }
70//--- end user section process_identifier ---//
71};
72
75template <class... ARGUMENTS>
76inline void make_process_identifier(atermpp::aterm_appl& t, const ARGUMENTS&... args)
77{
79}
80
83
85typedef std::vector<process_identifier> process_identifier_vector;
86
90inline
92{
94}
95
96// prototype declaration
97std::string pp(const process_identifier& x);
98
103inline
104std::ostream& operator<<(std::ostream& out, const process_identifier& x)
105{
106 return out << process::pp(x);
107}
108
111{
112 t1.swap(t2);
113}
114//--- end generated class process_identifier ---//
115
116// template function overloads
117std::string pp(const process_identifier_list& x);
118std::string pp(const process_identifier_vector& x);
120
121} // namespace process
122
123} // namespace mcrl2
124
125#endif // MCRL2_PROCESS_PROCESS_IDENTIFIER_H
add your file description here.
Term containing a string.
The aterm base class that provides protection of the underlying shared terms.
Definition aterm.h:186
const function_symbol & function() const
Returns the function symbol belonging to an aterm_appl.
Definition aterm_appl.h:174
void swap(unprotected_aterm &t) noexcept
Swaps this term with its argument.
Definition aterm.h:156
\brief A process identifier
process_identifier(const process_identifier &) noexcept=default
Move semantics.
const data::variable_list & variables() const
process_identifier(process_identifier &&) noexcept=default
process_identifier(const core::identifier_string &name, const data::variable_list &variables)
Constructor.
const core::identifier_string & name() const
process_identifier(const std::string &name, const data::variable_list &variables)
Constructor.
process_identifier(const atermpp::aterm &term)
Constructor.
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_appl in a variable based on a function symbol and an forward iterator providing ...
Definition aterm_appl.h:239
const atermpp::function_symbol & function_symbol_ProcVarId()
bool check_term_ProcVarId(const Term &t)
bool is_process_identifier(const atermpp::aterm_appl &x)
void swap(action_label &t1, action_label &t2)
\brief swap overload
action_label_list normalize_sorts(const action_label_list &x, const data::sort_specification &sortspec)
Definition process.cpp:67
void make_process_identifier(atermpp::aterm_appl &t, const ARGUMENTS &... args)
std::string pp(const action_label &x)
Definition process.cpp:36
atermpp::term_list< process_identifier > process_identifier_list
\brief list of process_identifiers
std::ostream & operator<<(std::ostream &out, const action_label &x)
std::vector< process_identifier > process_identifier_vector
\brief vector of process_identifiers
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 ProcVarId