#include <schcont.hpp>
Inheritance diagram for SchExpressionContext:
The class encapsulates Scheme lexical context.
Definition at line 58 of file schcont.hpp.
Public Member Functions | |
SchExpressionContext () | |
The default constructor creates an empty context. | |
SchExpressionContext (SchContextRef a_prev) | |
Creates one context ('inner one') atop of another ('outer'). | |
void | AddBinding (const SchExpressionSymbol *symb, const SReference &val) |
Bind the symbol to the value. | |
SReference * | GetBinding (const SchExpressionSymbol *symb) const |
Lookup for a binding. | |
SReference * | ProvideBinding (const SchExpressionSymbol *symb) |
Find or create a 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 | |
~SchExpressionContext () | |
bool | CanDie () |
Is it OK to delete the object now? |
|
The default constructor creates an empty context.
Definition at line 28 of file schcont.cpp. |
|
Creates one context ('inner one') atop of another ('outer').
Definition at line 32 of file schcont.cpp. |
|
Definition at line 36 of file schcont.cpp. |
|
Bind the symbol to the value.
Definition at line 39 of file schcont.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 schcont.cpp. References IntelibBindTable::GetBinding(), and GenericSReference< Tp, X_wrongtype >::GetPtr(). Referenced by ProvideBinding(). |
|
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 schcont.cpp. References IntelibBindTable::AddBinding(), and GetBinding(). |
|
Make a list of all bound symbols.
Definition at line 65 of file schcont.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. Definition at line 82 of file schcont.cpp. |
|
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. |