#include <schsymb.hpp>
Inheritance diagram for SchExpressionSymbol:
In Scheme, the symbol is only associated with one value, be it a data expression or a function. Although in Scheme there's no global/dynamic values (such as in Lisp), in InteLib Scheme the "root lexical environment" is implemented storing the values within the symbol objects, just like in Lisp.
Definition at line 36 of file schsymb.hpp.
Public Member Functions | |
SchExpressionSymbol (const char *a_name) | |
The simple constructor. | |
const SReference & | GetGlobalValue () const |
Get the global value of the symbol. | |
SReference & | GetGlobalValue () |
Get the location of the global value. | |
void | SetGlobalValue (const SReference &val) |
Set the global value of the symbol. | |
virtual SString | TextRepresentation () const |
Text representation of the S-expression. | |
const char * | GetName () const |
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 | |
SchExpressionSymbol (const char *a_name, const IntelibTypeId &t) | |
The constructor for derived types. | |
~SchExpressionSymbol () | |
bool | CanDie () |
Is it OK to delete the object now? |
|
The constructor for derived types.
Definition at line 40 of file schsymb.hpp. |
|
Definition at line 42 of file schsymb.hpp. |
|
The simple constructor.
Definition at line 48 of file schsymb.hpp. References TypeId. |
|
Get the global value of the symbol.
Definition at line 52 of file schsymb.hpp. |
|
Get the location of the global value.
Definition at line 54 of file schsymb.hpp. |
|
Set the global value of the symbol.
Definition at line 56 of file schsymb.hpp. |
|
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 440 of file sexpress.hpp. Referenced by SExpressionHashPackage::Import(). |
|
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 SExpressionLabel. Referenced by SchExpressionSymbol(). |