|
mCRL2
|
A list of aterm objects. More...
#include <aterm_list.h>
Public Types | |
| using | value_type = Term |
| The type of object, T stored in the term_list. | |
| using | pointer = Term * |
| Pointer to T. | |
| using | reference = Term & |
| Reference to T. | |
| using | const_reference = const Term & |
| Const reference to T. | |
| using | size_type = std::size_t |
| An unsigned integral type. | |
| using | difference_type = ptrdiff_t |
| A signed integral type. | |
| using | iterator = term_list_iterator< Term > |
| Iterator used to iterate through an term_list. | |
| using | const_iterator = term_list_iterator< Term > |
| Const iterator used to iterate through an term_list. | |
| using | const_reverse_iterator = reverse_term_list_iterator< Term > |
| Const iterator used to iterate through an term_list. | |
Public Types inherited from atermpp::aterm | |
| using | size_type = std::size_t |
| An unsigned integral type. | |
| using | difference_type = ptrdiff_t |
| A signed integral type. | |
| using | iterator = term_appl_iterator< aterm > |
| Iterator used to iterate through an term_appl. | |
| using | const_iterator = term_appl_iterator< aterm > |
| Const iterator used to iterate through an term_appl. | |
Public Member Functions | |
| term_list () noexcept | |
| Default constructor. Creates an empty list. | |
| term_list (const aterm &t) noexcept | |
| Constructor from an aterm. | |
| term_list (const term_list< Term > &t) noexcept | |
| Copy constructor. | |
| term_list (term_list< Term > &&t) noexcept | |
| Move constructor. | |
| term_list & | operator= (const term_list &other) noexcept=default |
| This class has user-declared copy constructor so declare copy and move assignment. | |
| term_list & | operator= (term_list &&other) noexcept=default |
| template<class Iter > requires std::is_base_of_v<std::bidirectional_iterator_tag, typename std::iterator_traits<Iter>::iterator_category> | |
| term_list (Iter first, Iter last) | |
| Creates a term_list with the elements from first to last. | |
| template<class Iter , class ATermConverter > requires std::is_base_of_v<std::bidirectional_iterator_tag, typename std::iterator_traits<Iter>::iterator_category> | |
| term_list (Iter first, Iter last, const ATermConverter &convert_to_aterm) | |
| Creates a term_list with the elements from first to last converting the elements before inserting. | |
| template<class Iter , class ATermConverter , class ATermFilter > requires std::is_base_of_v<std::bidirectional_iterator_tag, typename std::iterator_traits<Iter>::iterator_category> | |
| term_list (Iter first, Iter last, const ATermConverter &convert_to_aterm, const ATermFilter &aterm_filter) | |
| Creates a term_list with the elements from first to last, converting and filtering the list. | |
| template<class Iter > requires (!std::is_base_of_v<std::bidirectional_iterator_tag, typename std::iterator_traits<Iter>::iterator_category>) | |
| term_list (Iter first, Iter last) | |
| Creates a term_list from the elements from first to last. | |
| template<class Iter , class ATermConverter > requires (!std::is_base_of_v<std::bidirectional_iterator_tag, typename std::iterator_traits<Iter>::iterator_category>) | |
| term_list (Iter first, Iter last, const ATermConverter &convert_to_aterm) | |
| Creates a term_list from the elements from first to last converting the elements before inserting. | |
| template<class Iter , class ATermConverter , class ATermFilter > requires (!std::is_base_of_v<std::bidirectional_iterator_tag, typename std::iterator_traits<Iter>::iterator_category>) | |
| term_list (Iter first, Iter last, const ATermConverter &convert_to_aterm, const ATermFilter &aterm_filter) | |
| Creates a term_list from the elements from first to last converting and filtering the elements before inserting. | |
| template<std::ranges::range R> requires std::is_convertible_v<std::ranges::range_value_t<R>, Term> | |
| term_list (R &&r) | |
| Creates a term_list from the elements in the range. | |
| term_list (std::initializer_list< Term > init) | |
| A constructor based on an initializer list. | |
| const term_list< Term > & | tail () const |
| Returns the tail of the list. | |
| void | pop_front () |
| Removes the first element of the list. | |
| const Term & | front () const |
| Returns the first element of the list. | |
| void | push_front (const Term &el) |
| Inserts a new element at the beginning of the current list. | |
| template<typename ... Args> | |
| void | emplace_front (Args &&... arguments) |
| Construct and insert a new element at the beginning of the current list. | |
| size_type | size () const |
| Returns the size of the term_list. | |
| bool | empty () const |
| Returns true if the list's size is 0. | |
| const_iterator | begin () const |
| Returns a const_iterator pointing to the beginning of the term_list. | |
| const_iterator | end () const |
| Returns a const_iterator pointing to the end of the term_list. | |
| const_reverse_iterator | rbegin () const |
| Returns a const_reverse_iterator pointing to the end of the term_list. | |
| const_reverse_iterator | rend () const |
| Returns a const_iterator pointing to the end of the term_list. | |
| size_type | max_size () const |
| Returns the largest possible size of the term_list. | |
Public Member Functions inherited from atermpp::aterm | |
| aterm () | |
| Default constructor. | |
| aterm (const aterm &other) noexcept=default | |
| This class has user-declared copy constructor so declare default copy and move operators. | |
| aterm & | operator= (const aterm &other) noexcept=default |
| aterm (aterm &&other) noexcept=default | |
| aterm & | operator= (aterm &&other) noexcept=default |
| template<class ForwardIterator > requires (mcrl2::utilities::is_iterator<ForwardIterator>::value && !std::is_same_v<typename ForwardIterator::iterator_category, std::input_iterator_tag> && !std::is_same_v<typename ForwardIterator::iterator_category, std::output_iterator_tag>) | |
| aterm (const function_symbol &sym, ForwardIterator begin, ForwardIterator end) | |
| Constructor that provides an aterm based on a function symbol and forward iterator providing the arguments. | |
| template<class InputIterator > requires mcrl2::utilities::is_iterator<InputIterator> | |
| aterm (const function_symbol &sym, InputIterator begin, InputIterator end) | |
| Constructor that provides an aterm based on a function symbol and an input iterator providing the arguments. | |
| template<class InputIterator , class TermConverter > requires mcrl2::utilities::is_iterator<InputIterator> | |
| aterm (const function_symbol &sym, InputIterator begin, InputIterator end, TermConverter converter) | |
| Constructor. | |
| template<typename... Terms> | |
| aterm (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. | |
| 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 aterm & | operator[] (const size_type i) const |
| Returns the i-th argument. | |
Public Member Functions inherited from atermpp::aterm_core | |
| aterm_core () noexcept | |
| Default constructor. | |
| ~aterm_core () noexcept | |
| Standard destructor. | |
| aterm_core (const detail::_aterm *t) noexcept | |
| Constructor based on an internal term data structure. This is not for public use. | |
| aterm_core (const aterm_core &other) noexcept | |
| Copy constructor. | |
| aterm_core (aterm_core &&other) noexcept | |
| Move constructor. | |
| aterm_core & | operator= (const aterm_core &other) noexcept |
| Assignment operator. | |
| aterm_core & | assign (const aterm_core &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_core & | unprotected_assign (const aterm_core &other) noexcept |
| Assignment operator, to be used when the busy flags do not need to be set. | |
| aterm_core & | operator= (aterm_core &&other) noexcept |
| Move assignment operator. | |
Public Member Functions inherited from atermpp::unprotected_aterm_core | |
| unprotected_aterm_core () noexcept | |
| Default constuctor. | |
| unprotected_aterm_core (const detail::_aterm *term) noexcept | |
| Constructor. | |
| bool | type_is_appl () const noexcept |
| Dynamic check whether the term is an aterm. | |
| 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_core &t) const |
| Comparison operator. | |
| std::weak_ordering | operator<=> (const unprotected_aterm_core &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, aterm_appls and aterm_int. | |
| void | swap (unprotected_aterm_core &t) noexcept |
| Swaps this term with its argument. | |
| const function_symbol & | function () const |
| Yields the function symbol in an aterm. | |
Protected Member Functions | |
| term_list (detail::_aterm_appl<> *t) noexcept | |
| Constructor for term lists from internally constructed terms delivered as reference. | |
Protected Member Functions inherited from atermpp::aterm | |
| aterm (detail::_term_appl *t) | |
| Constructor. | |
Additional Inherited Members | |
Protected Attributes inherited from atermpp::unprotected_aterm_core | |
| const detail::_aterm * | m_term |
A list of aterm objects.
Definition at line 25 of file aterm_list.h.
| using atermpp::term_list< Term >::const_iterator = term_list_iterator<Term> |
Const iterator used to iterate through an term_list.
Definition at line 57 of file aterm_list.h.
| using atermpp::term_list< Term >::const_reference = const Term& |
Const reference to T.
Definition at line 45 of file aterm_list.h.
| using atermpp::term_list< Term >::const_reverse_iterator = reverse_term_list_iterator<Term> |
Const iterator used to iterate through an term_list.
Definition at line 60 of file aterm_list.h.
| using atermpp::term_list< Term >::difference_type = ptrdiff_t |
A signed integral type.
Definition at line 51 of file aterm_list.h.
| using atermpp::term_list< Term >::iterator = term_list_iterator<Term> |
Iterator used to iterate through an term_list.
Definition at line 54 of file aterm_list.h.
| using atermpp::term_list< Term >::pointer = Term* |
Pointer to T.
Definition at line 39 of file aterm_list.h.
| using atermpp::term_list< Term >::reference = Term& |
Reference to T.
Definition at line 42 of file aterm_list.h.
| using atermpp::term_list< Term >::size_type = std::size_t |
An unsigned integral type.
Definition at line 48 of file aterm_list.h.
| using atermpp::term_list< Term >::value_type = Term |
The type of object, T stored in the term_list.
Definition at line 36 of file aterm_list.h.
|
inlineexplicitprotectednoexcept |
Constructor for term lists from internally constructed terms delivered as reference.
Definition at line 29 of file aterm_list.h.
|
inlinenoexcept |
Default constructor. Creates an empty list.
Definition at line 63 of file aterm_list.h.
|
inlineexplicitnoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlineexplicit |
Creates a term_list with the elements from first to last.
It is assumed that the range can be traversed from last to first.
| first | The start of a range of elements. |
| last | The end of a range of elements. |
Definition at line 102 of file aterm_list.h.
|
inlineexplicit |
Creates a term_list with the elements from first to last converting the elements before inserting.
It is assumed that the range can be traversed from last to first. The operator () in the class ATermConverter is applied to each element before inserting it in the list.
| first | The start of a range of elements. |
| last | The end of a range of elements. |
| convert_to_aterm | A class with a () operation, which is applied to each element before it is put into the list. |
Definition at line 121 of file aterm_list.h.
|
inlineexplicit |
Creates a term_list with the elements from first to last, converting and filtering the list.
It is assumed that the range can be traversed from last to first. The operator () in the class ATermConverter is applied to each element before inserting it in the list. Elements are only inserted if the operator () of the class ATermFilter yields true when applied to such an element.
| first | The start of a range of elements. |
| last | The end of a range of elements. |
| convert_to_aterm | A class with a () operation, which is applied to each element before it is put into the list. |
| aterm_filter | A class with an operator () that yields a bool, and if true the elements is inserted in the list. Otherwise, it is ignored. |
Definition at line 142 of file aterm_list.h.
|
inlineexplicit |
Creates a term_list from the elements from first to last.
The range is traversed from first to last. This requires to copy the elements internally, which is less efficient than this function with random access iterators as arguments.
| first | The start of a range of elements. |
| last | The end of a range of elements. |
Definition at line 163 of file aterm_list.h.
|
inlineexplicit |
Creates a term_list from the elements from first to last converting the elements before inserting.
The range is traversed from first to last. This requires to copy the elements internally, which is less efficient than this function with random access iterators as arguments. The operator () in the class ATermConverter is applied to each element before inserting it in the list.
| first | The start of a range of elements. |
| last | The end of a range of elements. |
| convert_to_aterm | A class with a () operation, whic is applied to each element before it is put into the list. |
Definition at line 185 of file aterm_list.h.
|
inlineexplicit |
Creates a term_list from the elements from first to last converting and filtering the elements before inserting.
The range is traversed from first to last. This requires to copy the elements internally, which is less efficient than this function with random access iterators as arguments. The operator () in the class ATermConverter is applied to each element before inserting it in the list. Elements are only inserted if the operator () of the class ATermFilter yields true when applied to such an element.
| first | The start of a range of elements. |
| last | The end of a range of elements. |
| convert_to_aterm | A class with a () operation, whic is applied to each element before it is put into the list. |
| aterm_filter | A class with an operator () yielding a bool that if true allows the element to be added to the list. Otherwise, the element is not added. |
Definition at line 209 of file aterm_list.h.
|
inlineexplicit |
Creates a term_list from the elements in the range.
Definition at line 222 of file aterm_list.h.
|
inline |
A constructor based on an initializer list.
This constructor is not made explicit to conform to initializer lists in standard containers.
| init | The initialiser list. |
Definition at line 232 of file aterm_list.h.
|
inline |
Returns a const_iterator pointing to the beginning of the term_list.
Definition at line 293 of file aterm_list.h.
| void atermpp::term_list< Term >::emplace_front | ( | Args &&... | arguments | ) |
Construct and insert a new element at the beginning of the current list.
| el | The term that is added. |
Definition at line 36 of file aterm_list_implementation.h.
|
inline |
Returns true if the list's size is 0.
Definition at line 286 of file aterm_list.h.
|
inline |
Returns a const_iterator pointing to the end of the term_list.
Definition at line 300 of file aterm_list.h.
|
inline |
Returns the first element of the list.
Definition at line 257 of file aterm_list.h.
|
inline |
Returns the largest possible size of the term_list.
Definition at line 322 of file aterm_list.h.
|
defaultnoexcept |
This class has user-declared copy constructor so declare copy and move assignment.
|
defaultnoexcept |
|
inline |
Removes the first element of the list.
Definition at line 250 of file aterm_list.h.
| void atermpp::term_list< Term >::push_front | ( | const Term & | el | ) |
Inserts a new element at the beginning of the current list.
The length of a short list. If lists are short the stack can be used for temporary data. Otherwise the heap must be used to avoid stack overflow. The chosen value is rather arbitrary.
| el | The term that is added. |
Definition at line 29 of file aterm_list_implementation.h.
|
inline |
Returns a const_reverse_iterator pointing to the end of the term_list.
This operator requires linear time and memory in the size of the list to yield the iterator.
Definition at line 308 of file aterm_list.h.
|
inline |
Returns a const_iterator pointing to the end of the term_list.
Definition at line 315 of file aterm_list.h.
|
inline |
Returns the size of the term_list.
The complexity of this function is linear in the size of the list.
Definition at line 274 of file aterm_list.h.
|
inline |
Returns the tail of the list.
Definition at line 243 of file aterm_list.h.