10#ifndef MCRL2_ATERMPP_FUNCTION_SYMBOL_H
11#define MCRL2_ATERMPP_FUNCTION_SYMBOL_H
20class function_symbol_pool;
58 const std::string&
name()
const
A foundational class for function symbols.
This is the class to which an aterm points.
This class stores a set of function symbols.
Generates unique function symbols with a given prefix.
bool operator!=(const function_symbol &f) const
Inequality test.
function_symbol(const std::string &name, const std::size_t arity_)
Defines a function symbol from a name and arity combination.
function_symbol & operator=(const function_symbol &other) noexcept=default
function_symbol(function_symbol &&other) noexcept=default
bool operator>=(const function_symbol &f) const
Comparison operation.
bool operator==(const function_symbol &f) const
Equality test.
function_symbol(detail::_function_symbol::ref &&f)
Constructor for internal use only.
bool operator<(const function_symbol &f) const
Comparison operation.
function_symbol(const function_symbol &other) noexcept=default
This class has non-trivial destructor so declare default copy and move operators.
void destroy()
Calls the function symbol pool to free our used memory.
void swap(function_symbol &f)
Swap this function with its argument.
function_symbol & operator=(function_symbol &&other) noexcept=default
std::size_t arity() const
Return the arity (number of arguments) of the function symbol (function_symbol).
function_symbol(std::string &&name, const std::size_t arity_)
Defines a function symbol from a name and arity combination.
detail::_function_symbol::ref m_function_symbol
The shared reference to the underlying function symbol.
const std::string & name() const
Return the name of the function_symbol.
bool operator>(const function_symbol &f) const
Comparison operation.
function_symbol()=default
bool operator<=(const function_symbol &f) const
Comparison operation.
bool defined() const
Check whether the shared_reference has a valid reference.
function_symbol g_as_empty_list
function_symbol g_as_list
function_symbol g_as_int
These function symbols are used to indicate integer, list and empty list terms.
The main namespace for the aterm++ library.
void swap(atermpp::unprotected_aterm_core &t1, atermpp::unprotected_aterm_core &t2) noexcept
Swaps two aterms.