#include <lcont.hpp>
Inheritance diagram for LExpressionContext:
The class encapsulates lisp-specific lexical context.
Definition at line 52 of file lcont.hpp.
Public Member Functions | |
LExpressionContext () | |
Default constructor makes an empty context. | |
LExpressionContext (LContextRef a_prev) | |
Makes a context atop of an existing context. | |
void | AddBinding (const LExpressionSymbol *symb, const SReference &val) |
Bind the symbol to the value. | |
SReference * | GetBinding (const LExpressionSymbol *symb) const |
Lookup for a binding. | |
SReference * | ProvideBinding (const LExpressionSymbol *symb) |
Find or create a binding. | |
void | AddFunBinding (const LExpressionSymbol *symb, const SReference &val) |
Associate a function with a symbol in the lexical manner. | |
SReference * | GetFunBinding (const LExpressionSymbol *symb) const |
Lookup for a functional binding. | |
SReference * | ProvideFunBinding (const LExpressionSymbol *symb) |
Find or create a functional binding. | |
SReference | GetAllSymbols () const |
Make a list of all bound symbols. | |
virtual class 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). | |
Static Public Attributes | |
static IntelibTypeId | TypeId |
The type identifier. | |
Protected Member Functions | |
~LExpressionContext () | |
bool | CanDie () |
Is it OK to delete the object now? |
|
Default constructor makes an empty context.
|
|
Makes a context atop of an existing context.
|
|
|
|
Bind the symbol to the value.
Definition at line 39 of file lcont.cpp. References IntelibBindTable::AddBinding(). |
|
Lookup for a binding. Find the appropriate binding and return a pointer to its value-storing slot. In case no binding is found, return NULL Definition at line 46 of file lcont.cpp. References IntelibBindTable::GetBinding(), and GenericSReference< Tp, X_wrongtype >::GetPtr(). Referenced by ProvideBinding(), and ProvideFunBinding(). |
|
Find or create a binding. Find the appropriate binding and return a pointer to its value-storing slot. In case no binding is found, create it and return the pointer. Definition at line 58 of file lcont.cpp. References IntelibBindTable::AddBinding(), and GetBinding(). |
|
Associate a function with a symbol in the lexical manner.
Definition at line 65 of file lcont.cpp. References IntelibBindTable::AddBinding(). |
|
Lookup for a functional binding. Find the appropriate functional binding and return a pointer to its value-storing slot. In case no binding is found, return NULL Definition at line 72 of file lcont.cpp. References IntelibBindTable::GetBinding(), and GenericSReference< Tp, X_wrongtype >::GetPtr(). |
|
Find or create a functional binding. Find the appropriate functionall binding and return a pointer to its value-storing slot. In case no binding is found, create it and return the pointer. Definition at line 84 of file lcont.cpp. References IntelibBindTable::AddBinding(), and GetBinding(). |
|
Make a list of all bound symbols.
Definition at line 92 of file lcont.cpp. References IntelibBindTable::Iterator::GetNext(), GenericSReference< Tp, X_wrongtype >::GetPtr(), and PTheEmptyList. |
|
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. |
|
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. |