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,85 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 11/01/16 */
|
5
|
+
/* */
|
6
|
+
/* CONFLICT RESOLUTION STRATEGY HEADER MODULE */
|
7
|
+
/*******************************************************/
|
8
|
+
|
9
|
+
/*************************************************************/
|
10
|
+
/* Purpose: Used to determine where a new activation is */
|
11
|
+
/* placed on the agenda based on the current conflict */
|
12
|
+
/* resolution strategy (depth, breadth, mea, lex, */
|
13
|
+
/* simplicity, or complexity). Also provides the */
|
14
|
+
/* set-strategy and get-strategy commands. */
|
15
|
+
/* */
|
16
|
+
/* Principal Programmer(s): */
|
17
|
+
/* Gary D. Riley */
|
18
|
+
/* */
|
19
|
+
/* Contributing Programmer(s): */
|
20
|
+
/* */
|
21
|
+
/* Revision History: */
|
22
|
+
/* */
|
23
|
+
/* 6.23: Corrected compilation errors for files */
|
24
|
+
/* generated by constructs-to-c. DR0861 */
|
25
|
+
/* */
|
26
|
+
/* 6.24: Removed CONFLICT_RESOLUTION_STRATEGIES */
|
27
|
+
/* compilation flag. */
|
28
|
+
/* */
|
29
|
+
/* 6.30: Added salience groups to improve performance */
|
30
|
+
/* with large numbers of activations of different */
|
31
|
+
/* saliences. */
|
32
|
+
/* */
|
33
|
+
/* Removed pseudo-facts used for not CEs. */
|
34
|
+
/* */
|
35
|
+
/* Changed integer type/precision. */
|
36
|
+
/* */
|
37
|
+
/* Added const qualifiers to remove C++ */
|
38
|
+
/* deprecation warnings. */
|
39
|
+
/* */
|
40
|
+
/* Converted API macros to function calls. */
|
41
|
+
/* */
|
42
|
+
/* 6.40: Removed LOCALE definition. */
|
43
|
+
/* */
|
44
|
+
/* Pragma once and other inclusion changes. */
|
45
|
+
/* */
|
46
|
+
/* Removed use of void pointers for specific */
|
47
|
+
/* data structures. */
|
48
|
+
/* */
|
49
|
+
/* ALLOW_ENVIRONMENT_GLOBALS no longer supported. */
|
50
|
+
/* */
|
51
|
+
/* UDF redesign. */
|
52
|
+
/* */
|
53
|
+
/*************************************************************/
|
54
|
+
|
55
|
+
#ifndef _H_crstrtgy
|
56
|
+
|
57
|
+
#pragma once
|
58
|
+
|
59
|
+
#define _H_crstrtgy
|
60
|
+
|
61
|
+
typedef enum
|
62
|
+
{
|
63
|
+
DEPTH_STRATEGY,
|
64
|
+
BREADTH_STRATEGY,
|
65
|
+
LEX_STRATEGY,
|
66
|
+
MEA_STRATEGY,
|
67
|
+
COMPLEXITY_STRATEGY,
|
68
|
+
SIMPLICITY_STRATEGY,
|
69
|
+
RANDOM_STRATEGY
|
70
|
+
} StrategyType;
|
71
|
+
|
72
|
+
#include "agenda.h"
|
73
|
+
#include "entities.h"
|
74
|
+
|
75
|
+
#define DEFAULT_STRATEGY DEPTH_STRATEGY
|
76
|
+
|
77
|
+
void PlaceActivation(Environment *,Activation **,Activation *,struct salienceGroup *);
|
78
|
+
StrategyType SetStrategy(Environment *,StrategyType);
|
79
|
+
StrategyType GetStrategy(Environment *);
|
80
|
+
void SetStrategyCommand(Environment *,UDFContext *,UDFValue *);
|
81
|
+
void GetStrategyCommand(Environment *,UDFContext *,UDFValue *);
|
82
|
+
|
83
|
+
#endif /* _H_crstrtgy */
|
84
|
+
|
85
|
+
|
@@ -0,0 +1,185 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 07/30/16 */
|
5
|
+
/* */
|
6
|
+
/* CONSTRUCT BINARY LOAD/SAVE MODULE */
|
7
|
+
/*******************************************************/
|
8
|
+
|
9
|
+
/*************************************************************/
|
10
|
+
/* Purpose: Binary load/save functions for construct */
|
11
|
+
/* headers. */
|
12
|
+
/* */
|
13
|
+
/* Principal Programmer(s): */
|
14
|
+
/* Brian L. Dantes */
|
15
|
+
/* */
|
16
|
+
/* Contributing Programmer(s): */
|
17
|
+
/* */
|
18
|
+
/* Revision History: */
|
19
|
+
/* */
|
20
|
+
/* 6.40: Pragma once and other inclusion changes. */
|
21
|
+
/* */
|
22
|
+
/* Added support for booleans with <stdbool.h>. */
|
23
|
+
/* */
|
24
|
+
/* Removed use of void pointers for specific */
|
25
|
+
/* data structures. */
|
26
|
+
/* */
|
27
|
+
/*************************************************************/
|
28
|
+
|
29
|
+
#include "setup.h"
|
30
|
+
|
31
|
+
#if BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE
|
32
|
+
|
33
|
+
#include "bload.h"
|
34
|
+
#include "envrnmnt.h"
|
35
|
+
|
36
|
+
#if BLOAD_AND_BSAVE
|
37
|
+
#include "bsave.h"
|
38
|
+
#endif
|
39
|
+
|
40
|
+
#include "moduldef.h"
|
41
|
+
|
42
|
+
#include "cstrcbin.h"
|
43
|
+
|
44
|
+
#if BLOAD_AND_BSAVE
|
45
|
+
|
46
|
+
/***************************************************
|
47
|
+
NAME : MarkConstructHeaderNeededItems
|
48
|
+
DESCRIPTION : Marks symbols and other ephemerals
|
49
|
+
needed by a construct header, and
|
50
|
+
sets the binary-save id for the
|
51
|
+
construct
|
52
|
+
INPUTS : 1) The construct header
|
53
|
+
2) The binary-save id to assign
|
54
|
+
RETURNS : Nothing useful
|
55
|
+
SIDE EFFECTS : Id set and items marked
|
56
|
+
NOTES : None
|
57
|
+
***************************************************/
|
58
|
+
void MarkConstructHeaderNeededItems(
|
59
|
+
ConstructHeader *theConstruct,
|
60
|
+
unsigned long theBsaveID)
|
61
|
+
{
|
62
|
+
theConstruct->name->neededSymbol = true;
|
63
|
+
theConstruct->bsaveID = theBsaveID;
|
64
|
+
}
|
65
|
+
|
66
|
+
/******************************************************
|
67
|
+
NAME : AssignBsaveConstructHeaderVals
|
68
|
+
DESCRIPTION : Assigns value to the construct
|
69
|
+
header for saving in the binary file
|
70
|
+
INPUTS : 1) The binary-save buffer for the
|
71
|
+
construct header values
|
72
|
+
2) The actual construct header
|
73
|
+
RETURNS : Nothing useful
|
74
|
+
SIDE EFFECTS : Binary-save buffer for construct
|
75
|
+
header written with appropriate values
|
76
|
+
NOTES : Assumes that module items for this
|
77
|
+
construct were saved in the same
|
78
|
+
order as the defmodules.
|
79
|
+
The defmodule binary-save id is
|
80
|
+
used for the whichModule id of
|
81
|
+
this construct.
|
82
|
+
******************************************************/
|
83
|
+
void AssignBsaveConstructHeaderVals(
|
84
|
+
struct bsaveConstructHeader *theBsaveConstruct,
|
85
|
+
ConstructHeader *theConstruct)
|
86
|
+
{
|
87
|
+
if (theConstruct->name != NULL)
|
88
|
+
{ theBsaveConstruct->name = theConstruct->name->bucket; }
|
89
|
+
else
|
90
|
+
{ theBsaveConstruct->name = ULONG_MAX; }
|
91
|
+
|
92
|
+
if ((theConstruct->whichModule != NULL) &&
|
93
|
+
(theConstruct->whichModule->theModule != NULL))
|
94
|
+
{ theBsaveConstruct->whichModule = theConstruct->whichModule->theModule->header.bsaveID; }
|
95
|
+
else
|
96
|
+
{ theBsaveConstruct->whichModule = ULONG_MAX; }
|
97
|
+
|
98
|
+
if (theConstruct->next != NULL)
|
99
|
+
theBsaveConstruct->next = theConstruct->next->bsaveID;
|
100
|
+
else
|
101
|
+
theBsaveConstruct->next = ULONG_MAX;
|
102
|
+
}
|
103
|
+
|
104
|
+
#endif /* BLOAD_AND_BSAVE */
|
105
|
+
|
106
|
+
/***************************************************
|
107
|
+
NAME : UpdateConstructHeader
|
108
|
+
DESCRIPTION : Determines field values for
|
109
|
+
construct header from binary-load
|
110
|
+
buffer
|
111
|
+
INPUTS : 1) The binary-load data for the
|
112
|
+
construct header
|
113
|
+
2) The actual construct header
|
114
|
+
3) The size of a defmodule item for
|
115
|
+
this construct
|
116
|
+
4) The array of all defmodule items
|
117
|
+
for this construct
|
118
|
+
5) The size of this construct
|
119
|
+
6) The array of these constructs
|
120
|
+
RETURNS : Nothing useful
|
121
|
+
SIDE EFFECTS : Header values set
|
122
|
+
NOTES : None
|
123
|
+
***************************************************/
|
124
|
+
void UpdateConstructHeader(
|
125
|
+
Environment *theEnv,
|
126
|
+
struct bsaveConstructHeader *theBsaveConstruct,
|
127
|
+
ConstructHeader *theConstruct,
|
128
|
+
ConstructType theType,
|
129
|
+
size_t itemModuleSize,
|
130
|
+
void *itemModuleArray,
|
131
|
+
size_t itemSize,
|
132
|
+
void *itemArray)
|
133
|
+
{
|
134
|
+
size_t moduleOffset, itemOffset;
|
135
|
+
|
136
|
+
if (theBsaveConstruct->whichModule != ULONG_MAX)
|
137
|
+
{
|
138
|
+
moduleOffset = itemModuleSize * theBsaveConstruct->whichModule;
|
139
|
+
theConstruct->whichModule =
|
140
|
+
(struct defmoduleItemHeader *) &((char *) itemModuleArray)[moduleOffset];
|
141
|
+
}
|
142
|
+
else
|
143
|
+
{ theConstruct->whichModule = NULL; }
|
144
|
+
|
145
|
+
if (theBsaveConstruct->name != ULONG_MAX)
|
146
|
+
{
|
147
|
+
theConstruct->name = SymbolPointer(theBsaveConstruct->name);
|
148
|
+
IncrementLexemeCount(theConstruct->name);
|
149
|
+
}
|
150
|
+
else
|
151
|
+
{ theConstruct->name = NULL; }
|
152
|
+
|
153
|
+
if (theBsaveConstruct->next != ULONG_MAX)
|
154
|
+
{
|
155
|
+
itemOffset = itemSize * theBsaveConstruct->next;
|
156
|
+
theConstruct->next = (ConstructHeader *) &((char *) itemArray)[itemOffset];
|
157
|
+
}
|
158
|
+
else
|
159
|
+
{ theConstruct->next = NULL; }
|
160
|
+
|
161
|
+
theConstruct->constructType = theType;
|
162
|
+
theConstruct->env = theEnv;
|
163
|
+
theConstruct->ppForm = NULL;
|
164
|
+
theConstruct->bsaveID = 0L;
|
165
|
+
theConstruct->usrData = NULL;
|
166
|
+
}
|
167
|
+
|
168
|
+
/*******************************************************
|
169
|
+
NAME : UnmarkConstructHeader
|
170
|
+
DESCRIPTION : Releases any ephemerals (symbols, etc.)
|
171
|
+
of a construct header for removal
|
172
|
+
INPUTS : The construct header
|
173
|
+
RETURNS : Nothing useful
|
174
|
+
SIDE EFFECTS : Busy counts fo ephemerals decremented
|
175
|
+
NOTES : None
|
176
|
+
*******************************************************/
|
177
|
+
void UnmarkConstructHeader(
|
178
|
+
Environment *theEnv,
|
179
|
+
ConstructHeader *theConstruct)
|
180
|
+
{
|
181
|
+
ReleaseLexeme(theEnv,theConstruct->name);
|
182
|
+
}
|
183
|
+
|
184
|
+
#endif /* BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE */
|
185
|
+
|
@@ -0,0 +1,61 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 07/30/16 */
|
5
|
+
/* */
|
6
|
+
/* */
|
7
|
+
/*******************************************************/
|
8
|
+
|
9
|
+
/*************************************************************/
|
10
|
+
/* Purpose: */
|
11
|
+
/* */
|
12
|
+
/* Principal Programmer(s): */
|
13
|
+
/* Brian L. Dantes */
|
14
|
+
/* */
|
15
|
+
/* Contributing Programmer(s): */
|
16
|
+
/* */
|
17
|
+
/* Revision History: */
|
18
|
+
/* */
|
19
|
+
/* 6.40: Removed LOCALE definition. */
|
20
|
+
/* */
|
21
|
+
/* Pragma once and other inclusion changes. */
|
22
|
+
/* */
|
23
|
+
/* Removed use of void pointers for specific */
|
24
|
+
/* data structures. */
|
25
|
+
/* */
|
26
|
+
/*************************************************************/
|
27
|
+
|
28
|
+
#ifndef _H_cstrcbin
|
29
|
+
|
30
|
+
#pragma once
|
31
|
+
|
32
|
+
#define _H_cstrcbin
|
33
|
+
|
34
|
+
#if BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE
|
35
|
+
|
36
|
+
struct bsaveConstructHeader
|
37
|
+
{
|
38
|
+
unsigned long name;
|
39
|
+
unsigned long whichModule;
|
40
|
+
unsigned long next;
|
41
|
+
};
|
42
|
+
|
43
|
+
#include "constrct.h"
|
44
|
+
|
45
|
+
#if BLOAD_AND_BSAVE
|
46
|
+
void MarkConstructHeaderNeededItems(ConstructHeader *,unsigned long);
|
47
|
+
void AssignBsaveConstructHeaderVals(struct bsaveConstructHeader *,
|
48
|
+
ConstructHeader *);
|
49
|
+
#endif
|
50
|
+
|
51
|
+
void UpdateConstructHeader(Environment *,struct bsaveConstructHeader *,
|
52
|
+
ConstructHeader *,ConstructType,size_t,void *,size_t,void *);
|
53
|
+
void UnmarkConstructHeader(Environment *,ConstructHeader *);
|
54
|
+
|
55
|
+
#endif
|
56
|
+
|
57
|
+
#endif
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 06/20/16 */
|
5
|
+
/* */
|
6
|
+
/* CONSTRUCT CONSTRUCTS-TO-C HEADER */
|
7
|
+
/*******************************************************/
|
8
|
+
|
9
|
+
/*************************************************************/
|
10
|
+
/* Purpose: */
|
11
|
+
/* Support functions for the constructs-to-c of */
|
12
|
+
/* construct headers and related items. */
|
13
|
+
/* */
|
14
|
+
/* Principal Programmer(s): */
|
15
|
+
/* Gary D. Riley */
|
16
|
+
/* */
|
17
|
+
/* Contributing Programmer(s): */
|
18
|
+
/* */
|
19
|
+
/* Revision History: */
|
20
|
+
/* */
|
21
|
+
/* 6.30: Removed ANSI_COMPILER compilation flag. */
|
22
|
+
/* */
|
23
|
+
/* 6.40: Removed LOCALE definition. */
|
24
|
+
/* */
|
25
|
+
/* Pragma once and other inclusion changes. */
|
26
|
+
/* */
|
27
|
+
/*************************************************************/
|
28
|
+
|
29
|
+
#ifndef _H_cstrccmp
|
30
|
+
|
31
|
+
#pragma once
|
32
|
+
|
33
|
+
#define _H_cstrccmp
|
34
|
+
|
35
|
+
#include <stdio.h>
|
36
|
+
|
37
|
+
void MarkConstructHeaders(int);
|
38
|
+
|
39
|
+
#endif /* _H_cstrccmp */
|
40
|
+
|
41
|
+
|
42
|
+
|
43
|
+
|