#include <sdbllist.hpp>
Inheritance diagram for SExpressionDoubleList:
The list is built off objects of the SExpressionBacklink class. This property of the implementation is visible and can even be useful in some cases.
Definition at line 42 of file sdbllist.hpp.
Public Member Functions | |
SExpressionDoubleList () | |
The default constructor creates an empty list. | |
SExpressionDoubleList (const SBacklinkRef &a_begin, const SBacklinkRef &a_end) | |
Construct the object from an existing chain of items. | |
const SBacklinkRef & | AddToBegin (const SReference &ref) |
Add an item to the head of the list. | |
const SBacklinkRef & | AddToEnd (const SReference &ref) |
Add an item to the tail of the list. | |
SBacklinkRef | GetBegin () const |
Get the first element's location. | |
SBacklinkRef | GetEnd () const |
Get the last element's location. | |
void | Exclude (const SBacklinkRef &from, const SBacklinkRef &thru) |
Exclude a sublist from the list. | |
void | InsertListAfter (const SBacklinkRef &from, const SBacklinkRef &left, const SBacklinkRef &right) |
Insert a linked chain of elements into the list. | |
virtual SString | TextRepresentation () const |
Text representation of the S-expression. | |
const IntelibTypeId & | TermType () const |
Actual S-expression type. | |
bool | IsChangeable () const |
Can it be changed during the lifetime of the object? | |
virtual SExpression * | Clone () const |
Clone a changeable object. | |
virtual bool | SpecificEql (const SExpression *) const |
Are the two objects EQL (while not EQ). | |
Public Attributes | |
class | Iterator |
Static Public Attributes | |
static IntelibTypeId | TypeId |
The type identifier. | |
Protected Member Functions | |
SExpressionDoubleList (const IntelibTypeId &t) | |
Constructor for derived types. | |
SExpressionDoubleList (const SBacklinkRef &a_begin, const SBacklinkRef &a_end, const IntelibTypeId &t) | |
~SExpressionDoubleList () | |
The destructor. | |
bool | CanDie () |
Is it OK to delete the object now? | |
Classes | |
class | Iterator |
Iterator for a doubly-linked list. More... |
|
Constructor for derived types.
Definition at line 46 of file sdbllist.hpp. |
|
Definition at line 47 of file sdbllist.hpp. |
|
The destructor.
Definition at line 52 of file sdbllist.hpp. |
|
The default constructor creates an empty list.
Definition at line 58 of file sdbllist.hpp. References TypeId. |
|
Construct the object from an existing chain of items.
Definition at line 67 of file sdbllist.hpp. References TypeId. |
|
Add an item to the head of the list.
Definition at line 27 of file sdbllist.cpp. References SBacklinkRef::GetPtr(), and PTheEmptyList. |
|
Add an item to the tail of the list.
Definition at line 40 of file sdbllist.cpp. References SBacklinkRef::GetPtr(), and SBacklinkRef::InsertAfter(). |
|
Get the first element's location.
Definition at line 77 of file sdbllist.hpp. |
|
Get the last element's location.
Definition at line 79 of file sdbllist.hpp. |
|
Exclude a sublist from the list. Parameters from and thru must point to somewhere inside the list, and the from must precede the thru, or else the result is undefined.
Definition at line 51 of file sdbllist.cpp. References SReference::IsEmptyList(). |
|
Insert a linked chain of elements into the list. Parameters left and right must point to ends of a linked chani (e.g., a chain excluded from somewhere with the Exclude() method). The chain is inserted into the list after the element pointed by the from parameter. If from is unbound, the chain is inserted into the head of the list.
Definition at line 70 of file sdbllist.cpp. References SReference::IsEmptyList(). |
|
Text representation of the S-expression. Returns the text string which represents the given S-expression as for real Lisp (for example, (25 36 49)) Implements SExpression. Definition at line 96 of file sdbllist.cpp. References SBacklinkRef::GetPtr(). |
|
Actual S-expression type.
Definition at line 195 of file sexpress.hpp. Referenced by SReference::DynamicCastGetPtr(), SchReference::IsEql(), LReference::IsEql(), SReference::SimpleCastGetPtr(), SchReference::TextRepresentation(), and LReference::TextRepresentation(). |
|
Can it be changed during the lifetime of the object?
Definition at line 198 of file sexpress.hpp. References IntelibTypeId::IsChangeable(). |
|
Clone a changeable object. The method should return the pointer created with new
Reimplemented in SExpressionBacklink, SExpressionCons, SExpressionHashTable, SExpressionRawBuffer, and SExpressionVector. Definition at line 214 of file sexpress.hpp. |
|
Are the two objects EQL (while not EQ). This function is overriden by those SExpressions able to be EQL while being not EQ.
Reimplemented in SExpressionInt, SExpressionFloat, SExpressionChar, and SExpressionString. Definition at line 235 of file sexpress.hpp. Referenced by SchReference::IsEql(), and LReference::IsEql(). |
|
Is it OK to delete the object now? Our children have no access to the private attribute RefCount and should never need it except when checking if the destruction is not an error. This solves the problem. Definition at line 53 of file refcount.hpp. |
|
The type identifier.
Reimplemented from SExpression. Referenced by SExpressionDoubleList(). |
|
Definition at line 111 of file sdbllist.hpp. |