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,71 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 07/30/16 */
|
5
|
+
/* */
|
6
|
+
/* */
|
7
|
+
/*******************************************************/
|
8
|
+
|
9
|
+
/*************************************************************/
|
10
|
+
/* Purpose: Object System Construct Compiler Code */
|
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
|
+
/* Added environment parameter to GenClose. */
|
22
|
+
/* */
|
23
|
+
/* 6.30: Changed integer type/precision. */
|
24
|
+
/* */
|
25
|
+
/* Removed conditional code for unsupported */
|
26
|
+
/* compilers/operating systems (IBM_MCW, */
|
27
|
+
/* MAC_MCW, and IBM_TBC). */
|
28
|
+
/* */
|
29
|
+
/* Added support for path name argument to */
|
30
|
+
/* constructs-to-c. */
|
31
|
+
/* */
|
32
|
+
/* Added const qualifiers to remove C++ */
|
33
|
+
/* deprecation warnings. */
|
34
|
+
/* */
|
35
|
+
/* 6.40: Removed LOCALE definition. */
|
36
|
+
/* */
|
37
|
+
/* Pragma once and other inclusion changes. */
|
38
|
+
/* */
|
39
|
+
/* Removed use of void pointers for specific */
|
40
|
+
/* data structures. */
|
41
|
+
/* */
|
42
|
+
/*************************************************************/
|
43
|
+
|
44
|
+
#ifndef _H_objcmp
|
45
|
+
|
46
|
+
#pragma once
|
47
|
+
|
48
|
+
#define _H_objcmp
|
49
|
+
|
50
|
+
#include <stdio.h>
|
51
|
+
|
52
|
+
#include "conscomp.h"
|
53
|
+
#include "object.h"
|
54
|
+
|
55
|
+
#define OBJECT_COMPILER_DATA 36
|
56
|
+
|
57
|
+
struct objectCompilerData
|
58
|
+
{
|
59
|
+
#if CONSTRUCT_COMPILER && (! RUN_TIME)
|
60
|
+
struct CodeGeneratorItem *ObjectCodeItem;
|
61
|
+
#endif
|
62
|
+
};
|
63
|
+
|
64
|
+
#define ObjectCompilerData(theEnv) ((struct objectCompilerData *) GetEnvironmentData(theEnv,OBJECT_COMPILER_DATA))
|
65
|
+
|
66
|
+
void SetupObjectsCompiler(Environment *);
|
67
|
+
void PrintClassReference(Environment *,FILE *,Defclass *,unsigned,unsigned);
|
68
|
+
void DefclassCModuleReference(Environment *,FILE *,unsigned long,unsigned int,unsigned int);
|
69
|
+
|
70
|
+
#endif /* _H_objcmp */
|
71
|
+
|
@@ -0,0 +1,260 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.41 07/12/21 */
|
5
|
+
/* */
|
6
|
+
/* OBJECT SYSTEM DEFINITIONS */
|
7
|
+
/*******************************************************/
|
8
|
+
|
9
|
+
/*************************************************************/
|
10
|
+
/* Purpose: */
|
11
|
+
/* */
|
12
|
+
/* Principal Programmer(s): */
|
13
|
+
/* Brian L. Dantes */
|
14
|
+
/* */
|
15
|
+
/* Contributing Programmer(s): */
|
16
|
+
/* */
|
17
|
+
/* */
|
18
|
+
/* Revision History: */
|
19
|
+
/* */
|
20
|
+
/* 6.30: Changed integer type/precision. */
|
21
|
+
/* */
|
22
|
+
/* Changed garbage collection algorithm. */
|
23
|
+
/* */
|
24
|
+
/* 6.31: Optimization for marking relevant alpha nodes */
|
25
|
+
/* in the object pattern network. */
|
26
|
+
/* */
|
27
|
+
/* 6.32: Fixed instance redefinition crash with rules */
|
28
|
+
/* in JNSimpleCompareFunction1 when deleted */
|
29
|
+
/* instance slots are referenced. */
|
30
|
+
/* */
|
31
|
+
/* 6.40: Pragma once and other inclusion changes. */
|
32
|
+
/* */
|
33
|
+
/* Removed use of void pointers for specific */
|
34
|
+
/* data structures. */
|
35
|
+
/* */
|
36
|
+
/*************************************************************/
|
37
|
+
|
38
|
+
#ifndef _H_object
|
39
|
+
|
40
|
+
#pragma once
|
41
|
+
|
42
|
+
#define _H_object
|
43
|
+
|
44
|
+
typedef struct defclassModule DEFCLASS_MODULE;
|
45
|
+
typedef struct defclass Defclass;
|
46
|
+
typedef struct packedClassLinks PACKED_CLASS_LINKS;
|
47
|
+
typedef struct classLink CLASS_LINK;
|
48
|
+
typedef struct slotName SLOT_NAME;
|
49
|
+
typedef struct slotDescriptor SlotDescriptor;
|
50
|
+
typedef struct defmessageHandler DefmessageHandler;
|
51
|
+
|
52
|
+
typedef struct instanceSlot InstanceSlot;
|
53
|
+
|
54
|
+
typedef struct instanceBuilder InstanceBuilder;
|
55
|
+
typedef struct instanceModifier InstanceModifier;
|
56
|
+
|
57
|
+
/* Maximum # of simultaneous class hierarchy traversals
|
58
|
+
should be a multiple of BITS_PER_BYTE and less than MAX_INT */
|
59
|
+
|
60
|
+
#define MAX_TRAVERSALS 256
|
61
|
+
#define TRAVERSAL_BYTES 32 /* (MAX_TRAVERSALS / BITS_PER_BYTE) */
|
62
|
+
|
63
|
+
#define VALUE_REQUIRED 0
|
64
|
+
#define VALUE_PROHIBITED 1
|
65
|
+
#define VALUE_NOT_REQUIRED 2
|
66
|
+
|
67
|
+
#include "entities.h"
|
68
|
+
#include "constrct.h"
|
69
|
+
#include "constrnt.h"
|
70
|
+
#include "moduldef.h"
|
71
|
+
#include "evaluatn.h"
|
72
|
+
#include "expressn.h"
|
73
|
+
#include "multifld.h"
|
74
|
+
#include "symbol.h"
|
75
|
+
#include "match.h"
|
76
|
+
|
77
|
+
#if DEFRULE_CONSTRUCT
|
78
|
+
#include "objrtmch.h"
|
79
|
+
#endif
|
80
|
+
|
81
|
+
struct packedClassLinks
|
82
|
+
{
|
83
|
+
unsigned long classCount;
|
84
|
+
Defclass **classArray;
|
85
|
+
};
|
86
|
+
|
87
|
+
struct defclassModule
|
88
|
+
{
|
89
|
+
struct defmoduleItemHeader header;
|
90
|
+
};
|
91
|
+
|
92
|
+
struct defclass
|
93
|
+
{
|
94
|
+
ConstructHeader header;
|
95
|
+
unsigned installed : 1;
|
96
|
+
unsigned system : 1;
|
97
|
+
unsigned abstract : 1;
|
98
|
+
unsigned reactive : 1;
|
99
|
+
unsigned traceInstances : 1;
|
100
|
+
unsigned traceSlots : 1;
|
101
|
+
unsigned short id;
|
102
|
+
unsigned busy;
|
103
|
+
unsigned hashTableIndex;
|
104
|
+
PACKED_CLASS_LINKS directSuperclasses;
|
105
|
+
PACKED_CLASS_LINKS directSubclasses;
|
106
|
+
PACKED_CLASS_LINKS allSuperclasses;
|
107
|
+
SlotDescriptor *slots;
|
108
|
+
SlotDescriptor **instanceTemplate;
|
109
|
+
unsigned *slotNameMap;
|
110
|
+
unsigned short slotCount;
|
111
|
+
unsigned short localInstanceSlotCount;
|
112
|
+
unsigned short instanceSlotCount;
|
113
|
+
unsigned short maxSlotNameID;
|
114
|
+
Instance *instanceList;
|
115
|
+
Instance *instanceListBottom;
|
116
|
+
DefmessageHandler *handlers;
|
117
|
+
unsigned *handlerOrderMap;
|
118
|
+
unsigned short handlerCount;
|
119
|
+
Defclass *nxtHash;
|
120
|
+
CLIPSBitMap *scopeMap;
|
121
|
+
|
122
|
+
/*
|
123
|
+
* Links this defclass to each of the terminal alpha nodes which could be
|
124
|
+
* affected by a modification to an instance of it. This saves having to
|
125
|
+
* iterate through every single terminal alpha for every single modification
|
126
|
+
* to an instance of a defclass.
|
127
|
+
*/
|
128
|
+
#if DEFRULE_CONSTRUCT && OBJECT_SYSTEM
|
129
|
+
CLASS_ALPHA_LINK *relevant_terminal_alpha_nodes;
|
130
|
+
#endif
|
131
|
+
|
132
|
+
char traversalRecord[TRAVERSAL_BYTES];
|
133
|
+
};
|
134
|
+
|
135
|
+
struct classLink
|
136
|
+
{
|
137
|
+
Defclass *cls;
|
138
|
+
struct classLink *nxt;
|
139
|
+
};
|
140
|
+
|
141
|
+
struct slotName
|
142
|
+
{
|
143
|
+
unsigned hashTableIndex;
|
144
|
+
unsigned use;
|
145
|
+
unsigned short id;
|
146
|
+
CLIPSLexeme *name;
|
147
|
+
CLIPSLexeme *putHandlerName;
|
148
|
+
struct slotName *nxt;
|
149
|
+
unsigned long bsaveIndex;
|
150
|
+
};
|
151
|
+
|
152
|
+
struct instanceSlot
|
153
|
+
{
|
154
|
+
SlotDescriptor *desc;
|
155
|
+
unsigned valueRequired : 1;
|
156
|
+
unsigned override : 1;
|
157
|
+
unsigned short type;
|
158
|
+
union
|
159
|
+
{
|
160
|
+
void *value;
|
161
|
+
TypeHeader *header;
|
162
|
+
CLIPSLexeme *lexemeValue;
|
163
|
+
CLIPSFloat *floatValue;
|
164
|
+
CLIPSInteger *integerValue;
|
165
|
+
CLIPSVoid *voidValue;
|
166
|
+
Fact *factValue;
|
167
|
+
Instance *instanceValue;
|
168
|
+
Multifield *multifieldValue;
|
169
|
+
CLIPSExternalAddress *externalAddressValue;
|
170
|
+
};
|
171
|
+
};
|
172
|
+
|
173
|
+
struct slotDescriptor
|
174
|
+
{
|
175
|
+
unsigned shared : 1;
|
176
|
+
unsigned multiple : 1;
|
177
|
+
unsigned composite : 1;
|
178
|
+
unsigned noInherit : 1;
|
179
|
+
unsigned noWrite : 1;
|
180
|
+
unsigned initializeOnly : 1;
|
181
|
+
unsigned dynamicDefault : 1;
|
182
|
+
unsigned defaultSpecified : 1;
|
183
|
+
unsigned noDefault : 1;
|
184
|
+
unsigned reactive : 1;
|
185
|
+
unsigned publicVisibility : 1;
|
186
|
+
unsigned createReadAccessor : 1;
|
187
|
+
unsigned createWriteAccessor : 1;
|
188
|
+
unsigned overrideMessageSpecified : 1;
|
189
|
+
Defclass *cls;
|
190
|
+
SLOT_NAME *slotName;
|
191
|
+
CLIPSLexeme *overrideMessage;
|
192
|
+
void *defaultValue;
|
193
|
+
CONSTRAINT_RECORD *constraint;
|
194
|
+
unsigned sharedCount;
|
195
|
+
unsigned long bsaveIndex;
|
196
|
+
InstanceSlot sharedValue;
|
197
|
+
};
|
198
|
+
|
199
|
+
struct instance
|
200
|
+
{
|
201
|
+
union
|
202
|
+
{
|
203
|
+
struct patternEntity patternHeader;
|
204
|
+
TypeHeader header;
|
205
|
+
};
|
206
|
+
void *partialMatchList;
|
207
|
+
InstanceSlot *basisSlots;
|
208
|
+
unsigned installed : 1;
|
209
|
+
unsigned garbage : 1;
|
210
|
+
unsigned initSlotsCalled : 1;
|
211
|
+
unsigned initializeInProgress : 1;
|
212
|
+
unsigned reteSynchronized : 1;
|
213
|
+
unsigned dataRemovalDeferred : 1;
|
214
|
+
CLIPSLexeme *name;
|
215
|
+
unsigned hashTableIndex;
|
216
|
+
unsigned busy;
|
217
|
+
Defclass *cls;
|
218
|
+
Instance *prvClass,*nxtClass,
|
219
|
+
*prvHash,*nxtHash,
|
220
|
+
*prvList,*nxtList;
|
221
|
+
InstanceSlot **slotAddresses,
|
222
|
+
*slots;
|
223
|
+
};
|
224
|
+
|
225
|
+
struct defmessageHandler
|
226
|
+
{
|
227
|
+
ConstructHeader header;
|
228
|
+
unsigned system : 1;
|
229
|
+
unsigned type : 2;
|
230
|
+
unsigned mark : 1;
|
231
|
+
unsigned trace : 1;
|
232
|
+
unsigned busy;
|
233
|
+
Defclass *cls;
|
234
|
+
unsigned short minParams;
|
235
|
+
unsigned short maxParams;
|
236
|
+
unsigned short localVarCount;
|
237
|
+
Expression *actions;
|
238
|
+
};
|
239
|
+
|
240
|
+
struct instanceBuilder
|
241
|
+
{
|
242
|
+
Environment *ibEnv;
|
243
|
+
Defclass *ibDefclass;
|
244
|
+
CLIPSValue *ibValueArray;
|
245
|
+
};
|
246
|
+
|
247
|
+
struct instanceModifier
|
248
|
+
{
|
249
|
+
Environment *imEnv;
|
250
|
+
Instance *imOldInstance;
|
251
|
+
CLIPSValue *imValueArray;
|
252
|
+
char *changeMap;
|
253
|
+
};
|
254
|
+
|
255
|
+
#endif /* _H_object */
|
256
|
+
|
257
|
+
|
258
|
+
|
259
|
+
|
260
|
+
|