mcrl2::data::structured_sort_constructor

Include file:

#include "mcrl2/data/structured_sort_constructor.h
class mcrl2::data::structured_sort_constructor

A constructor for a structured sort.

Friends

friend class structured_sort

Public member functions

const structured_sort_constructor_argument_list &arguments() const
function_symbol constructor_function(const sort_expression &s) const

Returns the constructor function for this constructor, assuming it is internally represented with sort s.

Parameters:

  • s Sort expression this sort is internally represented as.

In general, constructor_function is used with s the structured sort of which this constructor is a part. Consider for example struct c|d, be a structured sort, where this constructor is c, then this.constructor_function(struct c|d) returns the fuction symbol c : struct c|d, i.e. the function c of sort struct c|d.

const core::identifier_string &name() const
structured_sort_constructor &operator=(const structured_sort_constructor&) noexcept = default
structured_sort_constructor &operator=(structured_sort_constructor&&) noexcept = default
function_symbol_vector projection_functions(const sort_expression &s) const

Returns the projection functions for this constructor.

Parameters:

  • s The sort as which the structured sort this constructor corresponds to is treated internally.
const core::identifier_string &recogniser() const
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 the rewriter.

Parameters:

  • s The sort as which the structured sort this constructor corresponds to is treated internally.
structured_sort_constructor()

Default constructor.

structured_sort_constructor(const atermpp::aterm &term)

Constructor.

Parameters:

  • term A term
structured_sort_constructor(const core::identifier_string &name, const structured_sort_constructor_argument_list &arguments, core::identifier_string &recogniser)

Constructor.

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)

Constructor.

structured_sort_constructor(const structured_sort_constructor&) noexcept = default

Move semantics.

structured_sort_constructor(structured_sort_constructor&&) noexcept = default
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.

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 std::string &name, const Container &arguments, typename atermpp::enable_if_container<Container, structured_sort_constructor_argument>::type * = nullptr)

Constructor.

structured_sort_constructor(const core::identifier_string &name)

Constructor.

structured_sort_constructor(const std::string &name)

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)

Constructor.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Protected member functions

void argument_sorts(OutIter out) const

Returns the sorts of the arguments in an output iterator.