/usr/include/clips/match.h is in libclips-dev 6.24-3.
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 | /*******************************************************/
/* "C" Language Integrated Production System */
/* */
/* CLIPS Version 6.20 01/31/02 */
/* */
/* MATCH HEADER FILE */
/*******************************************************/
/*************************************************************/
/* Purpose: */
/* */
/* Principal Programmer(s): */
/* Gary D. Riley */
/* */
/* Contributing Programmer(s): */
/* */
/* Revision History: */
/* */
/*************************************************************/
#ifndef _H_match
#define _H_match
struct genericMatch;
struct patternMatch;
struct partialMatch;
struct alphaMatch;
struct multifieldMarker;
#ifndef _H_evaluatn
#include "evaluatn.h"
#endif
#ifndef _H_network
#include "network.h"
#endif
#ifndef _H_pattern
#include "pattern.h"
#endif
/************************************************************/
/* PATTERNMATCH STRUCTURE: */
/************************************************************/
struct patternMatch
{
struct patternMatch *next;
struct partialMatch *theMatch;
struct patternNodeHeader *matchingPattern;
};
/**************************/
/* genericMatch structure */
/**************************/
struct genericMatch
{
union
{
void *theValue;
struct alphaMatch *theMatch;
} gm;
};
/************************************************************/
/* PARTIALMATCH STRUCTURE: */
/************************************************************/
struct partialMatch
{
unsigned int betaMemory : 1;
unsigned int busy : 1;
unsigned int activationf : 1;
unsigned int dependentsf : 1;
unsigned int notOriginf : 1;
unsigned int counterf : 1;
unsigned int bcount : 9;
struct partialMatch *next;
struct genericMatch binds[1];
};
/************************************************************/
/* ALPHAMATCH STRUCTURE: */
/************************************************************/
struct alphaMatch
{
struct patternEntity *matchingItem;
struct multifieldMarker *markers;
struct alphaMatch *next;
};
/************************************************************/
/* MULTIFIELDMARKER STRUCTURE: Used in the pattern matching */
/* process to mark the range of fields that the $? and */
/* $?variables match because a single pattern restriction */
/* may span zero or more fields.. */
/************************************************************/
struct multifieldMarker
{
int whichField;
union
{
void *whichSlot;
short int whichSlotNumber;
} where;
long startPosition;
long endPosition;
struct multifieldMarker *next;
};
#define get_nth_pm_value(thePM,thePos) (thePM->binds[thePos].gm.theValue)
#define get_nth_pm_match(thePM,thePos) (thePM->binds[thePos].gm.theMatch)
#define set_nth_pm_value(thePM,thePos,theVal) (thePM->binds[thePos].gm.theValue = (void *) theVal)
#define set_nth_pm_match(thePM,thePos,theVal) (thePM->binds[thePos].gm.theMatch = theVal)
#endif
|