mCRL2
Loading...
Searching...
No Matches
process_equation.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_EQUATION_H
13#define MCRL2_PROCESS_PROCESS_EQUATION_H
14
16
17namespace mcrl2
18{
19
20namespace process
21{
22
23//--- start generated class process_equation ---//
26{
27 public:
30 : atermpp::aterm_appl(core::detail::default_values::ProcEqn)
31 {}
32
35 explicit process_equation(const atermpp::aterm& term)
36 : atermpp::aterm_appl(term)
37 {
39 }
40
43 : atermpp::aterm_appl(core::detail::function_symbol_ProcEqn(), identifier, formal_parameters, expression)
44 {}
45
47 process_equation(const process_equation&) noexcept = default;
48 process_equation(process_equation&&) noexcept = default;
49 process_equation& operator=(const process_equation&) noexcept = default;
50 process_equation& operator=(process_equation&&) noexcept = default;
51
53 {
54 return atermpp::down_cast<process_identifier>((*this)[0]);
55 }
56
58 {
59 return atermpp::down_cast<data::variable_list>((*this)[1]);
60 }
61
63 {
64 return atermpp::down_cast<process_expression>((*this)[2]);
65 }
66};
67
70template <class... ARGUMENTS>
71inline void make_process_equation(atermpp::aterm_appl& t, const ARGUMENTS&... args)
72{
74}
75
78
80typedef std::vector<process_equation> process_equation_vector;
81
85inline
87{
89}
90
91// prototype declaration
92std::string pp(const process_equation& x);
93
98inline
99std::ostream& operator<<(std::ostream& out, const process_equation& x)
100{
101 return out << process::pp(x);
102}
103
106{
107 t1.swap(t2);
108}
109//--- end generated class process_equation ---//
110
111// template function overloads
112std::string pp(const process_equation_list& x);
113std::string pp(const process_equation_vector& x);
115std::set<data::sort_expression> find_sort_expressions(const process::process_equation_vector& x);
116
117} // namespace process
118
119} // namespace mcrl2
120
121#endif // MCRL2_PROCESS_PROCESS_EQUATION_H
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 equation
process_equation()
\brief Default constructor.
process_equation(const process_equation &) noexcept=default
Move semantics.
const data::variable_list & formal_parameters() const
const process_identifier & identifier() const
const process_expression & expression() const
process_equation(process_equation &&) noexcept=default
process_equation(const process_identifier &identifier, const data::variable_list &formal_parameters, const process_expression &expression)
\brief Constructor.
process_equation(const atermpp::aterm &term)
\brief A process expression
\brief A process identifier
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_ProcEqn()
bool check_term_ProcEqn(const Term &t)
atermpp::term_list< process_equation > process_equation_list
\brief list of process_equations
void swap(action_label &t1, action_label &t2)
\brief swap overload
std::set< data::sort_expression > find_sort_expressions(const process::action_label_list &x)
Definition process.cpp:73
action_label_list normalize_sorts(const action_label_list &x, const data::sort_specification &sortspec)
Definition process.cpp:67
std::vector< process_equation > process_equation_vector
\brief vector of process_equations
bool is_process_equation(const atermpp::aterm_appl &x)
void make_process_equation(atermpp::aterm_appl &t, const ARGUMENTS &... args)
std::string pp(const action_label &x)
Definition process.cpp:36
std::ostream & operator<<(std::ostream &out, const action_label &x)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
Definition indexed_set.h:72
add your file description here.
static const atermpp::function_symbol ProcEqn