1    /*******************************************************/
2    /*      "C" Language Integrated Production System      */
3    /*                                                     */
4    /*             CLIPS Version 6.30  08/16/14            */
5    /*                                                     */
6    /*                FACT BUILD HEADER FILE               */
7    /*******************************************************/
8 
9 /*************************************************************/
10 /* Purpose:                                                  */
11 /*                                                           */
12 /* Principal Programmer(s):                                  */
13 /*      Gary D. Riley                                        */
14 /*                                                           */
15 /* Contributing Programmer(s):                               */
16 /*                                                           */
17 /* Revision History:                                         */
18 /*                                                           */
19 /*      6.30: Added support for hashed alpha memories.       */
20 /*                                                           */
21 /*            Added support for hashed comparisons to        */
22 /*            constants.                                     */
23 /*                                                           */
24 /*************************************************************/
25 
26 #ifndef _H_factbld
27 
28 #define _H_factbld
29 
30 #ifndef _H_pattern
31 #include "pattern.h"
32 #endif
33 #ifndef _H_network
34 #include "network.h"
35 #endif
36 
37 #ifdef LOCALE
38 #undef LOCALE
39 #endif
40 
41 struct factPatternNode
42   {
43    struct patternNodeHeader header;
44    long bsaveID;
45    unsigned short whichField;
46    unsigned short whichSlot;
47    unsigned short leaveFields;
48    struct expr *networkTest;
49    struct factPatternNode *nextLevel;
50    struct factPatternNode *lastLevel;
51    struct factPatternNode *leftNode;
52    struct factPatternNode *rightNode;
53   };
54 
55 #ifdef _FACTBUILD_SOURCE_
56 #define LOCALE
57 #else
58 #define LOCALE extern
59 #endif
60 
61    LOCALE void                           InitializeFactPatterns(void *);
62    LOCALE void                           DestroyFactPatternNetwork(void *,
63                                                                    struct factPatternNode *);
64 
65 #endif /* _H_factbld */
66