src/clipsrules/core/evaluatn.h File Reference

#include "constant.h"
#include "userdata.h"
#include "expressn.h"
#include "symbol.h"

Include dependency graph for evaluatn.h:

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

Go to the source code of this file.

Classes

struct  dataObject
struct  entityRecord
struct  externalAddressType
struct  evaluationData

Defines

#define DATA_OBJECT_PTR_ARG   DATA_OBJECT_PTR
#define GetDOLength(target)   (((target).end - (target).begin) + 1)
#define GetpDOLength(target)   (((target)->end - (target)->begin) + 1)
#define GetDOBegin(target)   ((target).begin + 1)
#define GetDOEnd(target)   ((target).end + 1)
#define GetpDOBegin(target)   ((target)->begin + 1)
#define GetpDOEnd(target)   ((target)->end + 1)
#define SetDOBegin(target, val)   ((target).begin = (long) ((val) - 1))
#define SetDOEnd(target, val)   ((target).end = (long) ((val) - 1))
#define SetpDOBegin(target, val)   ((target)->begin = (long) ((val) - 1))
#define SetpDOEnd(target, val)   ((target)->end = (long) ((val) - 1))
#define EnvGetDOLength(theEnv, target)   (((target).end - (target).begin) + 1)
#define EnvGetpDOLength(theEnv, target)   (((target)->end - (target)->begin) + 1)
#define EnvGetDOBegin(theEnv, target)   ((target).begin + 1)
#define EnvGetDOEnd(theEnv, target)   ((target).end + 1)
#define EnvGetpDOBegin(theEnv, target)   ((target)->begin + 1)
#define EnvGetpDOEnd(theEnv, target)   ((target)->end + 1)
#define EnvSetDOBegin(theEnv, target, val)   ((target).begin = (long) ((val) - 1))
#define EnvSetDOEnd(theEnv, target, val)   ((target).end = (long) ((val) - 1))
#define EnvSetpDOBegin(theEnv, target, val)   ((target)->begin = (long) ((val) - 1))
#define EnvSetpDOEnd(theEnv, target, val)   ((target)->end = (long) ((val) - 1))
#define DOPToString(target)   (((struct symbolHashNode *) ((target)->value))->contents)
#define DOPToDouble(target)   (((struct floatHashNode *) ((target)->value))->contents)
#define DOPToFloat(target)   ((float) (((struct floatHashNode *) ((target)->value))->contents))
#define DOPToLong(target)   (((struct integerHashNode *) ((target)->value))->contents)
#define DOPToInteger(target)   ((int) (((struct integerHashNode *) ((target)->value))->contents))
#define DOPToPointer(target)   ((target)->value)
#define DOPToExternalAddress(target)   (((struct externalAddressHashNode *) ((target)->value))->externalAddress)
#define EnvDOPToString(theEnv, target)   (((struct symbolHashNode *) ((target)->value))->contents)
#define EnvDOPToDouble(theEnv, target)   (((struct floatHashNode *) ((target)->value))->contents)
#define EnvDOPToFloat(theEnv, target)   ((float) (((struct floatHashNode *) ((target)->value))->contents))
#define EnvDOPToLong(theEnv, target)   (((struct integerHashNode *) ((target)->value))->contents)
#define EnvDOPToInteger(theEnv, target)   ((int) (((struct integerHashNode *) ((target)->value))->contents))
#define EnvDOPToPointer(theEnv, target)   ((target)->value)
#define EnvDOPToExternalAddress(target)   (((struct externalAddressHashNode *) ((target)->value))->externalAddress)
#define DOToString(target)   (((struct symbolHashNode *) ((target).value))->contents)
#define DOToDouble(target)   (((struct floatHashNode *) ((target).value))->contents)
#define DOToFloat(target)   ((float) (((struct floatHashNode *) ((target).value))->contents))
#define DOToLong(target)   (((struct integerHashNode *) ((target).value))->contents)
#define DOToInteger(target)   ((int) (((struct integerHashNode *) ((target).value))->contents))
#define DOToPointer(target)   ((target).value)
#define DOToExternalAddress(target)   (((struct externalAddressHashNode *) ((target).value))->externalAddress))
#define EnvDOToString(theEnv, target)   (((struct symbolHashNode *) ((target).value))->contents)
#define EnvDOToDouble(theEnv, target)   (((struct floatHashNode *) ((target).value))->contents)
#define EnvDOToFloat(theEnv, target)   ((float) (((struct floatHashNode *) ((target).value))->contents))
#define EnvDOToLong(theEnv, target)   (((struct integerHashNode *) ((target).value))->contents)
#define EnvDOToInteger(theEnv, target)   ((int) (((struct integerHashNode *) ((target).value))->contents))
#define EnvDOToPointer(theEnv, target)   ((target).value)
#define EnvDOToExternalAddress(target)   (((struct externalAddressHashNode *) ((target).value))->externalAddress))
#define CoerceToLongInteger(t, v)   ((t == INTEGER) ? ValueToLong(v) : (long int) ValueToDouble(v))
#define CoerceToInteger(t, v)   ((t == INTEGER) ? (int) ValueToLong(v) : (int) ValueToDouble(v))
#define CoerceToDouble(t, v)   ((t == INTEGER) ? (double) ValueToLong(v) : ValueToDouble(v))
#define GetFirstArgument()   (EvaluationData(theEnv)->CurrentExpression->argList)
#define GetNextArgument(ep)   (ep->nextArg)
#define MAXIMUM_PRIMITIVES   150
#define MAXIMUM_EXTERNAL_ADDRESS_TYPES   10
#define BITS_PER_BYTE   8
#define BitwiseTest(n, b)   ((n) & (char) (1 << (b)))
#define BitwiseSet(n, b)   (n |= (char) (1 << (b)))
#define BitwiseClear(n, b)   (n &= (char) ~(1 << (b)))
#define TestBitMap(map, id)   BitwiseTest(map[(id) / BITS_PER_BYTE],(id) % BITS_PER_BYTE)
#define SetBitMap(map, id)   BitwiseSet(map[(id) / BITS_PER_BYTE],(id) % BITS_PER_BYTE)
#define ClearBitMap(map, id)   BitwiseClear(map[(id) / BITS_PER_BYTE],(id) % BITS_PER_BYTE)
#define EVALUATION_DATA   44
#define EvaluationData(theEnv)   ((struct evaluationData *) GetEnvironmentData(theEnv,EVALUATION_DATA))
#define LOCALE   extern
#define SetMultifieldErrorValue(a)   EnvSetMultifieldErrorValue(GetCurrentEnvironment(),a)
#define FunctionCall(a, b, c)   EnvFunctionCall(GetCurrentEnvironment(),a,b,c)

Typedefs

typedef struct dataObject DATA_OBJECT
typedef struct dataObjectDATA_OBJECT_PTR
typedef struct expr FUNCTION_REFERENCE
typedef struct entityRecord ENTITY_RECORD
typedef struct entityRecordENTITY_RECORD_PTR

Functions

LOCALE void InitializeEvaluationData (void *)
LOCALE int EvaluateExpression (void *, struct expr *, struct dataObject *)
LOCALE void SetEvaluationError (void *, intBool)
LOCALE int GetEvaluationError (void *)
LOCALE void SetHaltExecution (void *, int)
LOCALE int GetHaltExecution (void *)
LOCALE void ReturnValues (void *, struct dataObject *, intBool)
LOCALE void PrintDataObject (void *, char *, struct dataObject *)
LOCALE void EnvSetMultifieldErrorValue (void *, struct dataObject *)
LOCALE void ValueInstall (void *, struct dataObject *)
LOCALE void ValueDeinstall (void *, struct dataObject *)
LOCALE void PropagateReturnValue (void *, struct dataObject *)
LOCALE void CopyDataObject (void *, DATA_OBJECT *, DATA_OBJECT *, int)
LOCALE void AtomInstall (void *, int, void *)
LOCALE void AtomDeinstall (void *, int, void *)
LOCALE struct exprConvertValueToExpression (void *, DATA_OBJECT *)
LOCALE unsigned long GetAtomicHashValue (unsigned short, void *, int)
LOCALE void InstallPrimitive (void *, struct entityRecord *, int)
LOCALE int InstallExternalAddressType (void *, struct externalAddressType *)
LOCALE void TransferDataObjectValues (DATA_OBJECT *, DATA_OBJECT *)
LOCALE struct exprFunctionReferenceExpression (void *, char *)
LOCALE intBool GetFunctionReference (void *, char *, FUNCTION_REFERENCE *)
LOCALE intBool DOsEqual (DATA_OBJECT_PTR, DATA_OBJECT_PTR)
LOCALE int EvaluateAndStoreInDataObject (void *, int, EXPRESSION *, DATA_OBJECT *, int)


Define Documentation

#define BITS_PER_BYTE   8

Definition at line 159 of file evaluatn.h.

#define BitwiseClear ( n,
 )     (n &= (char) ~(1 << (b)))

Definition at line 163 of file evaluatn.h.

#define BitwiseSet ( n,
 )     (n |= (char) (1 << (b)))

Definition at line 162 of file evaluatn.h.

#define BitwiseTest ( n,
 )     ((n) & (char) (1 << (b)))

Definition at line 161 of file evaluatn.h.

#define ClearBitMap ( map,
id   )     BitwiseClear(map[(id) / BITS_PER_BYTE],(id) % BITS_PER_BYTE)

Definition at line 167 of file evaluatn.h.

#define CoerceToDouble ( t,
 )     ((t == INTEGER) ? (double) ValueToLong(v) : ValueToDouble(v))

Definition at line 151 of file evaluatn.h.

#define CoerceToInteger ( t,
 )     ((t == INTEGER) ? (int) ValueToLong(v) : (int) ValueToDouble(v))

Definition at line 150 of file evaluatn.h.

#define CoerceToLongInteger ( t,
 )     ((t == INTEGER) ? ValueToLong(v) : (long int) ValueToDouble(v))

Definition at line 149 of file evaluatn.h.

#define DATA_OBJECT_PTR_ARG   DATA_OBJECT_PTR

Definition at line 57 of file evaluatn.h.

#define DOPToDouble ( target   )     (((struct floatHashNode *) ((target)->value))->contents)

Definition at line 118 of file evaluatn.h.

#define DOPToExternalAddress ( target   )     (((struct externalAddressHashNode *) ((target)->value))->externalAddress)

Definition at line 123 of file evaluatn.h.

#define DOPToFloat ( target   )     ((float) (((struct floatHashNode *) ((target)->value))->contents))

Definition at line 119 of file evaluatn.h.

#define DOPToInteger ( target   )     ((int) (((struct integerHashNode *) ((target)->value))->contents))

Definition at line 121 of file evaluatn.h.

#define DOPToLong ( target   )     (((struct integerHashNode *) ((target)->value))->contents)

Definition at line 120 of file evaluatn.h.

#define DOPToPointer ( target   )     ((target)->value)

Definition at line 122 of file evaluatn.h.

#define DOPToString ( target   )     (((struct symbolHashNode *) ((target)->value))->contents)

Definition at line 117 of file evaluatn.h.

#define DOToDouble ( target   )     (((struct floatHashNode *) ((target).value))->contents)

Definition at line 134 of file evaluatn.h.

#define DOToExternalAddress ( target   )     (((struct externalAddressHashNode *) ((target).value))->externalAddress))

Definition at line 139 of file evaluatn.h.

#define DOToFloat ( target   )     ((float) (((struct floatHashNode *) ((target).value))->contents))

Definition at line 135 of file evaluatn.h.

#define DOToInteger ( target   )     ((int) (((struct integerHashNode *) ((target).value))->contents))

Definition at line 137 of file evaluatn.h.

#define DOToLong ( target   )     (((struct integerHashNode *) ((target).value))->contents)

Definition at line 136 of file evaluatn.h.

#define DOToPointer ( target   )     ((target).value)

Definition at line 138 of file evaluatn.h.

#define DOToString ( target   )     (((struct symbolHashNode *) ((target).value))->contents)

Definition at line 133 of file evaluatn.h.

#define EnvDOPToDouble ( theEnv,
target   )     (((struct floatHashNode *) ((target)->value))->contents)

Definition at line 126 of file evaluatn.h.

#define EnvDOPToExternalAddress ( target   )     (((struct externalAddressHashNode *) ((target)->value))->externalAddress)

Definition at line 131 of file evaluatn.h.

#define EnvDOPToFloat ( theEnv,
target   )     ((float) (((struct floatHashNode *) ((target)->value))->contents))

Definition at line 127 of file evaluatn.h.

#define EnvDOPToInteger ( theEnv,
target   )     ((int) (((struct integerHashNode *) ((target)->value))->contents))

Definition at line 129 of file evaluatn.h.

#define EnvDOPToLong ( theEnv,
target   )     (((struct integerHashNode *) ((target)->value))->contents)

Definition at line 128 of file evaluatn.h.

#define EnvDOPToPointer ( theEnv,
target   )     ((target)->value)

Definition at line 130 of file evaluatn.h.

#define EnvDOPToString ( theEnv,
target   )     (((struct symbolHashNode *) ((target)->value))->contents)

Definition at line 125 of file evaluatn.h.

#define EnvDOToDouble ( theEnv,
target   )     (((struct floatHashNode *) ((target).value))->contents)

Definition at line 142 of file evaluatn.h.

#define EnvDOToExternalAddress ( target   )     (((struct externalAddressHashNode *) ((target).value))->externalAddress))

Definition at line 147 of file evaluatn.h.

#define EnvDOToFloat ( theEnv,
target   )     ((float) (((struct floatHashNode *) ((target).value))->contents))

Definition at line 143 of file evaluatn.h.

#define EnvDOToInteger ( theEnv,
target   )     ((int) (((struct integerHashNode *) ((target).value))->contents))

Definition at line 145 of file evaluatn.h.

#define EnvDOToLong ( theEnv,
target   )     (((struct integerHashNode *) ((target).value))->contents)

Definition at line 144 of file evaluatn.h.

#define EnvDOToPointer ( theEnv,
target   )     ((target).value)

Definition at line 146 of file evaluatn.h.

#define EnvDOToString ( theEnv,
target   )     (((struct symbolHashNode *) ((target).value))->contents)

Definition at line 141 of file evaluatn.h.

#define EnvGetDOBegin ( theEnv,
target   )     ((target).begin + 1)

Definition at line 108 of file evaluatn.h.

#define EnvGetDOEnd ( theEnv,
target   )     ((target).end + 1)

Definition at line 109 of file evaluatn.h.

#define EnvGetDOLength ( theEnv,
target   )     (((target).end - (target).begin) + 1)

Definition at line 106 of file evaluatn.h.

#define EnvGetpDOBegin ( theEnv,
target   )     ((target)->begin + 1)

Definition at line 110 of file evaluatn.h.

#define EnvGetpDOEnd ( theEnv,
target   )     ((target)->end + 1)

Definition at line 111 of file evaluatn.h.

#define EnvGetpDOLength ( theEnv,
target   )     (((target)->end - (target)->begin) + 1)

Definition at line 107 of file evaluatn.h.

#define EnvSetDOBegin ( theEnv,
target,
val   )     ((target).begin = (long) ((val) - 1))

Definition at line 112 of file evaluatn.h.

#define EnvSetDOEnd ( theEnv,
target,
val   )     ((target).end = (long) ((val) - 1))

Definition at line 113 of file evaluatn.h.

#define EnvSetpDOBegin ( theEnv,
target,
val   )     ((target)->begin = (long) ((val) - 1))

Definition at line 114 of file evaluatn.h.

#define EnvSetpDOEnd ( theEnv,
target,
val   )     ((target)->end = (long) ((val) - 1))

Definition at line 115 of file evaluatn.h.

#define EVALUATION_DATA   44

Definition at line 169 of file evaluatn.h.

#define EvaluationData ( theEnv   )     ((struct evaluationData *) GetEnvironmentData(theEnv,EVALUATION_DATA))

Definition at line 182 of file evaluatn.h.

#define FunctionCall ( a,
b,
 )     EnvFunctionCall(GetCurrentEnvironment(),a,b,c)

Definition at line 195 of file evaluatn.h.

#define GetDOBegin ( target   )     ((target).begin + 1)

Definition at line 97 of file evaluatn.h.

#define GetDOEnd ( target   )     ((target).end + 1)

Definition at line 98 of file evaluatn.h.

#define GetDOLength ( target   )     (((target).end - (target).begin) + 1)

Definition at line 95 of file evaluatn.h.

 
#define GetFirstArgument (  )     (EvaluationData(theEnv)->CurrentExpression->argList)

Definition at line 153 of file evaluatn.h.

#define GetNextArgument ( ep   )     (ep->nextArg)

Definition at line 154 of file evaluatn.h.

#define GetpDOBegin ( target   )     ((target)->begin + 1)

Definition at line 99 of file evaluatn.h.

#define GetpDOEnd ( target   )     ((target)->end + 1)

Definition at line 100 of file evaluatn.h.

#define GetpDOLength ( target   )     (((target)->end - (target)->begin) + 1)

Definition at line 96 of file evaluatn.h.

#define LOCALE   extern

Definition at line 191 of file evaluatn.h.

#define MAXIMUM_EXTERNAL_ADDRESS_TYPES   10

Definition at line 157 of file evaluatn.h.

#define MAXIMUM_PRIMITIVES   150

Definition at line 156 of file evaluatn.h.

#define SetBitMap ( map,
id   )     BitwiseSet(map[(id) / BITS_PER_BYTE],(id) % BITS_PER_BYTE)

Definition at line 166 of file evaluatn.h.

#define SetDOBegin ( target,
val   )     ((target).begin = (long) ((val) - 1))

Definition at line 101 of file evaluatn.h.

#define SetDOEnd ( target,
val   )     ((target).end = (long) ((val) - 1))

Definition at line 102 of file evaluatn.h.

#define SetMultifieldErrorValue (  )     EnvSetMultifieldErrorValue(GetCurrentEnvironment(),a)

Definition at line 194 of file evaluatn.h.

#define SetpDOBegin ( target,
val   )     ((target)->begin = (long) ((val) - 1))

Definition at line 103 of file evaluatn.h.

#define SetpDOEnd ( target,
val   )     ((target)->end = (long) ((val) - 1))

Definition at line 104 of file evaluatn.h.

#define TestBitMap ( map,
id   )     BitwiseTest(map[(id) / BITS_PER_BYTE],(id) % BITS_PER_BYTE)

Definition at line 165 of file evaluatn.h.


Typedef Documentation

typedef struct dataObject DATA_OBJECT

Definition at line 52 of file evaluatn.h.

typedef struct dataObject* DATA_OBJECT_PTR

Definition at line 53 of file evaluatn.h.

typedef struct entityRecord ENTITY_RECORD

Definition at line 92 of file evaluatn.h.

Definition at line 93 of file evaluatn.h.

typedef struct expr FUNCTION_REFERENCE

Definition at line 55 of file evaluatn.h.


Function Documentation

LOCALE void AtomDeinstall ( void *  ,
int  ,
void *   
)

Definition at line 687 of file evaluatn.c.

LOCALE void AtomInstall ( void *  ,
int  ,
void *   
)

Definition at line 637 of file evaluatn.c.

LOCALE struct expr* ConvertValueToExpression ( void *  ,
DATA_OBJECT  
) [read]

Definition at line 949 of file evaluatn.c.

LOCALE void CopyDataObject ( void *  ,
DATA_OBJECT ,
DATA_OBJECT ,
int   
)

Definition at line 907 of file evaluatn.c.

LOCALE intBool DOsEqual ( DATA_OBJECT_PTR  ,
DATA_OBJECT_PTR   
)

Definition at line 1160 of file evaluatn.c.

LOCALE void EnvSetMultifieldErrorValue ( void *  ,
struct dataObject  
)

LOCALE int EvaluateAndStoreInDataObject ( void *  ,
int  ,
EXPRESSION ,
DATA_OBJECT ,
int   
)

Definition at line 1193 of file evaluatn.c.

LOCALE int EvaluateExpression ( void *  ,
struct expr ,
struct dataObject  
)

LOCALE struct expr* FunctionReferenceExpression ( void *  ,
char *   
) [read]

Definition at line 1041 of file evaluatn.c.

LOCALE unsigned long GetAtomicHashValue ( unsigned  short,
void *  ,
int   
)

Definition at line 978 of file evaluatn.c.

LOCALE int GetEvaluationError ( void *   ) 

Definition at line 494 of file evaluatn.c.

LOCALE intBool GetFunctionReference ( void *  ,
char *  ,
FUNCTION_REFERENCE  
)

Definition at line 1093 of file evaluatn.c.

LOCALE int GetHaltExecution ( void *   ) 

Definition at line 513 of file evaluatn.c.

LOCALE void InitializeEvaluationData ( void *   ) 

Definition at line 86 of file evaluatn.c.

LOCALE int InstallExternalAddressType ( void *  ,
struct externalAddressType  
)

Definition at line 458 of file evaluatn.c.

LOCALE void InstallPrimitive ( void *  ,
struct entityRecord ,
int   
)

Definition at line 440 of file evaluatn.c.

LOCALE void PrintDataObject ( void *  ,
char *  ,
struct dataObject  
)

LOCALE void PropagateReturnValue ( void *  ,
struct dataObject  
)

Definition at line 741 of file evaluatn.c.

LOCALE void ReturnValues ( void *  ,
struct dataObject ,
intBool   
)

LOCALE void SetEvaluationError ( void *  ,
intBool   
)

LOCALE void SetHaltExecution ( void *  ,
int   
)

Definition at line 503 of file evaluatn.c.

LOCALE void TransferDataObjectValues ( DATA_OBJECT ,
DATA_OBJECT  
)

Definition at line 931 of file evaluatn.c.

LOCALE void ValueDeinstall ( void *  ,
struct dataObject  
)

Definition at line 625 of file evaluatn.c.

LOCALE void ValueInstall ( void *  ,
struct dataObject  
)

Definition at line 613 of file evaluatn.c.


Generated on Mon Jan 10 22:33:41 2011 by  doxygen 1.5.6