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,57 @@
|
|
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.24: Renamed BOOLEAN macro type to intBool. */
|
20
|
+
/* */
|
21
|
+
/* 6.30: Removed conditional code for unsupported */
|
22
|
+
/* compilers/operating systems (IBM_MCW, */
|
23
|
+
/* MAC_MCW, and IBM_TBC). */
|
24
|
+
/* */
|
25
|
+
/* GetConstructNameAndComment API change. */
|
26
|
+
/* */
|
27
|
+
/* Added const qualifiers to remove C++ */
|
28
|
+
/* deprecation warnings. */
|
29
|
+
/* */
|
30
|
+
/* 6.40: Removed LOCALE definition. */
|
31
|
+
/* */
|
32
|
+
/* Pragma once and other inclusion changes. */
|
33
|
+
/* */
|
34
|
+
/* Added support for booleans with <stdbool.h>. */
|
35
|
+
/* */
|
36
|
+
/* Removed use of void pointers for specific */
|
37
|
+
/* data structures. */
|
38
|
+
/* */
|
39
|
+
/*************************************************************/
|
40
|
+
|
41
|
+
#ifndef _H_dffnxpsr
|
42
|
+
|
43
|
+
#pragma once
|
44
|
+
|
45
|
+
#define _H_dffnxpsr
|
46
|
+
|
47
|
+
#if DEFFUNCTION_CONSTRUCT && (! BLOAD_ONLY) && (! RUN_TIME)
|
48
|
+
|
49
|
+
bool ParseDeffunction(Environment *,const char *);
|
50
|
+
|
51
|
+
#endif /* DEFFUNCTION_CONSTRUCT && (! BLOAD_ONLY) && (! RUN_TIME) */
|
52
|
+
|
53
|
+
#endif /* _H_dffnxpsr */
|
54
|
+
|
55
|
+
|
56
|
+
|
57
|
+
|
@@ -0,0 +1,509 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 07/30/16 */
|
5
|
+
/* */
|
6
|
+
/* */
|
7
|
+
/*******************************************************/
|
8
|
+
|
9
|
+
/*************************************************************/
|
10
|
+
/* Purpose: Binary Load/Save Functions for Definstances */
|
11
|
+
/* */
|
12
|
+
/* Principal Programmer(s): */
|
13
|
+
/* Brian L. Dantes */
|
14
|
+
/* */
|
15
|
+
/* Contributing Programmer(s): */
|
16
|
+
/* */
|
17
|
+
/* Revision History: */
|
18
|
+
/* */
|
19
|
+
/* 6.30: Removed conditional code for unsupported */
|
20
|
+
/* compilers/operating systems (IBM_MCW, */
|
21
|
+
/* MAC_MCW, and IBM_TBC). */
|
22
|
+
/* */
|
23
|
+
/* Changed integer type/precision. */
|
24
|
+
/* */
|
25
|
+
/* 6.40: Pragma once and other inclusion changes. */
|
26
|
+
/* */
|
27
|
+
/* Added support for booleans with <stdbool.h>. */
|
28
|
+
/* */
|
29
|
+
/* Removed use of void pointers for specific */
|
30
|
+
/* data structures. */
|
31
|
+
/* */
|
32
|
+
/*************************************************************/
|
33
|
+
|
34
|
+
/* =========================================
|
35
|
+
*****************************************
|
36
|
+
EXTERNAL DEFINITIONS
|
37
|
+
=========================================
|
38
|
+
***************************************** */
|
39
|
+
#include "setup.h"
|
40
|
+
|
41
|
+
#if DEFINSTANCES_CONSTRUCT && (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE)
|
42
|
+
|
43
|
+
#include "bload.h"
|
44
|
+
#include "bsave.h"
|
45
|
+
#include "cstrcbin.h"
|
46
|
+
#include "defins.h"
|
47
|
+
#include "envrnmnt.h"
|
48
|
+
#include "memalloc.h"
|
49
|
+
#include "modulbin.h"
|
50
|
+
|
51
|
+
#include "dfinsbin.h"
|
52
|
+
|
53
|
+
/* =========================================
|
54
|
+
*****************************************
|
55
|
+
CONSTANTS
|
56
|
+
=========================================
|
57
|
+
***************************************** */
|
58
|
+
|
59
|
+
/* =========================================
|
60
|
+
*****************************************
|
61
|
+
MACROS AND TYPES
|
62
|
+
=========================================
|
63
|
+
***************************************** */
|
64
|
+
typedef struct bsaveDefinstancesModule
|
65
|
+
{
|
66
|
+
struct bsaveDefmoduleItemHeader header;
|
67
|
+
} BSAVE_DEFINSTANCES_MODULE;
|
68
|
+
|
69
|
+
typedef struct bsaveDefinstances
|
70
|
+
{
|
71
|
+
struct bsaveConstructHeader header;
|
72
|
+
unsigned long mkinstance;
|
73
|
+
} BSAVE_DEFINSTANCES;
|
74
|
+
|
75
|
+
/* =========================================
|
76
|
+
*****************************************
|
77
|
+
INTERNALLY VISIBLE FUNCTION HEADERS
|
78
|
+
=========================================
|
79
|
+
***************************************** */
|
80
|
+
|
81
|
+
#if BLOAD_AND_BSAVE
|
82
|
+
static void BsaveDefinstancesFind(Environment *);
|
83
|
+
static void MarkDefinstancesItems(Environment *,ConstructHeader *,void *);
|
84
|
+
static void BsaveDefinstancesExpressions(Environment *,FILE *);
|
85
|
+
static void BsaveDefinstancesExpression(Environment *,ConstructHeader *,void *);
|
86
|
+
static void BsaveStorageDefinstances(Environment *,FILE *);
|
87
|
+
static void BsaveDefinstancesDriver(Environment *,FILE *);
|
88
|
+
static void BsaveDefinstances(Environment *,ConstructHeader *,void *);
|
89
|
+
#endif
|
90
|
+
|
91
|
+
static void BloadStorageDefinstances(Environment *);
|
92
|
+
static void BloadDefinstances(Environment *);
|
93
|
+
static void UpdateDefinstancesModule(Environment *,void *,unsigned long);
|
94
|
+
static void UpdateDefinstances(Environment *,void *,unsigned long);
|
95
|
+
static void ClearDefinstancesBload(Environment *);
|
96
|
+
static void DeallocateDefinstancesBinaryData(Environment *);
|
97
|
+
|
98
|
+
/* =========================================
|
99
|
+
*****************************************
|
100
|
+
EXTERNALLY VISIBLE FUNCTIONS
|
101
|
+
=========================================
|
102
|
+
***************************************** */
|
103
|
+
|
104
|
+
/***********************************************************
|
105
|
+
NAME : SetupDefinstancesBload
|
106
|
+
DESCRIPTION : Initializes data structures and
|
107
|
+
routines for binary loads of definstances
|
108
|
+
INPUTS : None
|
109
|
+
RETURNS : Nothing useful
|
110
|
+
SIDE EFFECTS : Routines defined and structures initialized
|
111
|
+
NOTES : None
|
112
|
+
***********************************************************/
|
113
|
+
void SetupDefinstancesBload(
|
114
|
+
Environment *theEnv)
|
115
|
+
{
|
116
|
+
AllocateEnvironmentData(theEnv,DFINSBIN_DATA,sizeof(struct definstancesBinaryData),DeallocateDefinstancesBinaryData);
|
117
|
+
#if BLOAD_AND_BSAVE
|
118
|
+
AddBinaryItem(theEnv,"definstances",0,BsaveDefinstancesFind,BsaveDefinstancesExpressions,
|
119
|
+
BsaveStorageDefinstances,BsaveDefinstancesDriver,
|
120
|
+
BloadStorageDefinstances,BloadDefinstances,
|
121
|
+
ClearDefinstancesBload);
|
122
|
+
#else
|
123
|
+
AddBinaryItem(theEnv,"definstances",0,NULL,NULL,NULL,NULL,
|
124
|
+
BloadStorageDefinstances,BloadDefinstances,
|
125
|
+
ClearDefinstancesBload);
|
126
|
+
#endif
|
127
|
+
}
|
128
|
+
|
129
|
+
/*************************************************************/
|
130
|
+
/* DeallocateDefinstancesBinaryData: Deallocates environment */
|
131
|
+
/* data for the definstances binary functionality. */
|
132
|
+
/*************************************************************/
|
133
|
+
static void DeallocateDefinstancesBinaryData(
|
134
|
+
Environment *theEnv)
|
135
|
+
{
|
136
|
+
size_t space;
|
137
|
+
|
138
|
+
#if (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE) && (! RUN_TIME)
|
139
|
+
space = DefinstancesBinaryData(theEnv)->DefinstancesCount * sizeof(struct definstances);
|
140
|
+
if (space != 0) genfree(theEnv,DefinstancesBinaryData(theEnv)->DefinstancesArray,space);
|
141
|
+
|
142
|
+
space = DefinstancesBinaryData(theEnv)->ModuleCount * sizeof(struct definstancesModule);
|
143
|
+
if (space != 0) genfree(theEnv,DefinstancesBinaryData(theEnv)->ModuleArray,space);
|
144
|
+
#endif
|
145
|
+
}
|
146
|
+
|
147
|
+
/***************************************************
|
148
|
+
NAME : BloadDefinstancesModuleRef
|
149
|
+
DESCRIPTION : Returns a pointer to the
|
150
|
+
appropriate definstances module
|
151
|
+
INPUTS : The index of the module
|
152
|
+
RETURNS : A pointer to the module
|
153
|
+
SIDE EFFECTS : None
|
154
|
+
NOTES : None
|
155
|
+
***************************************************/
|
156
|
+
void *BloadDefinstancesModuleRef(
|
157
|
+
Environment *theEnv,
|
158
|
+
unsigned long theIndex)
|
159
|
+
{
|
160
|
+
return ((void *) &DefinstancesBinaryData(theEnv)->ModuleArray[theIndex]);
|
161
|
+
}
|
162
|
+
|
163
|
+
/* =========================================
|
164
|
+
*****************************************
|
165
|
+
INTERNALLY VISIBLE FUNCTIONS
|
166
|
+
=========================================
|
167
|
+
***************************************** */
|
168
|
+
|
169
|
+
#if BLOAD_AND_BSAVE
|
170
|
+
|
171
|
+
/***************************************************************************
|
172
|
+
NAME : BsaveDefinstancesFind
|
173
|
+
DESCRIPTION : For all definstances, this routine marks all
|
174
|
+
the needed symbols.
|
175
|
+
Also, it also counts the number of
|
176
|
+
expression structures needed.
|
177
|
+
Also, counts total number of definstances.
|
178
|
+
INPUTS : None
|
179
|
+
RETURNS : Nothing useful
|
180
|
+
SIDE EFFECTS : ExpressionCount (a global from BSAVE.C) is incremented
|
181
|
+
for every expression needed
|
182
|
+
Symbols are marked in their structures
|
183
|
+
NOTES : Also sets bsaveIndex for each definstances (assumes
|
184
|
+
definstances will be bsaved in order of binary list)
|
185
|
+
***************************************************************************/
|
186
|
+
static void BsaveDefinstancesFind(
|
187
|
+
Environment *theEnv)
|
188
|
+
{
|
189
|
+
SaveBloadCount(theEnv,DefinstancesBinaryData(theEnv)->ModuleCount);
|
190
|
+
SaveBloadCount(theEnv,DefinstancesBinaryData(theEnv)->DefinstancesCount);
|
191
|
+
DefinstancesBinaryData(theEnv)->DefinstancesCount = 0L;
|
192
|
+
|
193
|
+
DefinstancesBinaryData(theEnv)->ModuleCount = GetNumberOfDefmodules(theEnv);
|
194
|
+
|
195
|
+
DoForAllConstructs(theEnv,MarkDefinstancesItems,
|
196
|
+
DefinstancesData(theEnv)->DefinstancesModuleIndex,
|
197
|
+
false,NULL);
|
198
|
+
}
|
199
|
+
|
200
|
+
|
201
|
+
/***************************************************
|
202
|
+
NAME : MarkDefinstancesItems
|
203
|
+
DESCRIPTION : Marks the needed items for
|
204
|
+
a definstances bsave
|
205
|
+
INPUTS : 1) The definstances
|
206
|
+
2) User data buffer (ignored)
|
207
|
+
RETURNS : Nothing useful
|
208
|
+
SIDE EFFECTS : Needed items marked
|
209
|
+
NOTES : None
|
210
|
+
***************************************************/
|
211
|
+
static void MarkDefinstancesItems(
|
212
|
+
Environment *theEnv,
|
213
|
+
ConstructHeader *theDefinstances,
|
214
|
+
void *userBuffer)
|
215
|
+
{
|
216
|
+
#if MAC_XCD
|
217
|
+
#pragma unused(userBuffer)
|
218
|
+
#endif
|
219
|
+
|
220
|
+
MarkConstructHeaderNeededItems(theDefinstances,DefinstancesBinaryData(theEnv)->DefinstancesCount++);
|
221
|
+
ExpressionData(theEnv)->ExpressionCount += ExpressionSize(((Definstances *) theDefinstances)->mkinstance);
|
222
|
+
MarkNeededItems(theEnv,((Definstances *) theDefinstances)->mkinstance);
|
223
|
+
}
|
224
|
+
|
225
|
+
/***************************************************
|
226
|
+
NAME : BsaveDefinstancesExpressions
|
227
|
+
DESCRIPTION : Writes out all expressions needed
|
228
|
+
by deffunctyions
|
229
|
+
INPUTS : The file pointer of the binary file
|
230
|
+
RETURNS : Nothing useful
|
231
|
+
SIDE EFFECTS : File updated
|
232
|
+
NOTES : None
|
233
|
+
***************************************************/
|
234
|
+
static void BsaveDefinstancesExpressions(
|
235
|
+
Environment *theEnv,
|
236
|
+
FILE *fp)
|
237
|
+
{
|
238
|
+
DoForAllConstructs(theEnv,BsaveDefinstancesExpression,DefinstancesData(theEnv)->DefinstancesModuleIndex,
|
239
|
+
false,fp);
|
240
|
+
}
|
241
|
+
|
242
|
+
/***************************************************
|
243
|
+
NAME : BsaveDefinstancesExpression
|
244
|
+
DESCRIPTION : Saves the needed expressions for
|
245
|
+
a definstances bsave
|
246
|
+
INPUTS : 1) The definstances
|
247
|
+
2) Output data file pointer
|
248
|
+
RETURNS : Nothing useful
|
249
|
+
SIDE EFFECTS : Expressions saved
|
250
|
+
NOTES : None
|
251
|
+
***************************************************/
|
252
|
+
static void BsaveDefinstancesExpression(
|
253
|
+
Environment *theEnv,
|
254
|
+
ConstructHeader *theDefinstances,
|
255
|
+
void *userBuffer)
|
256
|
+
{
|
257
|
+
BsaveExpression(theEnv,((Definstances *) theDefinstances)->mkinstance,(FILE *) userBuffer);
|
258
|
+
}
|
259
|
+
|
260
|
+
/***********************************************************
|
261
|
+
NAME : BsaveStorageDefinstances
|
262
|
+
DESCRIPTION : Writes out number of each type of structure
|
263
|
+
required for definstances
|
264
|
+
Space required for counts (unsigned long)
|
265
|
+
INPUTS : File pointer of binary file
|
266
|
+
RETURNS : Nothing useful
|
267
|
+
SIDE EFFECTS : Binary file adjusted
|
268
|
+
NOTES : None
|
269
|
+
***********************************************************/
|
270
|
+
static void BsaveStorageDefinstances(
|
271
|
+
Environment *theEnv,
|
272
|
+
FILE *fp)
|
273
|
+
{
|
274
|
+
size_t space;
|
275
|
+
|
276
|
+
space = sizeof(unsigned long) * 2;
|
277
|
+
GenWrite(&space,sizeof(size_t),fp);
|
278
|
+
GenWrite(&DefinstancesBinaryData(theEnv)->ModuleCount,sizeof(unsigned long),fp);
|
279
|
+
GenWrite(&DefinstancesBinaryData(theEnv)->DefinstancesCount,sizeof(unsigned long),fp);
|
280
|
+
}
|
281
|
+
|
282
|
+
/*************************************************************************************
|
283
|
+
NAME : BsaveDefinstancesDriver
|
284
|
+
DESCRIPTION : Writes out definstances in binary format
|
285
|
+
Space required (unsigned long)
|
286
|
+
All definstances (sizeof(Definstances) * Number of definstances)
|
287
|
+
INPUTS : File pointer of binary file
|
288
|
+
RETURNS : Nothing useful
|
289
|
+
SIDE EFFECTS : Binary file adjusted
|
290
|
+
NOTES : None
|
291
|
+
*************************************************************************************/
|
292
|
+
static void BsaveDefinstancesDriver(
|
293
|
+
Environment *theEnv,
|
294
|
+
FILE *fp)
|
295
|
+
{
|
296
|
+
size_t space;
|
297
|
+
Defmodule *theModule;
|
298
|
+
DEFINSTANCES_MODULE *theModuleItem;
|
299
|
+
BSAVE_DEFINSTANCES_MODULE dummy_mitem;
|
300
|
+
|
301
|
+
space = ((sizeof(BSAVE_DEFINSTANCES_MODULE) * DefinstancesBinaryData(theEnv)->ModuleCount) +
|
302
|
+
(sizeof(BSAVE_DEFINSTANCES) * DefinstancesBinaryData(theEnv)->DefinstancesCount));
|
303
|
+
GenWrite(&space,sizeof(size_t),fp);
|
304
|
+
|
305
|
+
/* =================================
|
306
|
+
Write out each definstances module
|
307
|
+
================================= */
|
308
|
+
DefinstancesBinaryData(theEnv)->DefinstancesCount = 0L;
|
309
|
+
theModule = GetNextDefmodule(theEnv,NULL);
|
310
|
+
while (theModule != NULL)
|
311
|
+
{
|
312
|
+
theModuleItem = (DEFINSTANCES_MODULE *)
|
313
|
+
GetModuleItem(theEnv,theModule,FindModuleItem(theEnv,"definstances")->moduleIndex);
|
314
|
+
AssignBsaveDefmdlItemHdrVals(&dummy_mitem.header,&theModuleItem->header);
|
315
|
+
GenWrite(&dummy_mitem,sizeof(BSAVE_DEFINSTANCES_MODULE),fp);
|
316
|
+
theModule = GetNextDefmodule(theEnv,theModule);
|
317
|
+
}
|
318
|
+
|
319
|
+
/*==============================*/
|
320
|
+
/* Write out each definstances. */
|
321
|
+
/*==============================*/
|
322
|
+
|
323
|
+
DoForAllConstructs(theEnv,BsaveDefinstances,DefinstancesData(theEnv)->DefinstancesModuleIndex,
|
324
|
+
false,fp);
|
325
|
+
|
326
|
+
RestoreBloadCount(theEnv,&DefinstancesBinaryData(theEnv)->ModuleCount);
|
327
|
+
RestoreBloadCount(theEnv,&DefinstancesBinaryData(theEnv)->DefinstancesCount);
|
328
|
+
}
|
329
|
+
|
330
|
+
/***************************************************
|
331
|
+
NAME : BsaveDefinstances
|
332
|
+
DESCRIPTION : Bsaves a definstances
|
333
|
+
INPUTS : 1) The definstances
|
334
|
+
2) Output data file pointer
|
335
|
+
RETURNS : Nothing useful
|
336
|
+
SIDE EFFECTS : Definstances saved
|
337
|
+
NOTES : None
|
338
|
+
***************************************************/
|
339
|
+
static void BsaveDefinstances(
|
340
|
+
Environment *theEnv,
|
341
|
+
ConstructHeader *theDefinstances,
|
342
|
+
void *userBuffer)
|
343
|
+
{
|
344
|
+
Definstances *dptr = (Definstances *) theDefinstances;
|
345
|
+
BSAVE_DEFINSTANCES dummy_df;
|
346
|
+
|
347
|
+
AssignBsaveConstructHeaderVals(&dummy_df.header,&dptr->header);
|
348
|
+
if (dptr->mkinstance != NULL)
|
349
|
+
{
|
350
|
+
dummy_df.mkinstance = ExpressionData(theEnv)->ExpressionCount;
|
351
|
+
ExpressionData(theEnv)->ExpressionCount += ExpressionSize(dptr->mkinstance);
|
352
|
+
}
|
353
|
+
else
|
354
|
+
dummy_df.mkinstance = ULONG_MAX;
|
355
|
+
GenWrite(&dummy_df,sizeof(BSAVE_DEFINSTANCES),(FILE *) userBuffer);
|
356
|
+
}
|
357
|
+
|
358
|
+
#endif
|
359
|
+
|
360
|
+
/***********************************************************************
|
361
|
+
NAME : BloadStorageDefinstances
|
362
|
+
DESCRIPTION : This routine space required for definstances
|
363
|
+
structures and allocates space for them
|
364
|
+
INPUTS : Nothing
|
365
|
+
RETURNS : Nothing useful
|
366
|
+
SIDE EFFECTS : Arrays allocated and set
|
367
|
+
NOTES : This routine makes no attempt to reset any pointers
|
368
|
+
within the structures
|
369
|
+
***********************************************************************/
|
370
|
+
static void BloadStorageDefinstances(
|
371
|
+
Environment *theEnv)
|
372
|
+
{
|
373
|
+
size_t space;
|
374
|
+
|
375
|
+
GenReadBinary(theEnv,&space,sizeof(size_t));
|
376
|
+
if (space == 0L)
|
377
|
+
return;
|
378
|
+
GenReadBinary(theEnv,&DefinstancesBinaryData(theEnv)->ModuleCount,sizeof(unsigned long));
|
379
|
+
GenReadBinary(theEnv,&DefinstancesBinaryData(theEnv)->DefinstancesCount,sizeof(unsigned long));
|
380
|
+
if (DefinstancesBinaryData(theEnv)->ModuleCount == 0L)
|
381
|
+
{
|
382
|
+
DefinstancesBinaryData(theEnv)->ModuleArray = NULL;
|
383
|
+
DefinstancesBinaryData(theEnv)->DefinstancesArray = NULL;
|
384
|
+
return;
|
385
|
+
}
|
386
|
+
|
387
|
+
space = (DefinstancesBinaryData(theEnv)->ModuleCount * sizeof(DEFINSTANCES_MODULE));
|
388
|
+
DefinstancesBinaryData(theEnv)->ModuleArray = (DEFINSTANCES_MODULE *) genalloc(theEnv,space);
|
389
|
+
|
390
|
+
if (DefinstancesBinaryData(theEnv)->DefinstancesCount == 0L)
|
391
|
+
{
|
392
|
+
DefinstancesBinaryData(theEnv)->DefinstancesArray = NULL;
|
393
|
+
return;
|
394
|
+
}
|
395
|
+
|
396
|
+
space = (DefinstancesBinaryData(theEnv)->DefinstancesCount * sizeof(Definstances));
|
397
|
+
DefinstancesBinaryData(theEnv)->DefinstancesArray = (Definstances *) genalloc(theEnv,space);
|
398
|
+
}
|
399
|
+
|
400
|
+
/*********************************************************************
|
401
|
+
NAME : BloadDefinstances
|
402
|
+
DESCRIPTION : This routine reads definstances information from
|
403
|
+
a binary file
|
404
|
+
This routine moves through the definstances
|
405
|
+
binary array updating pointers
|
406
|
+
INPUTS : None
|
407
|
+
RETURNS : Nothing useful
|
408
|
+
SIDE EFFECTS : Pointers reset from array indices
|
409
|
+
NOTES : Assumes all loading is finished
|
410
|
+
********************************************************************/
|
411
|
+
static void BloadDefinstances(
|
412
|
+
Environment *theEnv)
|
413
|
+
{
|
414
|
+
size_t space;
|
415
|
+
|
416
|
+
GenReadBinary(theEnv,&space,sizeof(size_t));
|
417
|
+
BloadandRefresh(theEnv,DefinstancesBinaryData(theEnv)->ModuleCount,sizeof(BSAVE_DEFINSTANCES_MODULE),UpdateDefinstancesModule);
|
418
|
+
BloadandRefresh(theEnv,DefinstancesBinaryData(theEnv)->DefinstancesCount,sizeof(BSAVE_DEFINSTANCES),UpdateDefinstances);
|
419
|
+
}
|
420
|
+
|
421
|
+
/*******************************************************
|
422
|
+
NAME : UpdateDefinstancesModule
|
423
|
+
DESCRIPTION : Updates definstances module with binary
|
424
|
+
load data - sets pointers from
|
425
|
+
offset information
|
426
|
+
INPUTS : 1) A pointer to the bloaded data
|
427
|
+
2) The index of the binary array
|
428
|
+
element to update
|
429
|
+
RETURNS : Nothing useful
|
430
|
+
SIDE EFFECTS : Definstances moudle pointers updated
|
431
|
+
NOTES : None
|
432
|
+
*******************************************************/
|
433
|
+
static void UpdateDefinstancesModule(
|
434
|
+
Environment *theEnv,
|
435
|
+
void *buf,
|
436
|
+
unsigned long obji)
|
437
|
+
{
|
438
|
+
BSAVE_DEFINSTANCES_MODULE *bdptr;
|
439
|
+
|
440
|
+
bdptr = (BSAVE_DEFINSTANCES_MODULE *) buf;
|
441
|
+
UpdateDefmoduleItemHeader(theEnv,&bdptr->header,&DefinstancesBinaryData(theEnv)->ModuleArray[obji].header,
|
442
|
+
sizeof(Definstances),DefinstancesBinaryData(theEnv)->DefinstancesArray);
|
443
|
+
}
|
444
|
+
|
445
|
+
/***************************************************
|
446
|
+
NAME : UpdateDefinstances
|
447
|
+
DESCRIPTION : Updates definstances with binary
|
448
|
+
load data - sets pointers from
|
449
|
+
offset information
|
450
|
+
INPUTS : 1) A pointer to the bloaded data
|
451
|
+
2) The index of the binary array
|
452
|
+
element to update
|
453
|
+
RETURNS : Nothing useful
|
454
|
+
SIDE EFFECTS : Definstances pointers upadted
|
455
|
+
NOTES : None
|
456
|
+
***************************************************/
|
457
|
+
static void UpdateDefinstances(
|
458
|
+
Environment *theEnv,
|
459
|
+
void *buf,
|
460
|
+
unsigned long obji)
|
461
|
+
{
|
462
|
+
BSAVE_DEFINSTANCES *bdptr;
|
463
|
+
Definstances *dfiptr;
|
464
|
+
|
465
|
+
bdptr = (BSAVE_DEFINSTANCES *) buf;
|
466
|
+
dfiptr = (Definstances *) &DefinstancesBinaryData(theEnv)->DefinstancesArray[obji];
|
467
|
+
|
468
|
+
UpdateConstructHeader(theEnv,&bdptr->header,&dfiptr->header,DEFINSTANCES,
|
469
|
+
sizeof(DEFINSTANCES_MODULE),DefinstancesBinaryData(theEnv)->ModuleArray,
|
470
|
+
sizeof(Definstances),DefinstancesBinaryData(theEnv)->DefinstancesArray);
|
471
|
+
dfiptr->mkinstance = ExpressionPointer(bdptr->mkinstance);
|
472
|
+
dfiptr->busy = 0;
|
473
|
+
}
|
474
|
+
|
475
|
+
/***************************************************************
|
476
|
+
NAME : ClearDefinstancesBload
|
477
|
+
DESCRIPTION : Release all binary-loaded definstances
|
478
|
+
structure arrays
|
479
|
+
Resets definstances list to NULL
|
480
|
+
INPUTS : None
|
481
|
+
RETURNS : Nothing useful
|
482
|
+
SIDE EFFECTS : Memory cleared
|
483
|
+
NOTES : Definstances name symbol counts decremented
|
484
|
+
***************************************************************/
|
485
|
+
static void ClearDefinstancesBload(
|
486
|
+
Environment *theEnv)
|
487
|
+
{
|
488
|
+
unsigned long i;
|
489
|
+
size_t space;
|
490
|
+
|
491
|
+
space = (sizeof(DEFINSTANCES_MODULE) * DefinstancesBinaryData(theEnv)->ModuleCount);
|
492
|
+
if (space == 0L)
|
493
|
+
return;
|
494
|
+
genfree(theEnv,DefinstancesBinaryData(theEnv)->ModuleArray,space);
|
495
|
+
DefinstancesBinaryData(theEnv)->ModuleArray = NULL;
|
496
|
+
DefinstancesBinaryData(theEnv)->ModuleCount = 0L;
|
497
|
+
|
498
|
+
for (i = 0 ; i < DefinstancesBinaryData(theEnv)->DefinstancesCount ; i++)
|
499
|
+
UnmarkConstructHeader(theEnv,&DefinstancesBinaryData(theEnv)->DefinstancesArray[i].header);
|
500
|
+
space = (sizeof(Definstances) * DefinstancesBinaryData(theEnv)->DefinstancesCount);
|
501
|
+
if (space == 0)
|
502
|
+
return;
|
503
|
+
genfree(theEnv,DefinstancesBinaryData(theEnv)->DefinstancesArray,space);
|
504
|
+
DefinstancesBinaryData(theEnv)->DefinstancesArray = NULL;
|
505
|
+
DefinstancesBinaryData(theEnv)->DefinstancesCount = 0L;
|
506
|
+
}
|
507
|
+
|
508
|
+
#endif
|
509
|
+
|
@@ -0,0 +1,66 @@
|
|
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
|
+
/* Revision History: */
|
20
|
+
/* */
|
21
|
+
/* 6.30: Removed conditional code for unsupported */
|
22
|
+
/* compilers/operating systems (IBM_MCW, */
|
23
|
+
/* MAC_MCW, and IBM_TBC). */
|
24
|
+
/* */
|
25
|
+
/* Changed integer type/precision. */
|
26
|
+
/* */
|
27
|
+
/* 6.40: Removed LOCALE definition. */
|
28
|
+
/* */
|
29
|
+
/* Pragma once and other inclusion changes. */
|
30
|
+
/* */
|
31
|
+
/* Removed use of void pointers for specific */
|
32
|
+
/* data structures. */
|
33
|
+
/* */
|
34
|
+
/*************************************************************/
|
35
|
+
|
36
|
+
#ifndef _H_dfinsbin
|
37
|
+
|
38
|
+
#pragma once
|
39
|
+
|
40
|
+
#define _H_dfinsbin
|
41
|
+
|
42
|
+
#if DEFINSTANCES_CONSTRUCT && (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE)
|
43
|
+
|
44
|
+
#include "defins.h"
|
45
|
+
|
46
|
+
#define DFINSBIN_DATA 25
|
47
|
+
|
48
|
+
struct definstancesBinaryData
|
49
|
+
{
|
50
|
+
Definstances *DefinstancesArray;
|
51
|
+
unsigned long DefinstancesCount;
|
52
|
+
unsigned long ModuleCount;
|
53
|
+
DEFINSTANCES_MODULE *ModuleArray;
|
54
|
+
};
|
55
|
+
|
56
|
+
#define DefinstancesBinaryData(theEnv) ((struct definstancesBinaryData *) GetEnvironmentData(theEnv,DFINSBIN_DATA))
|
57
|
+
|
58
|
+
void SetupDefinstancesBload(Environment *);
|
59
|
+
void *BloadDefinstancesModuleRef(Environment *,unsigned long);
|
60
|
+
|
61
|
+
#endif /* DEFINSTANCES_CONSTRUCT && (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE) */
|
62
|
+
|
63
|
+
#endif /* _H_dfinsbin */
|
64
|
+
|
65
|
+
|
66
|
+
|