#include <lispform.hpp>
Inheritance diagram for SExpressionFunction:
An S-expression which can be applied to a number of arguments what are to be evaluated before the function is actually called. A function is created defining a child class of SExpressionFunction in which the DoApply method is to be specified as the method which performs the evaluation. If text representations are enabled, then the TextRepresentation method is to be specified as well as it is left pure virtual by this class.
Definition at line 39 of file lispform.hpp.
Public Member Functions | |
SExpressionFunction (int min, int max) | |
void | Apply (int paramc, const SReference *paramv, IntelibContinuation &cont) 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 class SString | TextRepresentation () const =0 |
Text representation of the S-expression. | |
virtual bool | SpecificEql (const SExpression *) const |
Are the two objects EQL (while not EQ). | |
Static Public Attributes | |
static IntelibTypeId | TypeId |
Identifier for the set of all possible S-expressions. | |
Protected Member Functions | |
SExpressionFunction (const IntelibTypeId &id, int min, int max) | |
virtual | ~SExpressionFunction () |
virtual void | DoApply (int paramc, const SReference *paramv, IntelibContinuation &cont) const =0 |
bool | CanDie () |
Is it OK to delete the object now? | |
Protected Attributes | |
int | min_param |
int | max_param |
|
Definition at line 44 of file lispform.hpp. |
|
Definition at line 47 of file lispform.hpp. |
|
Definition at line 49 of file lispform.hpp. |
|
Definition at line 24 of file lispform.cpp. |
|
Implemented in LExpressionLambda, LExpressionUserCFunction, and SchExpressionLambda. Referenced by Apply(). |
|
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. |
|
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)) Implemented in SExpressionDoubleList, SExpressionInt, SExpressionFloat, SExpressionChar, SExpressionString, SExpressionClassicAtom, SExpressionLabel, SExpressionCons, SExpressionHashTable, SExpressionLocation, SExpressionRawBuffer, SExpressionVector, SExpressionWrapper< Data >, SExpressionIndirect, SExpressionIndirectAccessor, LExpressionContext, LExpressionLambda, LExpressionMacro, LExpressionUserCFunction, SchExpressionContext, and SchExpressionLambda. Referenced by SExpressionVector::TextRepresentation(), SchReference::TextRepresentation(), and LReference::TextRepresentation(). |
|
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. |
|
Definition at line 41 of file lispform.hpp. Referenced by Apply(), and SExpressionFunction(). |
|
Definition at line 41 of file lispform.hpp. Referenced by Apply(), and SExpressionFunction(). |
|
Identifier for the set of all possible S-expressions.
Reimplemented from SExpression. Reimplemented in LExpressionLambda, LExpressionUserCFunction, and SchExpressionLambda. Referenced by SExpressionFunction(). |