12#ifndef MCRL2_DATA_STRUCTURED_SORT_CONSTRUCTOR_H
13#define MCRL2_DATA_STRUCTURED_SORT_CONSTRUCTOR_H
33 :
atermpp::
aterm(core::detail::default_values::StructCons)
50 template <
typename Container>
61 const core::identifier_string&
name()
const
63 return atermpp::down_cast<core::identifier_string>((*
this)[0]);
68 return atermpp::down_cast<structured_sort_constructor_argument_list>((*
this)[1]);
73 return atermpp::down_cast<core::identifier_string>((*
this)[2]);
91 template <
typename OutIter>
112 template <
typename Container>
114 :
atermpp::
aterm(core::detail::function_symbol_StructCons(), core::identifier_string(
name),
arguments, core::empty_identifier_string())
118 template <
typename Container>
136 template <
typename Container, std::
size_t S, std::
size_t S0 >
157 std::back_insert_iterator<sort_expression_vector> inserter(
arguments);
192template <
class... ARGUMENTS>
214std::string
pp(
const structured_sort_constructor& x);
Term containing a string.
const_iterator end() const
Returns a const_iterator pointing past the last argument.
aterm()
Default constructor.
const_iterator begin() const
Returns an iterator pointing to the first argument.
const function_symbol & function() const
Returns the function symbol belonging to an aterm.
bool empty() const
Returns true if the list's size is 0.
void swap(unprotected_aterm_core &t) noexcept
Swaps this term with its argument.
\brief An argument of a constructor of a structured sort
const sort_expression & sort() const
\brief A constructor for a structured sort
function_symbol constructor_function(const sort_expression &s) const
Returns the constructor function for this constructor, assuming it is internally represented with sor...
const core::identifier_string & name() const
structured_sort_constructor(const std::string &name, const structured_sort_constructor_argument_list &arguments, typename atermpp::enable_if_container< Container, structured_sort_constructor_argument >::type *=0)
Constructor.
structured_sort_constructor(const char(&name)[S], const Container &arguments, const char(&recogniser)[S0], typename atermpp::enable_if_container< Container, structured_sort_constructor_argument >::type *=nullptr)
structured_sort_constructor(const structured_sort_constructor &) noexcept=default
Move semantics.
structured_sort_constructor(const core::identifier_string &name, const structured_sort_constructor_argument_list &arguments, core::identifier_string &recogniser)
\brief Constructor Z12.
structured_sort_constructor(const core::identifier_string &name, const core::identifier_string &recogniser)
Constructor.
structured_sort_constructor(const std::string &name, const std::string &recogniser)
Constructor.
function_symbol_vector projection_functions(const sort_expression &s) const
Returns the projection functions for this constructor.
structured_sort_constructor(const std::string &name)
Constructor.
structured_sort_constructor(structured_sort_constructor &&) noexcept=default
const core::identifier_string & recogniser() const
structured_sort_constructor(const std::string &name, const Container &arguments, const std::string &recogniser, typename atermpp::enable_if_container< Container, structured_sort_constructor_argument >::type *=nullptr)
\brief Constructor Z1.
function_symbol recogniser_function(const sort_expression &s) const
Returns the function corresponding to the recogniser of this constructor, such that it is usable in t...
structured_sort_constructor(const atermpp::aterm &term)
structured_sort_constructor(const std::string &name, const Container &arguments, typename atermpp::enable_if_container< Container, structured_sort_constructor_argument >::type *=nullptr)
Constructor.
const structured_sort_constructor_argument_list & arguments() const
structured_sort_constructor()
\brief Default constructor X3.
void argument_sorts(OutIter out) const
Returns the sorts of the arguments in an output iterator.
structured_sort_constructor(const core::identifier_string &name)
Constructor.
The main namespace for the aterm++ library.
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...
const atermpp::function_symbol & function_symbol_StructCons()
bool check_term_StructCons(const Term &t)
identifier_string empty_identifier_string()
Provides the empty identifier string.
const basic_sort & bool_()
Constructor for sort expression Bool.
void swap(abstraction &t1, abstraction &t2)
\brief swap overload
std::vector< sort_expression > sort_expression_vector
\brief vector of sort_expressions
function_sort make_function_sort_(const sort_expression &dom1, const sort_expression &codomain)
Convenience constructor for function sort with domain size 1.
std::string pp(const abstraction &x)
std::vector< structured_sort_constructor > structured_sort_constructor_vector
\brief vector of structured_sort_constructors
bool is_structured_sort_constructor(const atermpp::aterm &x)
void make_structured_sort_constructor(atermpp::aterm &t, const ARGUMENTS &... args)
std::vector< function_symbol > function_symbol_vector
\brief vector of function_symbols
atermpp::term_list< structured_sort_constructor > structured_sort_constructor_list
\brief list of structured_sort_constructors
std::ostream & operator<<(std::ostream &out, const abstraction &x)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
static const atermpp::function_symbol StructCons
sort_expression operator()(structured_sort_constructor_argument const &s) const
The class structured_sort_constructor_arguments.