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,325 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 07/02/18 */
|
5
|
+
/* */
|
6
|
+
/* FACTS MANAGER 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.23: Added support for templates maintaining their */
|
20
|
+
/* own list of facts. */
|
21
|
+
/* */
|
22
|
+
/* 6.24: Removed LOGICAL_DEPENDENCIES compilation flag. */
|
23
|
+
/* */
|
24
|
+
/* Renamed BOOLEAN macro type to intBool. */
|
25
|
+
/* */
|
26
|
+
/* AssignFactSlotDefaults function does not */
|
27
|
+
/* properly handle defaults for multifield slots. */
|
28
|
+
/* DR0869 */
|
29
|
+
/* */
|
30
|
+
/* Support for ppfact command. */
|
31
|
+
/* */
|
32
|
+
/* 6.30: Callback function support for assertion, */
|
33
|
+
/* retraction, and modification of facts. */
|
34
|
+
/* */
|
35
|
+
/* Updates to fact pattern entity record. */
|
36
|
+
/* */
|
37
|
+
/* Changed integer type/precision. */
|
38
|
+
/* */
|
39
|
+
/* Changed garbage collection algorithm. */
|
40
|
+
/* */
|
41
|
+
/* Removed conditional code for unsupported */
|
42
|
+
/* compilers/operating systems (IBM_MCW, */
|
43
|
+
/* MAC_MCW, and IBM_TBC). */
|
44
|
+
/* */
|
45
|
+
/* Added const qualifiers to remove C++ */
|
46
|
+
/* deprecation warnings. */
|
47
|
+
/* */
|
48
|
+
/* Converted API macros to function calls. */
|
49
|
+
/* */
|
50
|
+
/* Removed unused global variables. */
|
51
|
+
/* */
|
52
|
+
/* Added code to prevent a clear command from */
|
53
|
+
/* being executed during fact assertions via */
|
54
|
+
/* JoinOperationInProgress mechanism. */
|
55
|
+
/* */
|
56
|
+
/* 6.40: Removed LOCALE definition. */
|
57
|
+
/* */
|
58
|
+
/* Pragma once and other inclusion changes. */
|
59
|
+
/* */
|
60
|
+
/* Added support for booleans with <stdbool.h>. */
|
61
|
+
/* */
|
62
|
+
/* Removed use of void pointers for specific */
|
63
|
+
/* data structures. */
|
64
|
+
/* */
|
65
|
+
/* ALLOW_ENVIRONMENT_GLOBALS no longer supported. */
|
66
|
+
/* */
|
67
|
+
/* UDF redesign. */
|
68
|
+
/* */
|
69
|
+
/* Watch facts for modify command only prints */
|
70
|
+
/* changed slots. */
|
71
|
+
/* */
|
72
|
+
/* Modify command preserves fact id and address. */
|
73
|
+
/* */
|
74
|
+
/* Pretty print functions accept optional logical */
|
75
|
+
/* name argument. */
|
76
|
+
/* */
|
77
|
+
/*************************************************************/
|
78
|
+
|
79
|
+
#ifndef _H_factmngr
|
80
|
+
|
81
|
+
#pragma once
|
82
|
+
|
83
|
+
#define _H_factmngr
|
84
|
+
|
85
|
+
typedef struct factBuilder FactBuilder;
|
86
|
+
typedef struct factModifier FactModifier;
|
87
|
+
|
88
|
+
#include "entities.h"
|
89
|
+
#include "conscomp.h"
|
90
|
+
#include "tmpltdef.h"
|
91
|
+
|
92
|
+
typedef void ModifyCallFunction(Environment *,Fact *,Fact *,void *);
|
93
|
+
typedef struct modifyCallFunctionItem ModifyCallFunctionItem;
|
94
|
+
|
95
|
+
typedef enum
|
96
|
+
{
|
97
|
+
RE_NO_ERROR = 0,
|
98
|
+
RE_NULL_POINTER_ERROR,
|
99
|
+
RE_COULD_NOT_RETRACT_ERROR,
|
100
|
+
RE_RULE_NETWORK_ERROR
|
101
|
+
} RetractError;
|
102
|
+
|
103
|
+
typedef enum
|
104
|
+
{
|
105
|
+
AE_NO_ERROR = 0,
|
106
|
+
AE_NULL_POINTER_ERROR,
|
107
|
+
AE_RETRACTED_ERROR,
|
108
|
+
AE_COULD_NOT_ASSERT_ERROR,
|
109
|
+
AE_RULE_NETWORK_ERROR
|
110
|
+
} AssertError;
|
111
|
+
|
112
|
+
typedef enum
|
113
|
+
{
|
114
|
+
ASE_NO_ERROR = 0,
|
115
|
+
ASE_NULL_POINTER_ERROR,
|
116
|
+
ASE_PARSING_ERROR,
|
117
|
+
ASE_COULD_NOT_ASSERT_ERROR,
|
118
|
+
ASE_RULE_NETWORK_ERROR
|
119
|
+
} AssertStringError;
|
120
|
+
|
121
|
+
typedef enum
|
122
|
+
{
|
123
|
+
FBE_NO_ERROR = 0,
|
124
|
+
FBE_NULL_POINTER_ERROR,
|
125
|
+
FBE_DEFTEMPLATE_NOT_FOUND_ERROR,
|
126
|
+
FBE_IMPLIED_DEFTEMPLATE_ERROR,
|
127
|
+
FBE_COULD_NOT_ASSERT_ERROR,
|
128
|
+
FBE_RULE_NETWORK_ERROR
|
129
|
+
} FactBuilderError;
|
130
|
+
|
131
|
+
typedef enum
|
132
|
+
{
|
133
|
+
FME_NO_ERROR = 0,
|
134
|
+
FME_NULL_POINTER_ERROR,
|
135
|
+
FME_RETRACTED_ERROR,
|
136
|
+
FME_IMPLIED_DEFTEMPLATE_ERROR,
|
137
|
+
FME_COULD_NOT_MODIFY_ERROR,
|
138
|
+
FME_RULE_NETWORK_ERROR
|
139
|
+
} FactModifierError;
|
140
|
+
|
141
|
+
struct modifyCallFunctionItem
|
142
|
+
{
|
143
|
+
const char *name;
|
144
|
+
ModifyCallFunction *func;
|
145
|
+
int priority;
|
146
|
+
ModifyCallFunctionItem *next;
|
147
|
+
void *context;
|
148
|
+
};
|
149
|
+
|
150
|
+
struct fact
|
151
|
+
{
|
152
|
+
union
|
153
|
+
{
|
154
|
+
struct patternEntity patternHeader;
|
155
|
+
TypeHeader header;
|
156
|
+
};
|
157
|
+
Deftemplate *whichDeftemplate;
|
158
|
+
void *list;
|
159
|
+
long long factIndex;
|
160
|
+
unsigned long hashValue;
|
161
|
+
unsigned int garbage : 1;
|
162
|
+
Fact *previousFact;
|
163
|
+
Fact *nextFact;
|
164
|
+
Fact *previousTemplateFact;
|
165
|
+
Fact *nextTemplateFact;
|
166
|
+
Multifield *basisSlots;
|
167
|
+
Multifield theProposition;
|
168
|
+
};
|
169
|
+
|
170
|
+
struct factBuilder
|
171
|
+
{
|
172
|
+
Environment *fbEnv;
|
173
|
+
Deftemplate *fbDeftemplate;
|
174
|
+
CLIPSValue *fbValueArray;
|
175
|
+
};
|
176
|
+
|
177
|
+
struct factModifier
|
178
|
+
{
|
179
|
+
Environment *fmEnv;
|
180
|
+
Fact *fmOldFact;
|
181
|
+
CLIPSValue *fmValueArray;
|
182
|
+
char *changeMap;
|
183
|
+
};
|
184
|
+
|
185
|
+
#include "facthsh.h"
|
186
|
+
|
187
|
+
#define FACTS_DATA 3
|
188
|
+
|
189
|
+
struct factsData
|
190
|
+
{
|
191
|
+
bool ChangeToFactList;
|
192
|
+
#if DEBUGGING_FUNCTIONS
|
193
|
+
bool WatchFacts;
|
194
|
+
#endif
|
195
|
+
Fact DummyFact;
|
196
|
+
Fact *GarbageFacts;
|
197
|
+
Fact *LastFact;
|
198
|
+
Fact *FactList;
|
199
|
+
long long NextFactIndex;
|
200
|
+
unsigned long NumberOfFacts;
|
201
|
+
struct callFunctionItemWithArg *ListOfAssertFunctions;
|
202
|
+
struct callFunctionItemWithArg *ListOfRetractFunctions;
|
203
|
+
ModifyCallFunctionItem *ListOfModifyFunctions;
|
204
|
+
struct patternEntityRecord FactInfo;
|
205
|
+
#if (! RUN_TIME) && (! BLOAD_ONLY)
|
206
|
+
Deftemplate *CurrentDeftemplate;
|
207
|
+
#endif
|
208
|
+
#if DEFRULE_CONSTRUCT && (! RUN_TIME) && DEFTEMPLATE_CONSTRUCT && CONSTRUCT_COMPILER
|
209
|
+
struct CodeGeneratorItem *FactCodeItem;
|
210
|
+
#endif
|
211
|
+
struct factHashEntry **FactHashTable;
|
212
|
+
unsigned long FactHashTableSize;
|
213
|
+
bool FactDuplication;
|
214
|
+
#if DEFRULE_CONSTRUCT
|
215
|
+
Fact *CurrentPatternFact;
|
216
|
+
struct multifieldMarker *CurrentPatternMarks;
|
217
|
+
#endif
|
218
|
+
long LastModuleIndex;
|
219
|
+
RetractError retractError;
|
220
|
+
AssertError assertError;
|
221
|
+
AssertStringError assertStringError;
|
222
|
+
FactModifierError factModifierError;
|
223
|
+
FactBuilderError factBuilderError;
|
224
|
+
};
|
225
|
+
|
226
|
+
#define FactData(theEnv) ((struct factsData *) GetEnvironmentData(theEnv,FACTS_DATA))
|
227
|
+
|
228
|
+
Fact *Assert(Fact *);
|
229
|
+
AssertStringError GetAssertStringError(Environment *);
|
230
|
+
Fact *AssertDriver(Fact *,long long,Fact *,Fact *,char *);
|
231
|
+
Fact *AssertString(Environment *,const char *);
|
232
|
+
Fact *CreateFact(Deftemplate *);
|
233
|
+
void ReleaseFact(Fact *);
|
234
|
+
void DecrementFactCallback(Environment *,Fact *);
|
235
|
+
long long FactIndex(Fact *);
|
236
|
+
GetSlotError GetFactSlot(Fact *,const char *,CLIPSValue *);
|
237
|
+
void PrintFactWithIdentifier(Environment *,const char *,Fact *,const char *);
|
238
|
+
void PrintFact(Environment *,const char *,Fact *,bool,bool,const char *);
|
239
|
+
void PrintFactIdentifierInLongForm(Environment *,const char *,Fact *);
|
240
|
+
RetractError Retract(Fact *);
|
241
|
+
RetractError RetractDriver(Environment *,Fact *,bool,char *);
|
242
|
+
RetractError RetractAllFacts(Environment *);
|
243
|
+
Fact *CreateFactBySize(Environment *,size_t);
|
244
|
+
void FactInstall(Environment *,Fact *);
|
245
|
+
void FactDeinstall(Environment *,Fact *);
|
246
|
+
Fact *GetNextFact(Environment *,Fact *);
|
247
|
+
Fact *GetNextFactInScope(Environment *,Fact *);
|
248
|
+
void FactPPForm(Fact *,StringBuilder *,bool);
|
249
|
+
bool GetFactListChanged(Environment *);
|
250
|
+
void SetFactListChanged(Environment *,bool);
|
251
|
+
unsigned long GetNumberOfFacts(Environment *);
|
252
|
+
void InitializeFacts(Environment *);
|
253
|
+
Fact *FindIndexedFact(Environment *,long long);
|
254
|
+
void RetainFact(Fact *);
|
255
|
+
void IncrementFactCallback(Environment *,Fact *);
|
256
|
+
void PrintFactIdentifier(Environment *,const char *,Fact *);
|
257
|
+
void DecrementFactBasisCount(Environment *,Fact *);
|
258
|
+
void IncrementFactBasisCount(Environment *,Fact *);
|
259
|
+
bool FactIsDeleted(Environment *,Fact *);
|
260
|
+
void ReturnFact(Environment *,Fact *);
|
261
|
+
void MatchFactFunction(Environment *,Fact *);
|
262
|
+
bool PutFactSlot(Fact *,const char *,CLIPSValue *);
|
263
|
+
bool AssignFactSlotDefaults(Fact *);
|
264
|
+
bool CopyFactSlotValues(Environment *,Fact *,Fact *);
|
265
|
+
bool DeftemplateSlotDefault(Environment *,Deftemplate *,
|
266
|
+
struct templateSlot *,UDFValue *,bool);
|
267
|
+
bool AddAssertFunction(Environment *,const char *,
|
268
|
+
VoidCallFunctionWithArg *,int,void *);
|
269
|
+
bool RemoveAssertFunction(Environment *,const char *);
|
270
|
+
bool AddRetractFunction(Environment *,const char *,
|
271
|
+
VoidCallFunctionWithArg *,int,void *);
|
272
|
+
bool RemoveRetractFunction(Environment *,const char *);
|
273
|
+
FactBuilder *CreateFactBuilder(Environment *,const char *);
|
274
|
+
PutSlotError FBPutSlot(FactBuilder *,const char *,CLIPSValue *);
|
275
|
+
Fact *FBAssert(FactBuilder *);
|
276
|
+
void FBDispose(FactBuilder *);
|
277
|
+
void FBAbort(FactBuilder *);
|
278
|
+
FactBuilderError FBSetDeftemplate(FactBuilder *,const char *);
|
279
|
+
PutSlotError FBPutSlotCLIPSInteger(FactBuilder *,const char *,CLIPSInteger *);
|
280
|
+
PutSlotError FBPutSlotInteger(FactBuilder *,const char *,long long);
|
281
|
+
PutSlotError FBPutSlotCLIPSFloat(FactBuilder *,const char *,CLIPSFloat *);
|
282
|
+
PutSlotError FBPutSlotFloat(FactBuilder *,const char *,double);
|
283
|
+
PutSlotError FBPutSlotCLIPSLexeme(FactBuilder *,const char *,CLIPSLexeme *);
|
284
|
+
PutSlotError FBPutSlotSymbol(FactBuilder *,const char *,const char *);
|
285
|
+
PutSlotError FBPutSlotString(FactBuilder *,const char *,const char *);
|
286
|
+
PutSlotError FBPutSlotInstanceName(FactBuilder *,const char *,const char *);
|
287
|
+
PutSlotError FBPutSlotFact(FactBuilder *,const char *,Fact *);
|
288
|
+
PutSlotError FBPutSlotInstance(FactBuilder *,const char *,Instance *);
|
289
|
+
PutSlotError FBPutSlotCLIPSExternalAddress(FactBuilder *,const char *,CLIPSExternalAddress *);
|
290
|
+
PutSlotError FBPutSlotMultifield(FactBuilder *,const char *,Multifield *);
|
291
|
+
FactBuilderError FBError(Environment *);
|
292
|
+
FactModifier *CreateFactModifier(Environment *,Fact *);
|
293
|
+
PutSlotError FMPutSlot(FactModifier *,const char *,CLIPSValue *);
|
294
|
+
Fact *FMModify(FactModifier *);
|
295
|
+
void FMDispose(FactModifier *);
|
296
|
+
void FMAbort(FactModifier *);
|
297
|
+
FactModifierError FMSetFact(FactModifier *,Fact *);
|
298
|
+
PutSlotError FMPutSlotCLIPSInteger(FactModifier *,const char *,CLIPSInteger *);
|
299
|
+
PutSlotError FMPutSlotInteger(FactModifier *,const char *,long long);
|
300
|
+
PutSlotError FMPutSlotCLIPSFloat(FactModifier *,const char *,CLIPSFloat *);
|
301
|
+
PutSlotError FMPutSlotFloat(FactModifier *,const char *,double);
|
302
|
+
PutSlotError FMPutSlotCLIPSLexeme(FactModifier *,const char *,CLIPSLexeme *);
|
303
|
+
PutSlotError FMPutSlotSymbol(FactModifier *,const char *,const char *);
|
304
|
+
PutSlotError FMPutSlotString(FactModifier *,const char *,const char *);
|
305
|
+
PutSlotError FMPutSlotInstanceName(FactModifier *,const char *,const char *);
|
306
|
+
PutSlotError FMPutSlotFact(FactModifier *,const char *,Fact *);
|
307
|
+
PutSlotError FMPutSlotInstance(FactModifier *,const char *,Instance *);
|
308
|
+
PutSlotError FMPutSlotExternalAddress(FactModifier *,const char *,CLIPSExternalAddress *);
|
309
|
+
PutSlotError FMPutSlotMultifield(FactModifier *,const char *,Multifield *);
|
310
|
+
FactModifierError FMError(Environment *);
|
311
|
+
|
312
|
+
bool AddModifyFunction(Environment *,const char *,ModifyCallFunction *,int,void *);
|
313
|
+
bool RemoveModifyFunction(Environment *,const char *);
|
314
|
+
ModifyCallFunctionItem *AddModifyFunctionToCallList(Environment *,const char *,int,
|
315
|
+
ModifyCallFunction *,ModifyCallFunctionItem *,void *);
|
316
|
+
ModifyCallFunctionItem *RemoveModifyFunctionFromCallList(Environment *,const char *,
|
317
|
+
ModifyCallFunctionItem *,bool *);
|
318
|
+
void DeallocateModifyCallList(Environment *,ModifyCallFunctionItem *);
|
319
|
+
|
320
|
+
#endif /* _H_factmngr */
|
321
|
+
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
|