#include <lisp.hpp>
Inheritance diagram for LReference:
This class only differs from SReference in that is has evaluation-related functions, the operator~(), the IsTrue(), IsEql() and IsEqual() functions.
Definition at line 46 of file lisp.hpp.
Public Member Functions | |
LReference () | |
Default constructor creates an unbound reference. | |
LReference (const LReference &ref) | |
Copy constructor. | |
LReference (const SReference &ref) | |
Cast constructor. | |
LReference (SExpression *p) | |
Cast from a plain pointer. | |
LReference (UserLispFunction fun) | |
Cast from UserLispFunction. | |
template<class X> | |
LReference (X &x) | |
template<class X> | |
LReference (const X &x) | |
~LReference () | |
LReference | Evaluate () const |
Evaluate the expression. | |
LReference | Evaluate (class LispContinuation &within) const |
Evaluate the expression within an existing machine. | |
bool | IsTrue () const |
Is the object 'true' in the sence of Lisp. | |
LReference & | operator, (const SReference &ref) |
Add another element to list. | |
LReference & | operator|| (const SReference &ref) |
Set the cdr of the last pair of list. | |
LReference | operator~ () const |
Make the list (QUOTE *this). | |
bool | IsEql (const SReference &other) const |
Is the object EQL (in the sence of CL) to the other. | |
bool | IsEqual (const SReference &other) const |
Is the object EQUAL (in the sence of CL) to the other. | |
SString | TextRepresentation () const |
Text representation. | |
SExpression * | GetPtr () const |
Get a plain pointer. | |
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 &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. | |
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. |
|
Default constructor creates an unbound reference.
Definition at line 49 of file lisp.hpp. Referenced by IsEqual(), operator~(), and TextRepresentation(). |
|
Copy constructor.
|
|
Cast constructor.
|
|
Cast from a plain pointer.
|
|
Cast from UserLispFunction.
|
|
|
|
|
|
|
|
Evaluate the expression. This method creates a local object of LispContinuation and uses it to evaluate the expression. Consider it as a top-level form evaluation |
|
Evaluate the expression within an existing machine. The given LispContinuation's state is marked; then, the object is used to evaluate the expression (that is, *this is scheduled to be evaluated within that LispContinuation object, and the evaluation is launched to run until the marked state is reached again).
|
|
Is the object 'true' in the sence of Lisp. Returns false in case the object stores the same pointer as PTheLispBooleanFalse variable does; otherwise, returns true. Definition at line 128 of file lisp.hpp. References SReference::GetPtr(), and PTheLispBooleanFalse. |
|
Add another element to list.
Reimplemented from SReference. Definition at line 91 of file lisp.hpp. References SReference::operator,(). |
|
Set the cdr of the last pair of list.
Reimplemented from SReference. Definition at line 95 of file lisp.hpp. References SReference::operator||(). |
|
Make the list (QUOTE *this).
Definition at line 131 of file lisp.hpp. References LReference(), PTheEmptyList, PTheLispSymbolQuote, and SReference::SReference(). |
|
Is the object EQL (in the sence of CL) to the other.
Reimplemented from SReference. Definition at line 43 of file lisp.cpp. References SReference::GetPtr(), SExpression::SpecificEql(), and SExpression::TermType(). Referenced by IsEqual(). |
|
Is the object EQUAL (in the sence of CL) to the other.
Reimplemented from SReference. Definition at line 51 of file lisp.cpp. References SExpressionCons::Car(), SExpressionCons::Cdr(), IsEql(), and LReference(). |
|
Text representation. This version differs from SExpression::TextRepresentation() in that it handles the QUOTE and FUNCTION forms Definition at line 71 of file lisp.cpp. References SExpressionCons::Car(), SExpressionCons::Cdr(), SExpressionCons::CoreTextRepresentation(), SReference::GetPtr(), SReference::IsEmptyList(), LReference(), PTheLispSymbolFunction, PTheLispSymbolQuote, SExpression::TermType(), and SExpression::TextRepresentation(). |
|
|
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^(). |
|
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(). |
|
Referenced by LExpressionMacro::Call(), SDoubleListRange::Copy(), IntelibGenericReader::Get(), RetrieveFunctionObject(), and stack_representation(). |
|
Referenced by LExpressionMacro::Call(), SBacklinkRef::Remove(), SQueue::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(). |
|
|
|
|
|
|
|