clipsruby 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/ext/clipsruby/agenda.c +1373 -0
- data/ext/clipsruby/agenda.h +169 -0
- data/ext/clipsruby/analysis.c +1142 -0
- data/ext/clipsruby/analysis.h +61 -0
- data/ext/clipsruby/argacces.c +526 -0
- data/ext/clipsruby/argacces.h +77 -0
- data/ext/clipsruby/bload.c +884 -0
- data/ext/clipsruby/bload.h +94 -0
- data/ext/clipsruby/bmathfun.c +557 -0
- data/ext/clipsruby/bmathfun.h +66 -0
- data/ext/clipsruby/bsave.c +634 -0
- data/ext/clipsruby/bsave.h +130 -0
- data/ext/clipsruby/classcom.c +976 -0
- data/ext/clipsruby/classcom.h +115 -0
- data/ext/clipsruby/classexm.c +1376 -0
- data/ext/clipsruby/classexm.h +97 -0
- data/ext/clipsruby/classfun.c +1392 -0
- data/ext/clipsruby/classfun.h +164 -0
- data/ext/clipsruby/classinf.c +1245 -0
- data/ext/clipsruby/classinf.h +94 -0
- data/ext/clipsruby/classini.c +843 -0
- data/ext/clipsruby/classini.h +75 -0
- data/ext/clipsruby/classpsr.c +957 -0
- data/ext/clipsruby/classpsr.h +73 -0
- data/ext/clipsruby/clips.h +133 -0
- data/ext/clipsruby/clipsruby.c +619 -0
- data/ext/clipsruby/clsltpsr.c +931 -0
- data/ext/clipsruby/clsltpsr.h +72 -0
- data/ext/clipsruby/commline.c +1217 -0
- data/ext/clipsruby/commline.h +131 -0
- data/ext/clipsruby/conscomp.c +1593 -0
- data/ext/clipsruby/conscomp.h +150 -0
- data/ext/clipsruby/constant.h +264 -0
- data/ext/clipsruby/constrct.c +1090 -0
- data/ext/clipsruby/constrct.h +216 -0
- data/ext/clipsruby/constrnt.c +554 -0
- data/ext/clipsruby/constrnt.h +132 -0
- data/ext/clipsruby/crstrtgy.c +1088 -0
- data/ext/clipsruby/crstrtgy.h +85 -0
- data/ext/clipsruby/cstrcbin.c +185 -0
- data/ext/clipsruby/cstrcbin.h +61 -0
- data/ext/clipsruby/cstrccmp.h +43 -0
- data/ext/clipsruby/cstrccom.c +1791 -0
- data/ext/clipsruby/cstrccom.h +115 -0
- data/ext/clipsruby/cstrcpsr.c +835 -0
- data/ext/clipsruby/cstrcpsr.h +97 -0
- data/ext/clipsruby/cstrnbin.c +282 -0
- data/ext/clipsruby/cstrnbin.h +55 -0
- data/ext/clipsruby/cstrnchk.c +826 -0
- data/ext/clipsruby/cstrnchk.h +91 -0
- data/ext/clipsruby/cstrncmp.c +238 -0
- data/ext/clipsruby/cstrncmp.h +57 -0
- data/ext/clipsruby/cstrnops.c +1176 -0
- data/ext/clipsruby/cstrnops.h +47 -0
- data/ext/clipsruby/cstrnpsr.c +1394 -0
- data/ext/clipsruby/cstrnpsr.h +88 -0
- data/ext/clipsruby/cstrnutl.c +564 -0
- data/ext/clipsruby/cstrnutl.h +54 -0
- data/ext/clipsruby/default.c +454 -0
- data/ext/clipsruby/default.h +57 -0
- data/ext/clipsruby/defins.c +971 -0
- data/ext/clipsruby/defins.h +127 -0
- data/ext/clipsruby/developr.c +677 -0
- data/ext/clipsruby/developr.h +69 -0
- data/ext/clipsruby/dffctbin.c +477 -0
- data/ext/clipsruby/dffctbin.h +76 -0
- data/ext/clipsruby/dffctbsc.c +308 -0
- data/ext/clipsruby/dffctbsc.h +72 -0
- data/ext/clipsruby/dffctcmp.c +297 -0
- data/ext/clipsruby/dffctcmp.h +44 -0
- data/ext/clipsruby/dffctdef.c +364 -0
- data/ext/clipsruby/dffctdef.h +104 -0
- data/ext/clipsruby/dffctpsr.c +179 -0
- data/ext/clipsruby/dffctpsr.h +49 -0
- data/ext/clipsruby/dffnxbin.c +520 -0
- data/ext/clipsruby/dffnxbin.h +67 -0
- data/ext/clipsruby/dffnxcmp.c +378 -0
- data/ext/clipsruby/dffnxcmp.h +54 -0
- data/ext/clipsruby/dffnxexe.c +241 -0
- data/ext/clipsruby/dffnxexe.h +58 -0
- data/ext/clipsruby/dffnxfun.c +1192 -0
- data/ext/clipsruby/dffnxfun.h +155 -0
- data/ext/clipsruby/dffnxpsr.c +514 -0
- data/ext/clipsruby/dffnxpsr.h +57 -0
- data/ext/clipsruby/dfinsbin.c +509 -0
- data/ext/clipsruby/dfinsbin.h +66 -0
- data/ext/clipsruby/dfinscmp.c +345 -0
- data/ext/clipsruby/dfinscmp.h +48 -0
- data/ext/clipsruby/drive.c +1191 -0
- data/ext/clipsruby/drive.h +65 -0
- data/ext/clipsruby/emathfun.c +1213 -0
- data/ext/clipsruby/emathfun.h +99 -0
- data/ext/clipsruby/engine.c +1568 -0
- data/ext/clipsruby/engine.h +203 -0
- data/ext/clipsruby/entities.h +276 -0
- data/ext/clipsruby/envrnbld.c +514 -0
- data/ext/clipsruby/envrnbld.h +40 -0
- data/ext/clipsruby/envrnmnt.c +257 -0
- data/ext/clipsruby/envrnmnt.h +112 -0
- data/ext/clipsruby/evaluatn.c +1736 -0
- data/ext/clipsruby/evaluatn.h +211 -0
- data/ext/clipsruby/expressn.c +494 -0
- data/ext/clipsruby/expressn.h +154 -0
- data/ext/clipsruby/exprnbin.c +538 -0
- data/ext/clipsruby/exprnbin.h +60 -0
- data/ext/clipsruby/exprnops.c +564 -0
- data/ext/clipsruby/exprnops.h +67 -0
- data/ext/clipsruby/exprnpsr.c +1112 -0
- data/ext/clipsruby/exprnpsr.h +98 -0
- data/ext/clipsruby/extconf.rb +2 -0
- data/ext/clipsruby/extnfunc.c +1015 -0
- data/ext/clipsruby/extnfunc.h +157 -0
- data/ext/clipsruby/factbin.c +447 -0
- data/ext/clipsruby/factbin.h +56 -0
- data/ext/clipsruby/factbld.c +1035 -0
- data/ext/clipsruby/factbld.h +63 -0
- data/ext/clipsruby/factcmp.c +386 -0
- data/ext/clipsruby/factcmp.h +46 -0
- data/ext/clipsruby/factcom.c +759 -0
- data/ext/clipsruby/factcom.h +80 -0
- data/ext/clipsruby/factfile.c +1761 -0
- data/ext/clipsruby/factfile.h +54 -0
- data/ext/clipsruby/factfun.c +682 -0
- data/ext/clipsruby/factfun.h +77 -0
- data/ext/clipsruby/factgen.c +1305 -0
- data/ext/clipsruby/factgen.h +229 -0
- data/ext/clipsruby/facthsh.c +438 -0
- data/ext/clipsruby/facthsh.h +81 -0
- data/ext/clipsruby/factlhs.c +250 -0
- data/ext/clipsruby/factlhs.h +54 -0
- data/ext/clipsruby/factmch.c +905 -0
- data/ext/clipsruby/factmch.h +68 -0
- data/ext/clipsruby/factmngr.c +3373 -0
- data/ext/clipsruby/factmngr.h +325 -0
- data/ext/clipsruby/factprt.c +498 -0
- data/ext/clipsruby/factprt.h +60 -0
- data/ext/clipsruby/factqpsr.c +796 -0
- data/ext/clipsruby/factqpsr.h +61 -0
- data/ext/clipsruby/factqury.c +1267 -0
- data/ext/clipsruby/factqury.h +112 -0
- data/ext/clipsruby/factrete.c +978 -0
- data/ext/clipsruby/factrete.h +70 -0
- data/ext/clipsruby/factrhs.c +667 -0
- data/ext/clipsruby/factrhs.h +55 -0
- data/ext/clipsruby/filecom.c +353 -0
- data/ext/clipsruby/filecom.h +137 -0
- data/ext/clipsruby/filertr.c +481 -0
- data/ext/clipsruby/filertr.h +94 -0
- data/ext/clipsruby/fileutil.c +1020 -0
- data/ext/clipsruby/fileutil.h +50 -0
- data/ext/clipsruby/generate.c +1079 -0
- data/ext/clipsruby/generate.h +57 -0
- data/ext/clipsruby/genrcbin.c +902 -0
- data/ext/clipsruby/genrcbin.h +69 -0
- data/ext/clipsruby/genrccmp.c +640 -0
- data/ext/clipsruby/genrccmp.h +59 -0
- data/ext/clipsruby/genrccom.c +2017 -0
- data/ext/clipsruby/genrccom.h +119 -0
- data/ext/clipsruby/genrcexe.c +737 -0
- data/ext/clipsruby/genrcexe.h +73 -0
- data/ext/clipsruby/genrcfun.c +890 -0
- data/ext/clipsruby/genrcfun.h +185 -0
- data/ext/clipsruby/genrcpsr.c +1618 -0
- data/ext/clipsruby/genrcpsr.h +80 -0
- data/ext/clipsruby/globlbin.c +458 -0
- data/ext/clipsruby/globlbin.h +71 -0
- data/ext/clipsruby/globlbsc.c +361 -0
- data/ext/clipsruby/globlbsc.h +83 -0
- data/ext/clipsruby/globlcmp.c +330 -0
- data/ext/clipsruby/globlcmp.h +52 -0
- data/ext/clipsruby/globlcom.c +289 -0
- data/ext/clipsruby/globlcom.h +63 -0
- data/ext/clipsruby/globldef.c +1087 -0
- data/ext/clipsruby/globldef.h +151 -0
- data/ext/clipsruby/globlpsr.c +530 -0
- data/ext/clipsruby/globlpsr.h +59 -0
- data/ext/clipsruby/immthpsr.c +431 -0
- data/ext/clipsruby/immthpsr.h +55 -0
- data/ext/clipsruby/incrrset.c +530 -0
- data/ext/clipsruby/incrrset.h +73 -0
- data/ext/clipsruby/inherpsr.c +850 -0
- data/ext/clipsruby/inherpsr.h +52 -0
- data/ext/clipsruby/inscom.c +2076 -0
- data/ext/clipsruby/inscom.h +182 -0
- data/ext/clipsruby/insfile.c +1764 -0
- data/ext/clipsruby/insfile.h +96 -0
- data/ext/clipsruby/insfun.c +1451 -0
- data/ext/clipsruby/insfun.h +134 -0
- data/ext/clipsruby/insmngr.c +2550 -0
- data/ext/clipsruby/insmngr.h +125 -0
- data/ext/clipsruby/insmoddp.c +1041 -0
- data/ext/clipsruby/insmoddp.h +91 -0
- data/ext/clipsruby/insmult.c +804 -0
- data/ext/clipsruby/insmult.h +62 -0
- data/ext/clipsruby/inspsr.c +602 -0
- data/ext/clipsruby/inspsr.h +60 -0
- data/ext/clipsruby/insquery.c +1278 -0
- data/ext/clipsruby/insquery.h +115 -0
- data/ext/clipsruby/insqypsr.c +729 -0
- data/ext/clipsruby/insqypsr.h +63 -0
- data/ext/clipsruby/iofun.c +2045 -0
- data/ext/clipsruby/iofun.h +116 -0
- data/ext/clipsruby/lgcldpnd.c +644 -0
- data/ext/clipsruby/lgcldpnd.h +75 -0
- data/ext/clipsruby/main.c +112 -0
- data/ext/clipsruby/match.h +142 -0
- data/ext/clipsruby/memalloc.c +481 -0
- data/ext/clipsruby/memalloc.h +197 -0
- data/ext/clipsruby/miscfun.c +1801 -0
- data/ext/clipsruby/miscfun.h +132 -0
- data/ext/clipsruby/modulbin.c +607 -0
- data/ext/clipsruby/modulbin.h +84 -0
- data/ext/clipsruby/modulbsc.c +347 -0
- data/ext/clipsruby/modulbsc.h +67 -0
- data/ext/clipsruby/modulcmp.c +499 -0
- data/ext/clipsruby/modulcmp.h +54 -0
- data/ext/clipsruby/moduldef.c +817 -0
- data/ext/clipsruby/moduldef.h +271 -0
- data/ext/clipsruby/modulpsr.c +1150 -0
- data/ext/clipsruby/modulpsr.h +69 -0
- data/ext/clipsruby/modulutl.c +1036 -0
- data/ext/clipsruby/modulutl.h +84 -0
- data/ext/clipsruby/msgcom.c +1221 -0
- data/ext/clipsruby/msgcom.h +125 -0
- data/ext/clipsruby/msgfun.c +1076 -0
- data/ext/clipsruby/msgfun.h +118 -0
- data/ext/clipsruby/msgpass.c +1441 -0
- data/ext/clipsruby/msgpass.h +103 -0
- data/ext/clipsruby/msgpsr.c +698 -0
- data/ext/clipsruby/msgpsr.h +73 -0
- data/ext/clipsruby/multifld.c +1404 -0
- data/ext/clipsruby/multifld.h +130 -0
- data/ext/clipsruby/multifun.c +2182 -0
- data/ext/clipsruby/multifun.h +102 -0
- data/ext/clipsruby/network.h +142 -0
- data/ext/clipsruby/objbin.c +1522 -0
- data/ext/clipsruby/objbin.h +79 -0
- data/ext/clipsruby/objcmp.c +1507 -0
- data/ext/clipsruby/objcmp.h +71 -0
- data/ext/clipsruby/object.h +260 -0
- data/ext/clipsruby/objrtbin.c +701 -0
- data/ext/clipsruby/objrtbin.h +79 -0
- data/ext/clipsruby/objrtbld.c +2393 -0
- data/ext/clipsruby/objrtbld.h +66 -0
- data/ext/clipsruby/objrtcmp.c +734 -0
- data/ext/clipsruby/objrtcmp.h +66 -0
- data/ext/clipsruby/objrtfnx.c +1330 -0
- data/ext/clipsruby/objrtfnx.h +222 -0
- data/ext/clipsruby/objrtgen.c +736 -0
- data/ext/clipsruby/objrtgen.h +63 -0
- data/ext/clipsruby/objrtmch.c +1524 -0
- data/ext/clipsruby/objrtmch.h +160 -0
- data/ext/clipsruby/parsefun.c +415 -0
- data/ext/clipsruby/parsefun.h +67 -0
- data/ext/clipsruby/pattern.c +1265 -0
- data/ext/clipsruby/pattern.h +163 -0
- data/ext/clipsruby/pprint.c +328 -0
- data/ext/clipsruby/pprint.h +79 -0
- data/ext/clipsruby/prccode.c +1478 -0
- data/ext/clipsruby/prccode.h +145 -0
- data/ext/clipsruby/prcdrfun.c +640 -0
- data/ext/clipsruby/prcdrfun.h +95 -0
- data/ext/clipsruby/prcdrpsr.c +1068 -0
- data/ext/clipsruby/prcdrpsr.h +79 -0
- data/ext/clipsruby/prdctfun.c +869 -0
- data/ext/clipsruby/prdctfun.h +77 -0
- data/ext/clipsruby/prntutil.c +878 -0
- data/ext/clipsruby/prntutil.h +125 -0
- data/ext/clipsruby/proflfun.c +827 -0
- data/ext/clipsruby/proflfun.h +118 -0
- data/ext/clipsruby/reorder.c +2082 -0
- data/ext/clipsruby/reorder.h +172 -0
- data/ext/clipsruby/reteutil.c +1732 -0
- data/ext/clipsruby/reteutil.h +111 -0
- data/ext/clipsruby/retract.c +710 -0
- data/ext/clipsruby/retract.h +74 -0
- data/ext/clipsruby/router.c +737 -0
- data/ext/clipsruby/router.h +147 -0
- data/ext/clipsruby/rulebin.c +1136 -0
- data/ext/clipsruby/rulebin.h +153 -0
- data/ext/clipsruby/rulebld.c +1328 -0
- data/ext/clipsruby/rulebld.h +62 -0
- data/ext/clipsruby/rulebsc.c +517 -0
- data/ext/clipsruby/rulebsc.h +91 -0
- data/ext/clipsruby/rulecmp.c +733 -0
- data/ext/clipsruby/rulecmp.h +63 -0
- data/ext/clipsruby/rulecom.c +1583 -0
- data/ext/clipsruby/rulecom.h +116 -0
- data/ext/clipsruby/rulecstr.c +892 -0
- data/ext/clipsruby/rulecstr.h +53 -0
- data/ext/clipsruby/ruledef.c +559 -0
- data/ext/clipsruby/ruledef.h +179 -0
- data/ext/clipsruby/ruledlt.c +599 -0
- data/ext/clipsruby/ruledlt.h +58 -0
- data/ext/clipsruby/rulelhs.c +1216 -0
- data/ext/clipsruby/rulelhs.h +52 -0
- data/ext/clipsruby/rulepsr.c +1073 -0
- data/ext/clipsruby/rulepsr.h +61 -0
- data/ext/clipsruby/scanner.c +856 -0
- data/ext/clipsruby/scanner.h +112 -0
- data/ext/clipsruby/setup.h +488 -0
- data/ext/clipsruby/sortfun.c +433 -0
- data/ext/clipsruby/sortfun.h +55 -0
- data/ext/clipsruby/strngfun.c +1173 -0
- data/ext/clipsruby/strngfun.h +96 -0
- data/ext/clipsruby/strngrtr.c +523 -0
- data/ext/clipsruby/strngrtr.h +97 -0
- data/ext/clipsruby/symblbin.c +648 -0
- data/ext/clipsruby/symblbin.h +64 -0
- data/ext/clipsruby/symblcmp.c +893 -0
- data/ext/clipsruby/symblcmp.h +61 -0
- data/ext/clipsruby/symbol.c +1961 -0
- data/ext/clipsruby/symbol.h +243 -0
- data/ext/clipsruby/sysdep.c +894 -0
- data/ext/clipsruby/sysdep.h +164 -0
- data/ext/clipsruby/textpro.c +1388 -0
- data/ext/clipsruby/textpro.h +77 -0
- data/ext/clipsruby/tmpltbin.c +609 -0
- data/ext/clipsruby/tmpltbin.h +108 -0
- data/ext/clipsruby/tmpltbsc.c +327 -0
- data/ext/clipsruby/tmpltbsc.h +87 -0
- data/ext/clipsruby/tmpltcmp.c +450 -0
- data/ext/clipsruby/tmpltcmp.h +57 -0
- data/ext/clipsruby/tmpltdef.c +584 -0
- data/ext/clipsruby/tmpltdef.h +155 -0
- data/ext/clipsruby/tmpltfun.c +2477 -0
- data/ext/clipsruby/tmpltfun.h +122 -0
- data/ext/clipsruby/tmpltlhs.c +379 -0
- data/ext/clipsruby/tmpltlhs.h +50 -0
- data/ext/clipsruby/tmpltpsr.c +819 -0
- data/ext/clipsruby/tmpltpsr.h +59 -0
- data/ext/clipsruby/tmpltrhs.c +595 -0
- data/ext/clipsruby/tmpltrhs.h +55 -0
- data/ext/clipsruby/tmpltutl.c +637 -0
- data/ext/clipsruby/tmpltutl.h +82 -0
- data/ext/clipsruby/userdata.c +156 -0
- data/ext/clipsruby/userdata.h +72 -0
- data/ext/clipsruby/userfunctions.c +70 -0
- data/ext/clipsruby/usrsetup.h +7 -0
- data/ext/clipsruby/utility.c +1594 -0
- data/ext/clipsruby/utility.h +250 -0
- data/ext/clipsruby/watch.c +865 -0
- data/ext/clipsruby/watch.h +124 -0
- data/lib/clipsruby.rb +1 -0
- metadata +388 -0
@@ -0,0 +1,203 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 08/25/16 */
|
5
|
+
/* */
|
6
|
+
/* ENGINE HEADER FILE */
|
7
|
+
/*******************************************************/
|
8
|
+
|
9
|
+
/*************************************************************/
|
10
|
+
/* Purpose: Provides functionality primarily associated with */
|
11
|
+
/* the run and focus commands. */
|
12
|
+
/* */
|
13
|
+
/* Principal Programmer(s): */
|
14
|
+
/* Gary D. Riley */
|
15
|
+
/* */
|
16
|
+
/* Contributing Programmer(s): */
|
17
|
+
/* */
|
18
|
+
/* Revision History: */
|
19
|
+
/* */
|
20
|
+
/* 6.23: Correction for FalseSymbol/TrueSymbol. DR0859 */
|
21
|
+
/* */
|
22
|
+
/* Corrected compilation errors for files */
|
23
|
+
/* generated by constructs-to-c. DR0861 */
|
24
|
+
/* */
|
25
|
+
/* 6.24: Removed DYNAMIC_SALIENCE, INCREMENTAL_RESET, */
|
26
|
+
/* and LOGICAL_DEPENDENCIES compilation flags. */
|
27
|
+
/* */
|
28
|
+
/* Renamed BOOLEAN macro type to intBool. */
|
29
|
+
/* */
|
30
|
+
/* Added access functions to the HaltRules flag. */
|
31
|
+
/* */
|
32
|
+
/* Added EnvGetNextFocus, EnvGetFocusChanged, and */
|
33
|
+
/* EnvSetFocusChanged functions. */
|
34
|
+
/* */
|
35
|
+
/* 6.30: Added additional developer statistics to help */
|
36
|
+
/* analyze join network performance. */
|
37
|
+
/* */
|
38
|
+
/* Removed pseudo-facts used in not CEs. */
|
39
|
+
/* */
|
40
|
+
/* Added context information for run functions. */
|
41
|
+
/* */
|
42
|
+
/* Added before rule firing callback function. */
|
43
|
+
/* */
|
44
|
+
/* Changed garbage collection algorithm. */
|
45
|
+
/* */
|
46
|
+
/* Changed integer type/precision. */
|
47
|
+
/* */
|
48
|
+
/* Added EnvHalt function. */
|
49
|
+
/* */
|
50
|
+
/* Used gensprintf instead of sprintf. */
|
51
|
+
/* */
|
52
|
+
/* Removed conditional code for unsupported */
|
53
|
+
/* compilers/operating systems (IBM_MCW, */
|
54
|
+
/* MAC_MCW, and IBM_TBC). */
|
55
|
+
/* Added const qualifiers to remove C++ */
|
56
|
+
/* deprecation warnings. */
|
57
|
+
/* */
|
58
|
+
/* Converted API macros to function calls. */
|
59
|
+
/* */
|
60
|
+
/* 6.40: Removed LOCALE definition. */
|
61
|
+
/* */
|
62
|
+
/* Pragma once and other inclusion changes. */
|
63
|
+
/* */
|
64
|
+
/* Added support for booleans with <stdbool.h>. */
|
65
|
+
/* */
|
66
|
+
/* Removed use of void pointers for specific */
|
67
|
+
/* data structures. */
|
68
|
+
/* */
|
69
|
+
/* ALLOW_ENVIRONMENT_GLOBALS no longer supported. */
|
70
|
+
/* */
|
71
|
+
/* Incremental reset is always enabled. */
|
72
|
+
/* */
|
73
|
+
/* UDF redesign. */
|
74
|
+
/* */
|
75
|
+
/*************************************************************/
|
76
|
+
|
77
|
+
#ifndef _H_engine
|
78
|
+
|
79
|
+
#pragma once
|
80
|
+
|
81
|
+
#define _H_engine
|
82
|
+
|
83
|
+
typedef struct focalModule FocalModule;
|
84
|
+
|
85
|
+
#include "lgcldpnd.h"
|
86
|
+
#include "ruledef.h"
|
87
|
+
#include "network.h"
|
88
|
+
#include "moduldef.h"
|
89
|
+
#include "retract.h"
|
90
|
+
|
91
|
+
struct focalModule
|
92
|
+
{
|
93
|
+
Defmodule *theModule;
|
94
|
+
struct defruleModule *theDefruleModule;
|
95
|
+
FocalModule *next;
|
96
|
+
};
|
97
|
+
|
98
|
+
typedef struct ruleFiredFunctionItem RuleFiredFunctionItem;
|
99
|
+
typedef void RuleFiredFunction(Environment *,Activation *,void *);
|
100
|
+
|
101
|
+
struct ruleFiredFunctionItem
|
102
|
+
{
|
103
|
+
const char *name;
|
104
|
+
RuleFiredFunction *func;
|
105
|
+
int priority;
|
106
|
+
RuleFiredFunctionItem *next;
|
107
|
+
void *context;
|
108
|
+
};
|
109
|
+
|
110
|
+
#define ENGINE_DATA 18
|
111
|
+
|
112
|
+
struct engineData
|
113
|
+
{
|
114
|
+
Defrule *ExecutingRule;
|
115
|
+
bool HaltRules;
|
116
|
+
struct joinNode *TheLogicalJoin;
|
117
|
+
struct partialMatch *TheLogicalBind;
|
118
|
+
struct dependency *UnsupportedDataEntities;
|
119
|
+
bool alreadyEntered;
|
120
|
+
RuleFiredFunctionItem *ListOfAfterRuleFiresFunctions;
|
121
|
+
RuleFiredFunctionItem *ListOfBeforeRuleFiresFunctions;
|
122
|
+
FocalModule *CurrentFocus;
|
123
|
+
bool FocusChanged;
|
124
|
+
#if DEBUGGING_FUNCTIONS
|
125
|
+
bool WatchStatistics;
|
126
|
+
bool WatchFocus;
|
127
|
+
#endif
|
128
|
+
bool IncrementalResetInProgress;
|
129
|
+
bool JoinOperationInProgress;
|
130
|
+
struct partialMatch *GlobalLHSBinds;
|
131
|
+
struct partialMatch *GlobalRHSBinds;
|
132
|
+
struct joinNode *GlobalJoin;
|
133
|
+
struct partialMatch *GarbagePartialMatches;
|
134
|
+
struct alphaMatch *GarbageAlphaMatches;
|
135
|
+
bool AlreadyRunning;
|
136
|
+
#if DEVELOPER
|
137
|
+
long leftToRightComparisons;
|
138
|
+
long rightToLeftComparisons;
|
139
|
+
long leftToRightSucceeds;
|
140
|
+
long rightToLeftSucceeds;
|
141
|
+
long leftToRightLoops;
|
142
|
+
long rightToLeftLoops;
|
143
|
+
long findNextConflictingComparisons;
|
144
|
+
long betaHashHTSkips;
|
145
|
+
long betaHashListSkips;
|
146
|
+
long unneededMarkerCompare;
|
147
|
+
#endif
|
148
|
+
};
|
149
|
+
|
150
|
+
#define EngineData(theEnv) ((struct engineData *) GetEnvironmentData(theEnv,ENGINE_DATA))
|
151
|
+
|
152
|
+
#define MAX_PATTERNS_CHECKED 64
|
153
|
+
|
154
|
+
long long Run(Environment *,long long);
|
155
|
+
bool AddAfterRuleFiresFunction(Environment *,const char *,
|
156
|
+
RuleFiredFunction *,int,void *);
|
157
|
+
bool RemoveAfterRuleFiresFunction(Environment *,const char *);
|
158
|
+
bool AddBeforeRuleFiresFunction(Environment *,const char *,
|
159
|
+
RuleFiredFunction *,int,void *);
|
160
|
+
bool RemoveBeforeRuleFiresFunction(Environment *,const char *);
|
161
|
+
RuleFiredFunctionItem *AddRuleFiredFunctionToCallList(Environment *,const char *,int,RuleFiredFunction *,
|
162
|
+
RuleFiredFunctionItem *,void *);
|
163
|
+
RuleFiredFunctionItem *RemoveRuleFiredFunctionFromCallList(Environment *,const char *,
|
164
|
+
RuleFiredFunctionItem *,bool *);
|
165
|
+
void DeallocateRuleFiredCallList(Environment *,RuleFiredFunctionItem *);
|
166
|
+
void InitializeEngine(Environment *);
|
167
|
+
void SetBreak(Defrule *);
|
168
|
+
void Halt(Environment *);
|
169
|
+
bool RemoveBreak(Defrule *);
|
170
|
+
void RemoveAllBreakpoints(Environment *);
|
171
|
+
void ShowBreaks(Environment *,const char *,Defmodule *);
|
172
|
+
bool DefruleHasBreakpoint(Defrule *);
|
173
|
+
void RunCommand(Environment *,UDFContext *,UDFValue *);
|
174
|
+
void SetBreakCommand(Environment *,UDFContext *,UDFValue *);
|
175
|
+
void RemoveBreakCommand(Environment *,UDFContext *,UDFValue *);
|
176
|
+
void ShowBreaksCommand(Environment *,UDFContext *,UDFValue *);
|
177
|
+
void HaltCommand(Environment *,UDFContext *,UDFValue *);
|
178
|
+
void FocusCommand(Environment *,UDFContext *,UDFValue *);
|
179
|
+
void ClearFocusStackCommand(Environment *,UDFContext *,UDFValue *);
|
180
|
+
void ClearFocusStack(Environment *);
|
181
|
+
FocalModule *GetNextFocus(Environment *,FocalModule *);
|
182
|
+
const char *FocalModuleName(FocalModule *);
|
183
|
+
Defmodule *FocalModuleModule(FocalModule *);
|
184
|
+
void Focus(Defmodule *);
|
185
|
+
bool GetFocusChanged(Environment *);
|
186
|
+
void SetFocusChanged(Environment *,bool);
|
187
|
+
void ListFocusStackCommand(Environment *,UDFContext *,UDFValue *);
|
188
|
+
void ListFocusStack(Environment *,const char *);
|
189
|
+
void GetFocusStackFunction(Environment *,UDFContext *,UDFValue *);
|
190
|
+
void GetFocusStack(Environment *,CLIPSValue *);
|
191
|
+
void PopFocusFunction(Environment *,UDFContext *,UDFValue *);
|
192
|
+
Defmodule *PopFocus(Environment *);
|
193
|
+
bool GetHaltRules(Environment *);
|
194
|
+
void SetHaltRules(Environment *,bool);
|
195
|
+
Activation *NextActivationToFire(Environment *);
|
196
|
+
|
197
|
+
#endif /* _H_engine */
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
|
@@ -0,0 +1,276 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 11/01/16 */
|
5
|
+
/* */
|
6
|
+
/* ENTITIES 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.40: Created to store key data structures. */
|
20
|
+
/* */
|
21
|
+
/*************************************************************/
|
22
|
+
|
23
|
+
#ifndef _H_entities
|
24
|
+
|
25
|
+
#pragma once
|
26
|
+
|
27
|
+
#define _H_entities
|
28
|
+
|
29
|
+
typedef struct clipsVoid CLIPSVoid;
|
30
|
+
typedef struct clipsLexeme CLIPSLexeme;
|
31
|
+
typedef struct clipsFloat CLIPSFloat;
|
32
|
+
typedef struct clipsInteger CLIPSInteger;
|
33
|
+
typedef struct clipsBitMap CLIPSBitMap;
|
34
|
+
typedef struct clipsExternalAddress CLIPSExternalAddress;
|
35
|
+
typedef struct typeHeader TypeHeader;
|
36
|
+
|
37
|
+
typedef struct multifield Multifield;
|
38
|
+
|
39
|
+
typedef struct clipsValue CLIPSValue;
|
40
|
+
typedef struct udfValue UDFValue;
|
41
|
+
|
42
|
+
typedef struct fact Fact;
|
43
|
+
typedef struct instance Instance;
|
44
|
+
|
45
|
+
typedef struct expr Expression;
|
46
|
+
typedef struct functionDefinition FunctionDefinition;
|
47
|
+
typedef struct udfContext UDFContext;
|
48
|
+
|
49
|
+
typedef struct entityRecord EntityRecord;
|
50
|
+
|
51
|
+
typedef void EntityPrintFunction(Environment *,const char *,void *);
|
52
|
+
typedef bool EntityEvaluationFunction(Environment *,void *,UDFValue *);
|
53
|
+
typedef void EntityBusyCountFunction(Environment *,void *);
|
54
|
+
|
55
|
+
typedef struct patternEntityRecord PatternEntityRecord;
|
56
|
+
typedef struct patternEntity PatternEntity;
|
57
|
+
|
58
|
+
typedef bool BoolCallFunction(Environment *,void *);
|
59
|
+
typedef void VoidCallFunction(Environment *,void *);
|
60
|
+
typedef void VoidCallFunctionWithArg(Environment *,void *,void *);
|
61
|
+
|
62
|
+
/**************/
|
63
|
+
/* typeHeader */
|
64
|
+
/**************/
|
65
|
+
|
66
|
+
struct typeHeader
|
67
|
+
{
|
68
|
+
unsigned short type;
|
69
|
+
};
|
70
|
+
|
71
|
+
/*************/
|
72
|
+
/* clipsVoid */
|
73
|
+
/*************/
|
74
|
+
struct clipsVoid
|
75
|
+
{
|
76
|
+
TypeHeader header;
|
77
|
+
};
|
78
|
+
|
79
|
+
/***************/
|
80
|
+
/* clipsLexeme */
|
81
|
+
/***************/
|
82
|
+
struct clipsLexeme
|
83
|
+
{
|
84
|
+
TypeHeader header;
|
85
|
+
CLIPSLexeme *next;
|
86
|
+
long count;
|
87
|
+
unsigned int permanent : 1;
|
88
|
+
unsigned int markedEphemeral : 1;
|
89
|
+
unsigned int neededSymbol : 1;
|
90
|
+
unsigned int bucket : 29;
|
91
|
+
const char *contents;
|
92
|
+
};
|
93
|
+
|
94
|
+
/**************/
|
95
|
+
/* clipsFloat */
|
96
|
+
/**************/
|
97
|
+
struct clipsFloat
|
98
|
+
{
|
99
|
+
TypeHeader header;
|
100
|
+
CLIPSFloat *next;
|
101
|
+
long count;
|
102
|
+
unsigned int permanent : 1;
|
103
|
+
unsigned int markedEphemeral : 1;
|
104
|
+
unsigned int neededFloat : 1;
|
105
|
+
unsigned int bucket : 29;
|
106
|
+
double contents;
|
107
|
+
};
|
108
|
+
|
109
|
+
/****************/
|
110
|
+
/* clipsInteger */
|
111
|
+
/****************/
|
112
|
+
struct clipsInteger
|
113
|
+
{
|
114
|
+
TypeHeader header;
|
115
|
+
CLIPSInteger *next;
|
116
|
+
long count;
|
117
|
+
unsigned int permanent : 1;
|
118
|
+
unsigned int markedEphemeral : 1;
|
119
|
+
unsigned int neededInteger : 1;
|
120
|
+
unsigned int bucket : 29;
|
121
|
+
long long contents;
|
122
|
+
};
|
123
|
+
|
124
|
+
/***************/
|
125
|
+
/* clipsBitMap */
|
126
|
+
/***************/
|
127
|
+
struct clipsBitMap
|
128
|
+
{
|
129
|
+
TypeHeader header;
|
130
|
+
CLIPSBitMap *next;
|
131
|
+
long count;
|
132
|
+
unsigned int permanent : 1;
|
133
|
+
unsigned int markedEphemeral : 1;
|
134
|
+
unsigned int neededBitMap : 1;
|
135
|
+
unsigned int bucket : 29;
|
136
|
+
const char *contents;
|
137
|
+
unsigned short size;
|
138
|
+
};
|
139
|
+
|
140
|
+
/************************/
|
141
|
+
/* clipsExternalAddress */
|
142
|
+
/************************/
|
143
|
+
struct clipsExternalAddress
|
144
|
+
{
|
145
|
+
TypeHeader header;
|
146
|
+
CLIPSExternalAddress *next;
|
147
|
+
long count;
|
148
|
+
unsigned int permanent : 1;
|
149
|
+
unsigned int markedEphemeral : 1;
|
150
|
+
unsigned int neededPointer : 1;
|
151
|
+
unsigned int bucket : 29;
|
152
|
+
void *contents;
|
153
|
+
unsigned short type;
|
154
|
+
};
|
155
|
+
|
156
|
+
/**************/
|
157
|
+
/* clipsValue */
|
158
|
+
/**************/
|
159
|
+
struct clipsValue
|
160
|
+
{
|
161
|
+
union
|
162
|
+
{
|
163
|
+
void *value;
|
164
|
+
TypeHeader *header;
|
165
|
+
CLIPSLexeme *lexemeValue;
|
166
|
+
CLIPSFloat *floatValue;
|
167
|
+
CLIPSInteger *integerValue;
|
168
|
+
CLIPSVoid *voidValue;
|
169
|
+
Multifield *multifieldValue;
|
170
|
+
Fact *factValue;
|
171
|
+
Instance *instanceValue;
|
172
|
+
CLIPSExternalAddress *externalAddressValue;
|
173
|
+
};
|
174
|
+
};
|
175
|
+
|
176
|
+
/**************/
|
177
|
+
/* multifield */
|
178
|
+
/**************/
|
179
|
+
struct multifield
|
180
|
+
{
|
181
|
+
TypeHeader header;
|
182
|
+
unsigned busyCount;
|
183
|
+
size_t length;
|
184
|
+
Multifield *next;
|
185
|
+
CLIPSValue contents[1];
|
186
|
+
};
|
187
|
+
|
188
|
+
/************/
|
189
|
+
/* udfValue */
|
190
|
+
/************/
|
191
|
+
struct udfValue
|
192
|
+
{
|
193
|
+
void *supplementalInfo;
|
194
|
+
union
|
195
|
+
{
|
196
|
+
void *value;
|
197
|
+
TypeHeader *header;
|
198
|
+
CLIPSLexeme *lexemeValue;
|
199
|
+
CLIPSFloat *floatValue;
|
200
|
+
CLIPSInteger *integerValue;
|
201
|
+
CLIPSVoid *voidValue;
|
202
|
+
Multifield *multifieldValue;
|
203
|
+
Fact *factValue;
|
204
|
+
Instance *instanceValue;
|
205
|
+
CLIPSExternalAddress *externalAddressValue;
|
206
|
+
};
|
207
|
+
size_t begin;
|
208
|
+
size_t range;
|
209
|
+
struct udfValue *next;
|
210
|
+
};
|
211
|
+
|
212
|
+
/**************/
|
213
|
+
/* udfContext */
|
214
|
+
/**************/
|
215
|
+
struct udfContext
|
216
|
+
{
|
217
|
+
Environment *environment;
|
218
|
+
void *context;
|
219
|
+
FunctionDefinition *theFunction;
|
220
|
+
unsigned int lastPosition;
|
221
|
+
Expression *lastArg;
|
222
|
+
UDFValue *returnValue;
|
223
|
+
};
|
224
|
+
|
225
|
+
/****************/
|
226
|
+
/* entityRecord */
|
227
|
+
/****************/
|
228
|
+
struct entityRecord
|
229
|
+
{
|
230
|
+
const char *name;
|
231
|
+
unsigned int type : 13;
|
232
|
+
unsigned int copyToEvaluate : 1;
|
233
|
+
unsigned int bitMap : 1;
|
234
|
+
unsigned int addsToRuleComplexity : 1;
|
235
|
+
EntityPrintFunction *shortPrintFunction;
|
236
|
+
EntityPrintFunction *longPrintFunction;
|
237
|
+
bool (*deleteFunction)(void *,Environment *);
|
238
|
+
EntityEvaluationFunction *evaluateFunction;
|
239
|
+
void *(*getNextFunction)(void *,void *);
|
240
|
+
EntityBusyCountFunction *decrementBusyCount;
|
241
|
+
EntityBusyCountFunction *incrementBusyCount;
|
242
|
+
void (*propagateDepth)(void *,void *);
|
243
|
+
void (*markNeeded)(void *,void *);
|
244
|
+
void (*install)(void *,void *);
|
245
|
+
void (*deinstall)(void *,void *);
|
246
|
+
struct userData *usrData;
|
247
|
+
};
|
248
|
+
|
249
|
+
/***********************/
|
250
|
+
/* patternEntityRecord */
|
251
|
+
/***********************/
|
252
|
+
struct patternEntityRecord
|
253
|
+
{
|
254
|
+
struct entityRecord base;
|
255
|
+
void (*decrementBasisCount)(Environment *,void *);
|
256
|
+
void (*incrementBasisCount)(Environment *,void *);
|
257
|
+
void (*matchFunction)(Environment *,void *);
|
258
|
+
bool (*synchronized)(Environment *,void *);
|
259
|
+
bool (*isDeleted)(Environment *,void *);
|
260
|
+
};
|
261
|
+
|
262
|
+
/*****************/
|
263
|
+
/* patternEntity */
|
264
|
+
/*****************/
|
265
|
+
struct patternEntity
|
266
|
+
{
|
267
|
+
TypeHeader header;
|
268
|
+
struct patternEntityRecord *theInfo;
|
269
|
+
void *dependents;
|
270
|
+
unsigned busyCount;
|
271
|
+
unsigned long long timeTag;
|
272
|
+
};
|
273
|
+
|
274
|
+
#endif /* _H_entities */
|
275
|
+
|
276
|
+
|