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,345 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 07/30/16 */
|
5
|
+
/* */
|
6
|
+
/* */
|
7
|
+
/*******************************************************/
|
8
|
+
|
9
|
+
/*************************************************************/
|
10
|
+
/* Purpose: Definstances Construct Compiler Code */
|
11
|
+
/* */
|
12
|
+
/* Principal Programmer(s): */
|
13
|
+
/* Brian L. Dantes */
|
14
|
+
/* */
|
15
|
+
/* Contributing Programmer(s): */
|
16
|
+
/* */
|
17
|
+
/* Revision History: */
|
18
|
+
/* */
|
19
|
+
/* 6.30: Added support for path name argument to */
|
20
|
+
/* constructs-to-c. */
|
21
|
+
/* */
|
22
|
+
/* Added const qualifiers to remove C++ */
|
23
|
+
/* deprecation warnings. */
|
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 && CONSTRUCT_COMPILER && (! RUN_TIME)
|
42
|
+
|
43
|
+
#include "conscomp.h"
|
44
|
+
#include "defins.h"
|
45
|
+
#include "envrnmnt.h"
|
46
|
+
|
47
|
+
#include "dfinscmp.h"
|
48
|
+
|
49
|
+
/***************************************/
|
50
|
+
/* LOCAL INTERNAL FUNCTION DEFINITIONS */
|
51
|
+
/***************************************/
|
52
|
+
|
53
|
+
static void ReadyDefinstancesForCode(Environment *);
|
54
|
+
static bool DefinstancesToCode(Environment *,const char *,const char *,char *,unsigned int,
|
55
|
+
FILE *,unsigned int,unsigned int);
|
56
|
+
static void CloseDefinstancesFiles(Environment *,FILE *,FILE *,unsigned int);
|
57
|
+
static void DefinstancesModuleToCode(Environment *,FILE *,Defmodule *,unsigned int,unsigned int);
|
58
|
+
static void SingleDefinstancesToCode(Environment*,FILE *,Definstances *,unsigned int,unsigned int,unsigned int);
|
59
|
+
static void InitDefinstancesCode(Environment *,FILE *,unsigned int,unsigned int);
|
60
|
+
|
61
|
+
/* =========================================
|
62
|
+
*****************************************
|
63
|
+
EXTERNALLY VISIBLE FUNCTIONS
|
64
|
+
=========================================
|
65
|
+
***************************************** */
|
66
|
+
|
67
|
+
/***************************************************
|
68
|
+
NAME : SetupDefinstancesCompiler
|
69
|
+
DESCRIPTION : Initializes the construct compiler
|
70
|
+
item for definstances
|
71
|
+
INPUTS : None
|
72
|
+
RETURNS : Nothing useful
|
73
|
+
SIDE EFFECTS : Code generator item initialized
|
74
|
+
NOTES : None
|
75
|
+
***************************************************/
|
76
|
+
void SetupDefinstancesCompiler(
|
77
|
+
Environment *theEnv)
|
78
|
+
{
|
79
|
+
DefinstancesData(theEnv)->DefinstancesCodeItem = AddCodeGeneratorItem(theEnv,"definstances",0,ReadyDefinstancesForCode,
|
80
|
+
InitDefinstancesCode,DefinstancesToCode,2);
|
81
|
+
}
|
82
|
+
|
83
|
+
|
84
|
+
/****************************************************
|
85
|
+
NAME : DefinstancesCModuleReference
|
86
|
+
DESCRIPTION : Prints out a reference to a
|
87
|
+
definstances module
|
88
|
+
INPUTS : 1) The output file
|
89
|
+
2) The id of the module item
|
90
|
+
3) The id of the image
|
91
|
+
4) The maximum number of elements
|
92
|
+
allowed in an array
|
93
|
+
RETURNS : Nothing useful
|
94
|
+
SIDE EFFECTS : Definstances module reference printed
|
95
|
+
NOTES : None
|
96
|
+
****************************************************/
|
97
|
+
void DefinstancesCModuleReference(
|
98
|
+
Environment *theEnv,
|
99
|
+
FILE *theFile,
|
100
|
+
unsigned long count,
|
101
|
+
unsigned int imageID,
|
102
|
+
unsigned int maxIndices)
|
103
|
+
{
|
104
|
+
fprintf(theFile,"MIHS &%s%u_%lu[%lu]",
|
105
|
+
ModulePrefix(DefinstancesData(theEnv)->DefinstancesCodeItem),
|
106
|
+
imageID,
|
107
|
+
(count / maxIndices) + 1,
|
108
|
+
(count % maxIndices));
|
109
|
+
}
|
110
|
+
|
111
|
+
/* =========================================
|
112
|
+
*****************************************
|
113
|
+
INTERNALLY VISIBLE FUNCTIONS
|
114
|
+
=========================================
|
115
|
+
***************************************** */
|
116
|
+
|
117
|
+
/***************************************************
|
118
|
+
NAME : ReadyDefinstancesForCode
|
119
|
+
DESCRIPTION : Sets index of deffunctions
|
120
|
+
for use in compiled expressions
|
121
|
+
INPUTS : None
|
122
|
+
RETURNS : Nothing useful
|
123
|
+
SIDE EFFECTS : BsaveIndices set
|
124
|
+
NOTES : None
|
125
|
+
***************************************************/
|
126
|
+
static void ReadyDefinstancesForCode(
|
127
|
+
Environment *theEnv)
|
128
|
+
{
|
129
|
+
MarkConstructBsaveIDs(theEnv,DefinstancesData(theEnv)->DefinstancesModuleIndex);
|
130
|
+
}
|
131
|
+
|
132
|
+
/***************************************************/
|
133
|
+
/* InitDefinstancesCode: Writes out initialization */
|
134
|
+
/* code for definstances for a run-time module. */
|
135
|
+
/***************************************************/
|
136
|
+
static void InitDefinstancesCode(
|
137
|
+
Environment *theEnv,
|
138
|
+
FILE *initFP,
|
139
|
+
unsigned int imageID,
|
140
|
+
unsigned int maxIndices)
|
141
|
+
{
|
142
|
+
#if MAC_XCD
|
143
|
+
#pragma unused(maxIndices)
|
144
|
+
#pragma unused(imageID)
|
145
|
+
#pragma unused(theEnv)
|
146
|
+
#endif
|
147
|
+
fprintf(initFP," DefinstancesRunTimeInitialize(theEnv);\n");
|
148
|
+
}
|
149
|
+
|
150
|
+
/*******************************************************
|
151
|
+
NAME : DefinstancesToCode
|
152
|
+
DESCRIPTION : Writes out static array code for
|
153
|
+
definstances
|
154
|
+
INPUTS : 1) The base name of the construct set
|
155
|
+
2) The base id for this construct
|
156
|
+
3) The file pointer for the header file
|
157
|
+
4) The base id for the construct set
|
158
|
+
5) The max number of indices allowed
|
159
|
+
in an array
|
160
|
+
RETURNS : False on errors,
|
161
|
+
True if definstances written
|
162
|
+
SIDE EFFECTS : Code written to files
|
163
|
+
NOTES : None
|
164
|
+
*******************************************************/
|
165
|
+
static bool DefinstancesToCode(
|
166
|
+
Environment *theEnv,
|
167
|
+
const char *fileName,
|
168
|
+
const char *pathName,
|
169
|
+
char *fileNameBuffer,
|
170
|
+
unsigned int fileID,
|
171
|
+
FILE *headerFP,
|
172
|
+
unsigned int imageID,
|
173
|
+
unsigned int maxIndices)
|
174
|
+
{
|
175
|
+
unsigned int fileCount = 1;
|
176
|
+
Defmodule *theModule;
|
177
|
+
Definstances *theDefinstances;
|
178
|
+
unsigned int moduleCount = 0, moduleArrayCount = 0, moduleArrayVersion = 1;
|
179
|
+
unsigned int definstancesArrayCount = 0, definstancesArrayVersion = 1;
|
180
|
+
FILE *moduleFile = NULL, *definstancesFile = NULL;
|
181
|
+
|
182
|
+
/* ================================================
|
183
|
+
Include the appropriate definstances header file
|
184
|
+
================================================ */
|
185
|
+
fprintf(headerFP,"#include \"defins.h\"\n");
|
186
|
+
|
187
|
+
/* =============================================================
|
188
|
+
Loop through all the modules and all the definstances writing
|
189
|
+
their C code representation to the file as they are traversed
|
190
|
+
============================================================= */
|
191
|
+
theModule = GetNextDefmodule(theEnv,NULL);
|
192
|
+
|
193
|
+
while (theModule != NULL)
|
194
|
+
{
|
195
|
+
SetCurrentModule(theEnv,theModule);
|
196
|
+
|
197
|
+
moduleFile = OpenFileIfNeeded(theEnv,moduleFile,fileName,pathName,fileNameBuffer,fileID,imageID,&fileCount,
|
198
|
+
moduleArrayVersion,headerFP,
|
199
|
+
"DEFINSTANCES_MODULE",ModulePrefix(DefinstancesData(theEnv)->DefinstancesCodeItem),
|
200
|
+
false,NULL);
|
201
|
+
|
202
|
+
if (moduleFile == NULL)
|
203
|
+
{
|
204
|
+
CloseDefinstancesFiles(theEnv,moduleFile,definstancesFile,maxIndices);
|
205
|
+
return false;
|
206
|
+
}
|
207
|
+
|
208
|
+
DefinstancesModuleToCode(theEnv,moduleFile,theModule,imageID,maxIndices);
|
209
|
+
moduleFile = CloseFileIfNeeded(theEnv,moduleFile,&moduleArrayCount,&moduleArrayVersion,
|
210
|
+
maxIndices,NULL,NULL);
|
211
|
+
|
212
|
+
theDefinstances = GetNextDefinstances(theEnv,NULL);
|
213
|
+
|
214
|
+
while (theDefinstances != NULL)
|
215
|
+
{
|
216
|
+
definstancesFile = OpenFileIfNeeded(theEnv,definstancesFile,fileName,pathName,fileNameBuffer,fileID,imageID,&fileCount,
|
217
|
+
definstancesArrayVersion,headerFP,
|
218
|
+
"Definstances",ConstructPrefix(DefinstancesData(theEnv)->DefinstancesCodeItem),
|
219
|
+
false,NULL);
|
220
|
+
if (definstancesFile == NULL)
|
221
|
+
{
|
222
|
+
CloseDefinstancesFiles(theEnv,moduleFile,definstancesFile,maxIndices);
|
223
|
+
return false;
|
224
|
+
}
|
225
|
+
|
226
|
+
SingleDefinstancesToCode(theEnv,definstancesFile,theDefinstances,imageID,
|
227
|
+
maxIndices,moduleCount);
|
228
|
+
definstancesArrayCount++;
|
229
|
+
definstancesFile = CloseFileIfNeeded(theEnv,definstancesFile,&definstancesArrayCount,
|
230
|
+
&definstancesArrayVersion,maxIndices,NULL,NULL);
|
231
|
+
|
232
|
+
theDefinstances = GetNextDefinstances(theEnv,theDefinstances);
|
233
|
+
}
|
234
|
+
|
235
|
+
theModule = GetNextDefmodule(theEnv,theModule);
|
236
|
+
moduleCount++;
|
237
|
+
moduleArrayCount++;
|
238
|
+
}
|
239
|
+
|
240
|
+
CloseDefinstancesFiles(theEnv,moduleFile,definstancesFile,maxIndices);
|
241
|
+
|
242
|
+
return true;
|
243
|
+
}
|
244
|
+
|
245
|
+
/***************************************************
|
246
|
+
NAME : CloseDefinstancesFiles
|
247
|
+
DESCRIPTION : Closes construct compiler files
|
248
|
+
for definstances structures
|
249
|
+
INPUTS : 1) The definstances module file
|
250
|
+
2) The definstances structure file
|
251
|
+
3) The maximum number of indices
|
252
|
+
allowed in an array
|
253
|
+
RETURNS : Nothing useful
|
254
|
+
SIDE EFFECTS : Files closed
|
255
|
+
NOTES : None
|
256
|
+
***************************************************/
|
257
|
+
static void CloseDefinstancesFiles(
|
258
|
+
Environment *theEnv,
|
259
|
+
FILE *moduleFile,
|
260
|
+
FILE *definstancesFile,
|
261
|
+
unsigned int maxIndices)
|
262
|
+
{
|
263
|
+
unsigned int count = maxIndices;
|
264
|
+
unsigned int arrayVersion = 0;
|
265
|
+
|
266
|
+
if (definstancesFile != NULL)
|
267
|
+
{
|
268
|
+
count = maxIndices;
|
269
|
+
CloseFileIfNeeded(theEnv,definstancesFile,&count,&arrayVersion,
|
270
|
+
maxIndices,NULL,NULL);
|
271
|
+
}
|
272
|
+
|
273
|
+
if (moduleFile != NULL)
|
274
|
+
{
|
275
|
+
count = maxIndices;
|
276
|
+
CloseFileIfNeeded(theEnv,moduleFile,&count,&arrayVersion,maxIndices,NULL,NULL);
|
277
|
+
}
|
278
|
+
}
|
279
|
+
|
280
|
+
/***************************************************
|
281
|
+
NAME : DefinstancesModuleToCode
|
282
|
+
DESCRIPTION : Writes out the C values for a
|
283
|
+
definstances module item
|
284
|
+
INPUTS : 1) The output file
|
285
|
+
2) The module for the definstances
|
286
|
+
3) The compile image id
|
287
|
+
4) The maximum number of elements
|
288
|
+
in an array
|
289
|
+
RETURNS : Nothing useful
|
290
|
+
SIDE EFFECTS : Definstances module item written
|
291
|
+
NOTES : None
|
292
|
+
***************************************************/
|
293
|
+
static void DefinstancesModuleToCode(
|
294
|
+
Environment *theEnv,
|
295
|
+
FILE *theFile,
|
296
|
+
Defmodule *theModule,
|
297
|
+
unsigned int imageID,
|
298
|
+
unsigned int maxIndices)
|
299
|
+
{
|
300
|
+
fprintf(theFile,"{");
|
301
|
+
ConstructModuleToCode(theEnv,theFile,theModule,imageID,maxIndices,
|
302
|
+
DefinstancesData(theEnv)->DefinstancesModuleIndex,ConstructPrefix(DefinstancesData(theEnv)->DefinstancesCodeItem));
|
303
|
+
fprintf(theFile,"}");
|
304
|
+
}
|
305
|
+
|
306
|
+
/***************************************************
|
307
|
+
NAME : SingleDefinstancesToCode
|
308
|
+
DESCRIPTION : Writes out a single definstances'
|
309
|
+
data to the file
|
310
|
+
INPUTS : 1) The output file
|
311
|
+
2) The definstances
|
312
|
+
3) The compile image id
|
313
|
+
4) The maximum number of
|
314
|
+
elements in an array
|
315
|
+
5) The module index
|
316
|
+
RETURNS : Nothing useful
|
317
|
+
SIDE EFFECTS : Definstances data written
|
318
|
+
NOTES : None
|
319
|
+
***************************************************/
|
320
|
+
static void SingleDefinstancesToCode(
|
321
|
+
Environment *theEnv,
|
322
|
+
FILE *theFile,
|
323
|
+
Definstances *theDefinstances,
|
324
|
+
unsigned int imageID,
|
325
|
+
unsigned int maxIndices,
|
326
|
+
unsigned int moduleCount)
|
327
|
+
{
|
328
|
+
/* ===================
|
329
|
+
Definstances Header
|
330
|
+
=================== */
|
331
|
+
|
332
|
+
fprintf(theFile,"{");
|
333
|
+
ConstructHeaderToCode(theEnv,theFile,&theDefinstances->header,imageID,maxIndices,moduleCount,
|
334
|
+
ModulePrefix(DefinstancesData(theEnv)->DefinstancesCodeItem),
|
335
|
+
ConstructPrefix(DefinstancesData(theEnv)->DefinstancesCodeItem));
|
336
|
+
|
337
|
+
/* ==========================
|
338
|
+
Definstances specific data
|
339
|
+
========================== */
|
340
|
+
fprintf(theFile,",0,");
|
341
|
+
ExpressionToCode(theEnv,theFile,theDefinstances->mkinstance);
|
342
|
+
fprintf(theFile,"}");
|
343
|
+
}
|
344
|
+
|
345
|
+
#endif
|
@@ -0,0 +1,48 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 07/30/16 */
|
5
|
+
/* */
|
6
|
+
/* */
|
7
|
+
/*******************************************************/
|
8
|
+
|
9
|
+
/*************************************************************/
|
10
|
+
/* Purpose: Definstances Construct Compiler Code */
|
11
|
+
/* */
|
12
|
+
/* Principal Programmer(s): */
|
13
|
+
/* Brian L. Dantes */
|
14
|
+
/* */
|
15
|
+
/* Contributing Programmer(s): */
|
16
|
+
/* */
|
17
|
+
/* Revision History: */
|
18
|
+
/* */
|
19
|
+
/* 6.30: Added support for path name argument to */
|
20
|
+
/* constructs-to-c. */
|
21
|
+
/* */
|
22
|
+
/* 6.40: Removed LOCALE definition. */
|
23
|
+
/* */
|
24
|
+
/* Pragma once and other inclusion changes. */
|
25
|
+
/* */
|
26
|
+
/* Removed use of void pointers for specific */
|
27
|
+
/* data structures. */
|
28
|
+
/* */
|
29
|
+
/*************************************************************/
|
30
|
+
|
31
|
+
#ifndef _H_dfinscmp
|
32
|
+
|
33
|
+
#pragma once
|
34
|
+
|
35
|
+
#define _H_dfinscmp
|
36
|
+
|
37
|
+
#if DEFINSTANCES_CONSTRUCT && CONSTRUCT_COMPILER && (! RUN_TIME)
|
38
|
+
|
39
|
+
#include <stdio.h>
|
40
|
+
|
41
|
+
void SetupDefinstancesCompiler(Environment *);
|
42
|
+
void DefinstancesCModuleReference(Environment *,FILE *,unsigned long,unsigned int,unsigned int);
|
43
|
+
|
44
|
+
#endif /* DEFINSTANCES_CONSTRUCT && CONSTRUCT_COMPILER && (! RUN_TIME) */
|
45
|
+
|
46
|
+
#endif /* _H_dfinscmp */
|
47
|
+
|
48
|
+
|