![]() |
This class wraps leftv
by taking into acount memory allocation, destruction as well as deeply copying of a given leftv
, i.e.
More...
#include <countedref.h>
Data Structures | |
struct | copy_tag |
Construct even deeper copy: Skip identifier (if any) and take care of the data on our own. More... | |
Public Member Functions | |
LeftvDeep () | |
Allocate all-zero object by default. More... | |
LeftvDeep (leftv data) | |
Store a deep copy of the data @ note Occupies the provided leftv and invalidates the latter. More... | |
LeftvDeep (leftv data, copy_tag) | |
~LeftvDeep () | |
Really clear data. More... | |
bool | like (const self &rhs) const |
Determine whether we point to the same data. More... | |
self & | operator= (leftv rhs) |
Reassign a new deep copy by occupieing another leftv . More... | |
BOOLEAN | brokenid (idhdl context) const |
Check a given context for our identifier. More... | |
BOOLEAN | put (leftv result) |
Put a shallow copy to given leftv . More... | |
BOOLEAN | retrieve (leftv res) |
Get additional data (e.g. subexpression data) from likewise instances. More... | |
BOOLEAN | isid () const |
Check for being an identifier. More... | |
BOOLEAN | ringed () |
Test whether we reference to ring-dependent data. More... | |
BOOLEAN | unassigned () const |
Check whether (all-zero) initialized data was never assigned. More... | |
leftv | idify (idhdl *root) |
Wrap data by identifier, if not done yet. More... | |
void | clearid (idhdl *root) |
Erase identifier handles by *this . More... | |
Access via shallow copy to avoid invalidating the stored handle | |
operator LeftvShallow () | |
LeftvShallow | operator* () |
Private Types | |
typedef LeftvDeep | self |
Private Member Functions | |
Do not permit copying (avoid inconsistence) | |
self & | operator= (const self &) |
LeftvDeep (const self &) | |
Private Attributes | |
leftv | m_data |
Store the actual data. More... | |
Additional Inherited Members | |
![]() | |
static leftv | idify (leftv head, idhdl *root) |
static idhdl | newid (leftv head, idhdl *root) |
static void | clearid (idhdl handle, idhdl *root) |
template<class Type > | |
static Type * | cpy (Type *result, Type *data) |
template<class Type > | |
static Type * | cpy (Type *data) |
template<class Type > | |
static Type * | recursivecpy (Type *data) |
template<class Type > | |
static Type * | shallowcpy (Type *result, Type *data) |
template<class Type > | |
static Type * | shallowcpy (Type *data) |
template<class Type > | |
static void | recursivekill (Type *current) |
static leftv | allocate () |
This class wraps leftv
by taking into acount memory allocation, destruction as well as deeply copying of a given leftv
, i.e.
we also take over ownership of the leftv
data.
We have two variants:
leftv
on input. Definition at line 334 of file countedref.h.
struct LeftvDeep::copy_tag |
Construct even deeper copy: Skip identifier (if any) and take care of the data on our own.
Definition at line 357 of file countedref.h.
|
private |
Definition at line 336 of file countedref.h.
|
inline |
|
inline |
Store a deep copy of the data @ note Occupies the provided leftv
and invalidates the latter.
Definition at line 350 of file countedref.h.
Definition at line 358 of file countedref.h.
|
inline |
Check a given context for our identifier.
Definition at line 389 of file countedref.h.
|
inline |
Erase identifier handles by *this
.
idify
. Definition at line 442 of file countedref.h.
|
inline |
|
inline |
Definition at line 365 of file countedref.h.
|
inline |
Definition at line 366 of file countedref.h.
Reassign a new deep copy by occupieing another leftv
.
*this
in the first Definition at line 374 of file countedref.h.
Put a shallow copy to given leftv
.
attrib
should read the attributes of the identifier Definition at line 396 of file countedref.h.
Get additional data (e.g. subexpression data) from likewise instances.
Definition at line 414 of file countedref.h.
|
inline |
|
inline |
Check whether (all-zero) initialized data was never assigned.
Definition at line 430 of file countedref.h.
|
private |
Store the actual data.
Definition at line 450 of file countedref.h.