Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members

sexpress.hpp File Reference


Detailed Description

The basic S-expression types and methods.

The most notable things defined in this file are probably the SReference class which is the main interface to the S-expression model provided by InteLib; the SExpression abstract class which is the common ancestor of all the S-expressions; and the classes SExpressionInt, SExpressionFloat, SExpressionString, SExpressionLabel and SExpressionCons, which represent basic atomic S-expression types as well as the Cons (from which all lists are built).

Definition in file sexpress.hpp.

#include "refcount.hpp"

Include dependency graph for sexpress.hpp:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define INTELIB_INTEGER_T   int
 Integer type to be used by InteLib.
#define INTELIB_FLOAT_T   float
 Floating point number type to be used by InteLib.
#define INTELIB_SIMPLE_STRING_LIMIT   sizeof(char*)
 String has room for this many chars; arrays are allocated for longer.
#define INTELIB_TEXT_REPRESENTATIONS   1
 Whether InteLib supports text representations of S-expressions.
#define INTELIB_INTEGER_FORMAT   "%d"
 How should sprintf() be called to make represetnation of an integer.
#define INTELIB_FLOAT_FORMAT   "%f"
 How should sprintf() be called to make represetnation of a float.
#define INTELIB_RUNTIME_CHECKS   1
 Should InteLib perform some sanity cheks. Should be 1 during debug.
#define INTELIB_DEBUG_COUNTERS   0
 Enables a global counter of allocated SExpression objects.

Typedefs

typedef int intelib_integer_t
 Integer type used by InteLib.
typedef float intelib_float_t
 Floating point number type used by InteLib.

Variables

const char * the_intelib_title
 InteLib product name and version.
const char * the_intelib_copyright
 InteLib copyright notice.
const int the_intelib_numberic_version
 An integer identifying the InteLib version.
const unsigned int intelib_simple_string_limit = sizeof(char*)
 "Simple" string max. length
SReferencePTheEmptyList
 Empty List.


Define Documentation

#define INTELIB_INTEGER_T   int
 

Integer type to be used by InteLib.

Definition at line 49 of file sexpress.hpp.

#define INTELIB_FLOAT_T   float
 

Floating point number type to be used by InteLib.

Definition at line 54 of file sexpress.hpp.

#define INTELIB_SIMPLE_STRING_LIMIT   sizeof(char*)
 

String has room for this many chars; arrays are allocated for longer.

Definition at line 59 of file sexpress.hpp.

#define INTELIB_TEXT_REPRESENTATIONS   1
 

Whether InteLib supports text representations of S-expressions.

Definition at line 64 of file sexpress.hpp.

#define INTELIB_INTEGER_FORMAT   "%d"
 

How should sprintf() be called to make represetnation of an integer.

Definition at line 70 of file sexpress.hpp.

#define INTELIB_FLOAT_FORMAT   "%f"
 

How should sprintf() be called to make represetnation of a float.

Definition at line 74 of file sexpress.hpp.

#define INTELIB_RUNTIME_CHECKS   1
 

Should InteLib perform some sanity cheks. Should be 1 during debug.

Definition at line 80 of file sexpress.hpp.

#define INTELIB_DEBUG_COUNTERS   0
 

Enables a global counter of allocated SExpression objects.

Should normally be off, unless to test for memory leaks

Definition at line 86 of file sexpress.hpp.


Typedef Documentation

typedef int intelib_integer_t
 

Integer type used by InteLib.

Definition at line 90 of file sexpress.hpp.

typedef float intelib_float_t
 

Floating point number type used by InteLib.

Definition at line 93 of file sexpress.hpp.


Variable Documentation

const char* the_intelib_title
 

InteLib product name and version.

Definition at line 36 of file sexpress.cpp.

const char* the_intelib_copyright
 

InteLib copyright notice.

Definition at line 39 of file sexpress.cpp.

const int the_intelib_numberic_version
 

An integer identifying the InteLib version.

Definition at line 49 of file sexpress.cpp.

const unsigned int intelib_simple_string_limit = sizeof(char*)
 

"Simple" string max. length

Strings of this many chars are stored inside the SExpressionString object, without creating dynamic strings

Definition at line 101 of file sexpress.hpp.

SReference* PTheEmptyList
 

Empty List.

This global pointer points to the SExpression object used as the empty list representation. If only the sexpress/ part of the library is used, the pointer remains 0 (NULL), that is, unbound reference is used to mark the end of a list. The lisp/ part of the library changes this pointer during initialization so that it points to the symbol NIL

Definition at line 381 of file sexpress.cpp.

Referenced by IntelibX::AddStack(), SExpressionDoubleList::AddToBegin(), SQueue::Append(), Charp2LispNumber(), SExpressionBacklink::DisconnectBack(), LExpressionLambda::DoApply(), SchExpressionLambda::DoApply(), LExpressionContext::GetAllSymbols(), SchExpressionContext::GetAllSymbols(), SDoubleListRange::GetFirst(), SDoubleListRange::GetLast(), SBacklinkRef::InsertAfter(), SDoubleListRange::LeftEndMover::JumpToLast(), SDoubleListRange::RightEndMover::JumpToLast(), LSymbolNIL::LSymbolNIL(), SDoubleListRange::LeftEndMover::operator SBacklinkRef(), SDoubleListRange::RightEndMover::operator SBacklinkRef(), SBacklinkRef::operator,(), SDoubleListRange::LeftEndMover::operator--(), SDoubleListRange::RightEndMover::operator--(), LListConstructor::operator^(), LFunctionConstructor::operator^(), SchListConstructor::operator^(), SListConstructor::operator^(), LListConstructor::operator|(), SchListConstructor::operator|(), SListConstructor::operator|(), LReference::operator~(), LListConstructor::operator~(), SchListConstructor::operator~(), SchReference::operator~(), SExpressionBacklink::Prev(), SBacklinkRef::Remove(), SExpressionBacklink::RemoveNext(), SBacklinkRef::SBacklinkRef(), SchLabelEmptyList::SchLabelEmptyList(), SDoubleListRange::SDoubleListRange(), SQueue::SQueue(), IntelibContinuation::Step(), and SDoubleListRange::WhatsAfter().


Generated on Tue Dec 18 00:40:24 2007 for InteLib by  doxygen 1.4.1