My Project
|
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... | |
Private Types | |
typedef LeftvDeep | self |
Access via shallow copy to avoid invalidating the stored handle | |
leftv | m_data |
Store the actual data. More... | |
operator LeftvShallow () | |
Store the actual data. More... | |
LeftvShallow | operator* () |
Store the actual 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... | |
Do not permit copying (avoid inconsistence) | |
self & | operator= (const self &) |
Allocate all-zero object by default. More... | |
LeftvDeep (const self &) | |
Allocate all-zero object by default. More... | |
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) | |
Allocate all-zero object by default. More... | |
~LeftvDeep () | |
Really clear data. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from LeftvHelper | |
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.
|
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 |
Determine whether we point to the same data.
Definition at line 370 of file countedref.h.
|
inline |
|
inline |
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 identifierDefinition 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.