#include <squeue.hpp>
Inheritance diagram for SQueue:
This is in fact just a list for which a pointer to its last item is stored. The only gain is that the comma operation works faster for this class than for SReference. This class has to be 8 bytes long so you wouldn't pass it by value (heh, you CAN'T do it in this version because the copy constructor was intentionally made private).
In this version, direct assigning and copying of queues are prohibited. Copying can be emulated, however, by constructing SReference object and then an SQueue object from it. Rationale is that the user should realize what does he REALLY do.
Definition at line 50 of file squeue.hpp.
Public Member Functions | |
SQueue () | |
Just an empty queue. | |
SQueue (const SReference &ref) | |
Construct from existing list. | |
~SQueue () | |
Destructor. | |
void | InsertFirst (const SReference &item) |
Insert an item before all the resting queue. | |
void | Append (const SReference &item) |
Append another item to the queue (at the end). | |
bool | RemoveFirst () |
Remove the first item. | |
bool | IsEmpty () const |
Is the queue currently empty. | |
template<class Tp> | |
SQueue & | operator| (const Tp &t) |
Append another item. | |
template<class Tp> | |
SQueue & | operator, (const Tp &t) |
Append another item. | |
SExpressionCons * | GetPtr () const |
Get the address of the first cons in the queue. | |
SReference & | AddAnotherItemToList (const SReference &right) |
Add item to list. | |
SReference & | ChangeListEnd (const SReference &new_last) |
Make/change dotted list. | |
SReference | MakeCons (const SReference &right) const |
Make a cons. | |
SReference & | operator, (const SReference &r) |
List composing operation. | |
SReference & | operator|| (const SReference &t) |
dotted list composing operation | |
SReference | operator^ (const SReference &t) const |
CONS operation. | |
bool | operator== (const SReference &other) const |
Equality is just pointer comparision. | |
bool | operator== (const SExpression *other) const |
Equality is just pointer comparision. | |
bool | operator!= (const SReference &other) const |
Non-equality is just pointer comparision. | |
bool | operator!= (const SExpression *other) const |
Non-equality is just pointer comparision. | |
bool | IsEql (const SReference &other) const |
bool | IsEqual (const SReference &other) const |
SReference & | Car () const |
SReference & | Cdr () const |
SReference & | CCar () const |
SReference & | CCdr () const |
intelib_float_t | GetFloat () const |
intelib_integer_t | GetInt () const |
const char * | GetString () const |
char | GetSingleChar () const |
template<class Tp> | |
Tp * | DynamicCastGetPtr () const |
template<class Tp> | |
Tp * | SimpleCastGetPtr () const |
SReference | Clone () const |
SReference | CopyList () const |
SReference | CopyTree () const |
bool | IsEmptyList () const |
SExpression * | operator-> () const |
Field/method selection. | |
SExpression & | operator * () const |
Dereference. |
|
Just an empty queue.
Definition at line 23 of file squeue.cpp. References PTheEmptyList. |
|
Construct from existing list. This uses SReference::CopyList() to make a copy of the list. Be sure you are not copying too long data structures Definition at line 27 of file squeue.cpp. References SExpressionCons::Cdr(), SReference::DynamicCastGetPtr(), GetPtr(), SReference::IsEmptyList(), and SReference::operator=(). |
|
Destructor.
Definition at line 64 of file squeue.hpp. |
|
Insert an item before all the resting queue.
Definition at line 43 of file squeue.cpp. References IsEmpty(), and SReference::operator=(). |
|
Append another item to the queue (at the end).
Definition at line 52 of file squeue.cpp. References SExpressionCons::Cdr(), IsEmpty(), SReference::operator=(), and PTheEmptyList. Referenced by operator,(), and operator|(). |
|
Remove the first item.
Definition at line 64 of file squeue.cpp. References SReference::Cdr(), GetPtr(), IsEmpty(), and SReference::operator=(). Referenced by IntelibGenericReader::Drop(), and IntelibGenericReader::Get(). |
|
Is the queue currently empty.
Definition at line 73 of file squeue.hpp. References SReference::IsEmptyList(). Referenced by Append(), InsertFirst(), IntelibGenericReader::IsEmpty(), IntelibGenericReader::IsReady(), and RemoveFirst(). |
|
Append another item.
Definition at line 76 of file squeue.hpp. References Append(), and SReference::SReference(). |
|
Append another item.
Definition at line 80 of file squeue.hpp. References Append(), and SReference::SReference(). |
|
Get the address of the first cons in the queue.
Reimplemented from SReference. Definition at line 84 of file squeue.hpp. References SReference::GetPtr(). Referenced by RemoveFirst(), and SQueue(). |
|
Add item to list. For a list, adds another dotted pair to its end. For non-lists, the result is undefined. Referenced by SReference::operator,(). |
|
Make/change dotted list.
Referenced by SReference::operator||(). |
|
Make a cons. Produces a cons (dotted pair) using *this as the CAR and the given argument as the CDR Referenced by SReference::operator^(). |
|
List composing operation. Operator "," is used to construct lists naturally, like this: (L| 1, 2, 3)
Reimplemented in SBacklinkRef, SDoubleListRef, LReference, and SchReference. Definition at line 541 of file sexpress.hpp. References SReference::AddAnotherItemToList(). Referenced by SchReference::operator,(), and LReference::operator,(). |
|
dotted list composing operation Operator "||" is used to construct dotted lists, like this: ((L| 1, 2, 3) || 4) // (1 2 3 . 4)
Reimplemented in LReference, and SchReference. Definition at line 548 of file sexpress.hpp. References SReference::ChangeListEnd(). Referenced by SchReference::operator||(), and LReference::operator||(). |
|
CONS operation. Operator "^" is used to produce conses Definition at line 552 of file sexpress.hpp. References SReference::MakeCons(). |
|
Equality is just pointer comparision.
Definition at line 556 of file sexpress.hpp. References SReference::GetPtr(). |
|
Equality is just pointer comparision.
Definition at line 562 of file sexpress.hpp. References SReference::GetPtr(). |
|
Non-equality is just pointer comparision.
Definition at line 559 of file sexpress.hpp. References SReference::GetPtr(). |
|
Non-equality is just pointer comparision.
Definition at line 565 of file sexpress.hpp. References SReference::GetPtr(). |
|
Reimplemented in LReference, and SchReference. Referenced by SExprsAreEql(). |
|
Reimplemented in LReference, and SchReference. Referenced by SExprsAreEqual(). |
|
Referenced by LExpressionMacro::Call(), SDoubleListRange::Copy(), IntelibGenericReader::Get(), RetrieveFunctionObject(), and stack_representation(). |
|
Referenced by LExpressionMacro::Call(), SBacklinkRef::Remove(), RemoveFirst(), RetrieveFunctionObject(), and stack_representation(). |
|
|
|
|
|
Referenced by SExpressionIndirectTemplate< Tt >::Setf(). |
|
Referenced by SExpressionIndirectTemplate< Tt >::Setf(). |
|
Referenced by SExpressionIndirectTemplate< Tt >::Setf(). |
|
|
|
|
Definition at line 695 of file sexpress.hpp. References SReference::GetPtr(), and SExpression::TermType(). |
|
Referenced by SExpressionVector::Clone(), and SExpressionHashTable::Clone(). |
|
|
|
|
|
|
|