mCRL2
|
#include <aterm_appl.h>
Public Types | |
typedef Term | value_type |
The type of object, T stored in the term_appl. | |
typedef Term * | pointer |
Pointer to T. | |
typedef Term & | reference |
Reference to T. | |
typedef const Term | const_reference |
Const reference to T. | |
typedef std::size_t | size_type |
An unsigned integral type. | |
typedef ptrdiff_t | difference_type |
A signed integral type. | |
typedef term_appl_iterator< Term > | iterator |
Iterator used to iterate through an term_appl. | |
typedef term_appl_iterator< Term > | const_iterator |
Const iterator used to iterate through an term_appl. | |
Public Member Functions | |
term_appl () | |
Default constructor. | |
term_appl (const aterm &t) | |
Explicit constructor from an aterm. | |
term_appl (const term_appl &other) noexcept=default | |
This class has user-declared copy constructor so declare default copy and move operators. | |
term_appl & | operator= (const term_appl &other) noexcept=default |
term_appl (term_appl &&other) noexcept=default | |
term_appl & | operator= (term_appl &&other) noexcept=default |
template<class ForwardIterator , typename std::enable_if< mcrl2::utilities::is_iterator< ForwardIterator >::value >::type * = nullptr, typename std::enable_if<!std::is_same< typename ForwardIterator::iterator_category, std::input_iterator_tag >::value >::type * = nullptr, typename std::enable_if<!std::is_same< typename ForwardIterator::iterator_category, std::output_iterator_tag >::value >::type * = nullptr> | |
term_appl (const function_symbol &sym, ForwardIterator begin, ForwardIterator end) | |
Constructor that provides an aterm_appl based on a function symbol and forward iterator providing the arguments. | |
template<class InputIterator , typename std::enable_if< mcrl2::utilities::is_iterator< InputIterator >::value >::type * = nullptr, typename std::enable_if< std::is_same< typename InputIterator::iterator_category, std::input_iterator_tag >::value >::type * = nullptr> | |
term_appl (const function_symbol &sym, InputIterator begin, InputIterator end) | |
Constructor that provides an aterm_appl based on a function symbol and an input iterator providing the arguments. | |
template<class InputIterator , class TermConverter , typename std::enable_if< mcrl2::utilities::is_iterator< InputIterator >::value >::type * = nullptr> | |
term_appl (const function_symbol &sym, InputIterator begin, InputIterator end, TermConverter converter) | |
term_appl (const function_symbol &sym) | |
Constructor. | |
template<typename ... Terms> | |
term_appl (const function_symbol &symbol, const Terms &...arguments) | |
Constructor for n-arity function application. | |
const function_symbol & | function () const |
Returns the function symbol belonging to an aterm_appl. | |
size_type | size () const |
Returns the number of arguments of this term. | |
bool | empty () const |
Returns true if the term has no arguments. | |
const_iterator | begin () const |
Returns an iterator pointing to the first argument. | |
const_iterator | end () const |
Returns a const_iterator pointing past the last argument. | |
constexpr size_type | max_size () const |
Returns the largest possible number of arguments. | |
const Term & | operator[] (const size_type i) const |
Returns the i-th argument. | |
![]() | |
aterm () noexcept | |
Default constructor. | |
~aterm () noexcept | |
Standard destructor. | |
aterm (const detail::_aterm *t) noexcept | |
Constructor based on an internal term data structure. This is not for public use. | |
aterm (const aterm &other) noexcept | |
Copy constructor. | |
aterm (aterm &&other) noexcept | |
Move constructor. | |
aterm & | operator= (const aterm &other) noexcept |
Assignment operator. | |
aterm & | assign (const aterm &other, detail::thread_aterm_pool &pool) noexcept |
Assignment operator, to be used if busy and forbidden flags are explicitly available. | |
template<bool CHECK_BUSY_FLAG = true> | |
aterm & | unprotected_assign (const aterm &other) noexcept |
Assignment operator, to be used when the busy flags do not need to be set. | |
aterm & | operator= (aterm &&other) noexcept |
Move assignment operator. | |
![]() | |
unprotected_aterm () noexcept | |
Default constuctor. | |
unprotected_aterm (const detail::_aterm *term) noexcept | |
Constructor. | |
bool | type_is_appl () const noexcept |
Dynamic check whether the term is an aterm_appl. | |
bool | type_is_int () const noexcept |
Dynamic check whether the term is an aterm_int. | |
bool | type_is_list () const noexcept |
Dynamic check whether the term is an aterm_list. | |
bool | operator== (const unprotected_aterm &t) const |
Comparison operator. | |
bool | operator!= (const unprotected_aterm &t) const |
Inequality operator on two unprotected aterms. | |
bool | operator< (const unprotected_aterm &t) const |
Comparison operator for two unprotected aterms. | |
bool | operator> (const unprotected_aterm &t) const |
Comparison operator for two unprotected aterms. | |
bool | operator<= (const unprotected_aterm &t) const |
Comparison operator for two unprotected aterms. | |
bool | operator>= (const unprotected_aterm &t) const |
Comparison operator for two unprotected aterms. | |
bool | defined () const |
Returns true if this term is not equal to the term assigned by the default constructor of aterms, term_appl<T>'s and aterm_int. | |
void | swap (unprotected_aterm &t) noexcept |
Swaps this term with its argument. | |
const function_symbol & | function () const |
Yields the function symbol in an aterm. | |
Protected Member Functions | |
term_appl (detail::_term_appl *t) | |
Constructor. | |
Additional Inherited Members | |
![]() | |
const detail::_aterm * | m_term |
Definition at line 24 of file aterm_appl.h.
typedef term_appl_iterator<Term> atermpp::term_appl< Term >::const_iterator |
Const iterator used to iterate through an term_appl.
Definition at line 60 of file aterm_appl.h.
typedef const Term atermpp::term_appl< Term >::const_reference |
Const reference to T.
Definition at line 48 of file aterm_appl.h.
typedef ptrdiff_t atermpp::term_appl< Term >::difference_type |
A signed integral type.
Definition at line 54 of file aterm_appl.h.
typedef term_appl_iterator<Term> atermpp::term_appl< Term >::iterator |
Iterator used to iterate through an term_appl.
Definition at line 57 of file aterm_appl.h.
typedef Term* atermpp::term_appl< Term >::pointer |
Pointer to T.
Definition at line 42 of file aterm_appl.h.
typedef Term& atermpp::term_appl< Term >::reference |
Reference to T.
Definition at line 45 of file aterm_appl.h.
typedef std::size_t atermpp::term_appl< Term >::size_type |
An unsigned integral type.
Definition at line 51 of file aterm_appl.h.
typedef Term atermpp::term_appl< Term >::value_type |
The type of object, T stored in the term_appl.
Definition at line 39 of file aterm_appl.h.
|
inlineexplicitprotected |
Constructor.
t | A pointer internal data structure from which the term is constructed. |
This function is explicitly protected such that is not used in common code.
Definition at line 30 of file aterm_appl.h.
|
inline |
Default constructor.
Definition at line 63 of file aterm_appl.h.
|
inlineexplicit |
Explicit constructor from an aterm.
t | The aterm from which the term is constructed. |
Definition at line 68 of file aterm_appl.h.
|
defaultnoexcept |
This class has user-declared copy constructor so declare default copy and move operators.
|
defaultnoexcept |
|
inline |
Constructor that provides an aterm_appl based on a function symbol and forward iterator providing the arguments.
The iterator range is traversed more than once. If only one traversal is required use term_appl with a TermConverter argument. But this function is substantially less efficient. The length of the iterator range must match the arity of the function symbol.
sym | A function symbol. |
begin | The start of a range of elements. |
end | The end of a range of elements. |
Definition at line 94 of file aterm_appl.h.
|
inline |
Constructor that provides an aterm_appl based on a function symbol and an input iterator providing the arguments.
The given iterator is traversed only once. So it can be used with an input iterator. This means that the TermConverter is applied exactly once to each element. The length of the iterator range must be equal to the arity of the function symbol.
sym | A function symbol. |
begin | The start of a range of elements. |
end | The end of a range of elements. |
Definition at line 117 of file aterm_appl.h.
|
inline |
The given iterator is traversed only once. So it can be used with an input iterator. This means that the TermConverter is applied exactly once to each element. The length of the iterator range must be equal to the arity of the function symbol.
sym | A function symbol. |
begin | The start of a range of elements. |
end | The end of a range of elements. |
converter | An class or lambda term containing an operator Term operator()(const Term& t) which is applied to each each element in the iterator range before it becomes an argument of this term. |
Definition at line 139 of file aterm_appl.h.
|
inline |
|
inline |
Constructor for n-arity function application.
symbol | A function symbol. |
arguments | The arguments of the function application. |
Definition at line 164 of file aterm_appl.h.
|
inline |
Returns an iterator pointing to the first argument.
Definition at line 195 of file aterm_appl.h.
|
inline |
Returns true if the term has no arguments.
Definition at line 188 of file aterm_appl.h.
|
inline |
Returns a const_iterator pointing past the last argument.
Definition at line 202 of file aterm_appl.h.
|
inline |
Returns the function symbol belonging to an aterm_appl.
Definition at line 174 of file aterm_appl.h.
|
inlineconstexpr |
Returns the largest possible number of arguments.
Definition at line 209 of file aterm_appl.h.
|
defaultnoexcept |
|
defaultnoexcept |
|
inline |
Returns the i-th argument.
i | A positive integer. |
Definition at line 217 of file aterm_appl.h.
|
inline |
Returns the number of arguments of this term.
Definition at line 181 of file aterm_appl.h.