/usr/include/clips/expressn.h is in libclips-dev 6.24-3.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | /*******************************************************/
/* "C" Language Integrated Production System */
/* */
/* CLIPS Version 6.24 06/05/06 */
/* */
/* EXPRESSION HEADER FILE */
/*******************************************************/
/*************************************************************/
/* Purpose: Contains routines for creating, deleting, */
/* compacting, installing, and hashing expressions. */
/* */
/* Principal Programmer(s): */
/* Gary D. Riley */
/* */
/* Contributing Programmer(s): */
/* Brian L. Donnell */
/* */
/* Revision History: */
/* */
/* 6.24: Renamed BOOLEAN macro type to intBool. */
/* */
/*************************************************************/
#ifndef _H_expressn
#define _H_expressn
struct expr;
struct exprHashNode;
#ifndef _H_exprnops
#include "exprnops.h"
#endif
/******************************/
/* Expression Data Structures */
/******************************/
struct expr
{
unsigned short type;
void *value;
struct expr *argList;
struct expr *nextArg;
};
#define arg_list argList
#define next_arg nextArg
typedef struct expr EXPRESSION;
typedef struct exprHashNode
{
unsigned hashval;
unsigned count;
struct expr *exp;
struct exprHashNode *next;
long bsaveID;
} EXPRESSION_HN;
#define EXPRESSION_HASH_SIZE 503
/*************************/
/* Type and Value Macros */
/*************************/
#define GetType(target) ((target).type)
#define GetpType(target) ((target)->type)
#define SetType(target,val) ((target).type = (unsigned short) (val))
#define SetpType(target,val) ((target)->type = (unsigned short) (val))
#define GetValue(target) ((target).value)
#define GetpValue(target) ((target)->value)
#define SetValue(target,val) ((target).value = (void *) (val))
#define SetpValue(target,val) ((target)->value = (void *) (val))
#define EnvGetType(theEnv,target) ((target).type)
#define EnvGetpType(theEnv,target) ((target)->type)
#define EnvSetType(theEnv,target,val) ((target).type = (unsigned short) (val))
#define EnvSetpType(theEnv,target,val) ((target)->type = (unsigned short) (val))
#define EnvGetValue(theEnv,target) ((target).value)
#define EnvGetpValue(theEnv,target) ((target)->value)
#define EnvSetValue(theEnv,target,val) ((target).value = (void *) (val))
#define EnvSetpValue(theEnv,target,val) ((target)->value = (void *) (val))
/********************/
/* ENVIRONMENT DATA */
/********************/
#ifndef _H_exprnpsr
#include "exprnpsr.h"
#endif
#define EXPRESSION_DATA 45
struct expressionData
{
void *PTR_AND;
void *PTR_OR;
void *PTR_EQ;
void *PTR_NEQ;
void *PTR_NOT;
EXPRESSION_HN **ExpressionHashTable;
#if (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE)
long NumberOfExpressions;
struct expr *ExpressionArray;
long int ExpressionCount;
#endif
#if (! RUN_TIME)
SAVED_CONTEXTS *svContexts;
int ReturnContext;
int BreakContext;
#endif
intBool SequenceOpMode;
};
#define ExpressionData(theEnv) ((struct expressionData *) GetEnvironmentData(theEnv,EXPRESSION_DATA))
/********************/
/* Global Functions */
/********************/
#ifdef LOCALE
#undef LOCALE
#endif
#ifdef _EXPRESSN_SOURCE_
#define LOCALE
#else
#define LOCALE extern
#endif
LOCALE void ReturnExpression(void *,struct expr *);
LOCALE void ExpressionInstall(void *,struct expr *);
LOCALE void ExpressionDeinstall(void *,struct expr *);
LOCALE struct expr *PackExpression(void *,struct expr *);
LOCALE void ReturnPackedExpression(void *,struct expr *);
LOCALE void InitExpressionData(void *);
LOCALE void InitExpressionPointers(void *);
#if (! BLOAD_ONLY) && (! RUN_TIME)
LOCALE EXPRESSION *AddHashedExpression(void *,EXPRESSION *);
#endif
#if (! RUN_TIME)
LOCALE void RemoveHashedExpression(void *,EXPRESSION *);
#endif
#if BLOAD_AND_BSAVE || BLOAD_ONLY || BLOAD || CONSTRUCT_COMPILER
LOCALE long HashedExpressionIndex(void *,EXPRESSION *);
#endif
#endif
|