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,361 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 07/02/18 */
|
5
|
+
/* */
|
6
|
+
/* DEFGLOBAL BASIC COMMANDS HEADER FILE */
|
7
|
+
/*******************************************************/
|
8
|
+
|
9
|
+
/*************************************************************/
|
10
|
+
/* Purpose: Implements core commands for the defglobal */
|
11
|
+
/* construct such as clear, reset, save, undefglobal, */
|
12
|
+
/* ppdefglobal, list-defglobals, and get-defglobals-list. */
|
13
|
+
/* */
|
14
|
+
/* Principal Programmer(s): */
|
15
|
+
/* Gary D. Riley */
|
16
|
+
/* */
|
17
|
+
/* Contributing Programmer(s): */
|
18
|
+
/* Brian L. Dantes */
|
19
|
+
/* */
|
20
|
+
/* Revision History: */
|
21
|
+
/* */
|
22
|
+
/* 6.23: Correction for FalseSymbol/TrueSymbol. DR0859 */
|
23
|
+
/* */
|
24
|
+
/* Corrected compilation errors for files */
|
25
|
+
/* generated by constructs-to-c. DR0861 */
|
26
|
+
/* */
|
27
|
+
/* Changed name of variable log to logName */
|
28
|
+
/* because of Unix compiler warnings of shadowed */
|
29
|
+
/* definitions. */
|
30
|
+
/* */
|
31
|
+
/* 6.24: Renamed BOOLEAN macro type to intBool. */
|
32
|
+
/* */
|
33
|
+
/* 6.30: Removed conditional code for unsupported */
|
34
|
+
/* compilers/operating systems (IBM_MCW, */
|
35
|
+
/* MAC_MCW, and IBM_TBC). */
|
36
|
+
/* */
|
37
|
+
/* Added const qualifiers to remove C++ */
|
38
|
+
/* deprecation warnings. */
|
39
|
+
/* */
|
40
|
+
/* Moved WatchGlobals global to defglobalData. */
|
41
|
+
/* */
|
42
|
+
/* Converted API macros to function calls. */
|
43
|
+
/* */
|
44
|
+
/* 6.40: Pragma once and other inclusion changes. */
|
45
|
+
/* */
|
46
|
+
/* Added support for booleans with <stdbool.h>. */
|
47
|
+
/* */
|
48
|
+
/* Removed use of void pointers for specific */
|
49
|
+
/* data structures. */
|
50
|
+
/* */
|
51
|
+
/* ALLOW_ENVIRONMENT_GLOBALS no longer supported. */
|
52
|
+
/* */
|
53
|
+
/* UDF redesign. */
|
54
|
+
/* */
|
55
|
+
/* Pretty print functions accept optional logical */
|
56
|
+
/* name argument. */
|
57
|
+
/* */
|
58
|
+
/*************************************************************/
|
59
|
+
|
60
|
+
#include "setup.h"
|
61
|
+
|
62
|
+
#if DEFGLOBAL_CONSTRUCT
|
63
|
+
|
64
|
+
#include "constrct.h"
|
65
|
+
#include "envrnmnt.h"
|
66
|
+
#include "extnfunc.h"
|
67
|
+
#if BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE
|
68
|
+
#include "globlbin.h"
|
69
|
+
#endif
|
70
|
+
#if CONSTRUCT_COMPILER && (! RUN_TIME)
|
71
|
+
#include "globlcmp.h"
|
72
|
+
#endif
|
73
|
+
#include "globlcom.h"
|
74
|
+
#include "globldef.h"
|
75
|
+
#include "multifld.h"
|
76
|
+
#include "watch.h"
|
77
|
+
|
78
|
+
#include "globlbsc.h"
|
79
|
+
|
80
|
+
/***************************************/
|
81
|
+
/* LOCAL INTERNAL FUNCTION DEFINITIONS */
|
82
|
+
/***************************************/
|
83
|
+
|
84
|
+
static void SaveDefglobals(Environment *,Defmodule *,const char *,void *);
|
85
|
+
static void ResetDefglobalAction(Environment *,ConstructHeader *,void *);
|
86
|
+
#if DEBUGGING_FUNCTIONS && (! RUN_TIME)
|
87
|
+
static bool DefglobalWatchAccess(Environment *,int,bool,struct expr *);
|
88
|
+
static bool DefglobalWatchPrint(Environment *,const char *,int,struct expr *);
|
89
|
+
#endif
|
90
|
+
|
91
|
+
/*****************************************************************/
|
92
|
+
/* DefglobalBasicCommands: Initializes basic defglobal commands. */
|
93
|
+
/*****************************************************************/
|
94
|
+
void DefglobalBasicCommands(
|
95
|
+
Environment *theEnv)
|
96
|
+
{
|
97
|
+
AddSaveFunction(theEnv,"defglobal",SaveDefglobals,40,NULL);
|
98
|
+
AddResetFunction(theEnv,"defglobal",ResetDefglobals,50,NULL);
|
99
|
+
|
100
|
+
#if ! RUN_TIME
|
101
|
+
AddUDF(theEnv,"get-defglobal-list","m",0,1,"y",GetDefglobalListFunction,"GetDefglobalListFunction",NULL);
|
102
|
+
AddUDF(theEnv,"undefglobal","v",1,1,"y",UndefglobalCommand,"UndefglobalCommand",NULL);
|
103
|
+
AddUDF(theEnv,"defglobal-module","y",1,1,"y",DefglobalModuleFunction,"DefglobalModuleFunction",NULL);
|
104
|
+
|
105
|
+
#if DEBUGGING_FUNCTIONS
|
106
|
+
AddUDF(theEnv,"list-defglobals","v",0,1,"y",ListDefglobalsCommand,"ListDefglobalsCommand",NULL);
|
107
|
+
AddUDF(theEnv,"ppdefglobal","vs",1,2,";y;ldsyn",PPDefglobalCommand,"PPDefglobalCommand",NULL);
|
108
|
+
AddWatchItem(theEnv,"globals",0,&DefglobalData(theEnv)->WatchGlobals,0,DefglobalWatchAccess,DefglobalWatchPrint);
|
109
|
+
#endif
|
110
|
+
|
111
|
+
#if (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE)
|
112
|
+
DefglobalBinarySetup(theEnv);
|
113
|
+
#endif
|
114
|
+
|
115
|
+
#if CONSTRUCT_COMPILER && (! RUN_TIME)
|
116
|
+
DefglobalCompilerSetup(theEnv);
|
117
|
+
#endif
|
118
|
+
|
119
|
+
#endif
|
120
|
+
}
|
121
|
+
|
122
|
+
/*************************************************************/
|
123
|
+
/* ResetDefglobals: Defglobal reset routine for use with the */
|
124
|
+
/* reset command. Restores the values of the defglobals. */
|
125
|
+
/*************************************************************/
|
126
|
+
void ResetDefglobals(
|
127
|
+
Environment *theEnv,
|
128
|
+
void *context)
|
129
|
+
{
|
130
|
+
if (! GetResetGlobals(theEnv)) return;
|
131
|
+
DoForAllConstructs(theEnv,ResetDefglobalAction,
|
132
|
+
DefglobalData(theEnv)->DefglobalModuleIndex,true,NULL);
|
133
|
+
}
|
134
|
+
|
135
|
+
/******************************************************/
|
136
|
+
/* ResetDefglobalAction: Action to be applied to each */
|
137
|
+
/* defglobal construct during a reset command. */
|
138
|
+
/******************************************************/
|
139
|
+
static void ResetDefglobalAction(
|
140
|
+
Environment *theEnv,
|
141
|
+
ConstructHeader *theConstruct,
|
142
|
+
void *buffer)
|
143
|
+
{
|
144
|
+
#if MAC_XCD
|
145
|
+
#pragma unused(buffer)
|
146
|
+
#endif
|
147
|
+
Defglobal *theDefglobal = (Defglobal *) theConstruct;
|
148
|
+
UDFValue assignValue;
|
149
|
+
|
150
|
+
if (EvaluateExpression(theEnv,theDefglobal->initial,&assignValue))
|
151
|
+
{
|
152
|
+
assignValue.value = FalseSymbol(theEnv);
|
153
|
+
}
|
154
|
+
|
155
|
+
QSetDefglobalValue(theEnv,theDefglobal,&assignValue,false);
|
156
|
+
}
|
157
|
+
|
158
|
+
/******************************************/
|
159
|
+
/* SaveDefglobals: Defglobal save routine */
|
160
|
+
/* for use with the save command. */
|
161
|
+
/******************************************/
|
162
|
+
static void SaveDefglobals(
|
163
|
+
Environment *theEnv,
|
164
|
+
Defmodule *theModule,
|
165
|
+
const char *logicalName,
|
166
|
+
void *context)
|
167
|
+
{
|
168
|
+
SaveConstruct(theEnv,theModule,logicalName,DefglobalData(theEnv)->DefglobalConstruct);
|
169
|
+
}
|
170
|
+
|
171
|
+
/********************************************/
|
172
|
+
/* UndefglobalCommand: H/L access routine */
|
173
|
+
/* for the undefglobal command. */
|
174
|
+
/********************************************/
|
175
|
+
void UndefglobalCommand(
|
176
|
+
Environment *theEnv,
|
177
|
+
UDFContext *context,
|
178
|
+
UDFValue *returnValue)
|
179
|
+
{
|
180
|
+
UndefconstructCommand(context,"undefglobal",DefglobalData(theEnv)->DefglobalConstruct);
|
181
|
+
}
|
182
|
+
|
183
|
+
/**********************************/
|
184
|
+
/* Undefglobal: C access routine */
|
185
|
+
/* for the undefglobal command. */
|
186
|
+
/**********************************/
|
187
|
+
bool Undefglobal(
|
188
|
+
Defglobal *theDefglobal,
|
189
|
+
Environment *allEnv)
|
190
|
+
{
|
191
|
+
Environment *theEnv;
|
192
|
+
|
193
|
+
if (theDefglobal == NULL)
|
194
|
+
{
|
195
|
+
theEnv = allEnv;
|
196
|
+
return(Undefconstruct(theEnv,NULL,DefglobalData(theEnv)->DefglobalConstruct));
|
197
|
+
}
|
198
|
+
else
|
199
|
+
{
|
200
|
+
theEnv = theDefglobal->header.env;
|
201
|
+
return(Undefconstruct(theEnv,&theDefglobal->header,DefglobalData(theEnv)->DefglobalConstruct));
|
202
|
+
}
|
203
|
+
}
|
204
|
+
|
205
|
+
/**************************************************/
|
206
|
+
/* GetDefglobalListFunction: H/L access routine */
|
207
|
+
/* for the get-defglobal-list function. */
|
208
|
+
/**************************************************/
|
209
|
+
void GetDefglobalListFunction(
|
210
|
+
Environment *theEnv,
|
211
|
+
UDFContext *context,
|
212
|
+
UDFValue *returnValue)
|
213
|
+
{
|
214
|
+
GetConstructListFunction(context,returnValue,DefglobalData(theEnv)->DefglobalConstruct);
|
215
|
+
}
|
216
|
+
|
217
|
+
/******************************************/
|
218
|
+
/* GetDefglobalList: C access routine */
|
219
|
+
/* for the get-defglobal-list function. */
|
220
|
+
/******************************************/
|
221
|
+
void GetDefglobalList(
|
222
|
+
Environment *theEnv,
|
223
|
+
CLIPSValue *returnValue,
|
224
|
+
Defmodule *theModule)
|
225
|
+
{
|
226
|
+
UDFValue result;
|
227
|
+
|
228
|
+
GetConstructList(theEnv,&result,DefglobalData(theEnv)->DefglobalConstruct,theModule);
|
229
|
+
NormalizeMultifield(theEnv,&result);
|
230
|
+
returnValue->value = result.value;
|
231
|
+
}
|
232
|
+
|
233
|
+
/*************************************************/
|
234
|
+
/* DefglobalModuleFunction: H/L access routine */
|
235
|
+
/* for the defglobal-module function. */
|
236
|
+
/*************************************************/
|
237
|
+
void DefglobalModuleFunction(
|
238
|
+
Environment *theEnv,
|
239
|
+
UDFContext *context,
|
240
|
+
UDFValue *returnValue)
|
241
|
+
{
|
242
|
+
returnValue->value = GetConstructModuleCommand(context,"defglobal-module",DefglobalData(theEnv)->DefglobalConstruct);
|
243
|
+
}
|
244
|
+
|
245
|
+
#if DEBUGGING_FUNCTIONS
|
246
|
+
|
247
|
+
/********************************************/
|
248
|
+
/* PPDefglobalCommand: H/L access routine */
|
249
|
+
/* for the ppdefglobal command. */
|
250
|
+
/********************************************/
|
251
|
+
void PPDefglobalCommand(
|
252
|
+
Environment *theEnv,
|
253
|
+
UDFContext *context,
|
254
|
+
UDFValue *returnValue)
|
255
|
+
{
|
256
|
+
PPConstructCommand(context,"ppdefglobal",DefglobalData(theEnv)->DefglobalConstruct,returnValue);
|
257
|
+
}
|
258
|
+
|
259
|
+
/*************************************/
|
260
|
+
/* PPDefglobal: C access routine for */
|
261
|
+
/* the ppdefglobal command. */
|
262
|
+
/*************************************/
|
263
|
+
bool PPDefglobal(
|
264
|
+
Environment *theEnv,
|
265
|
+
const char *defglobalName,
|
266
|
+
const char *logicalName)
|
267
|
+
{
|
268
|
+
return(PPConstruct(theEnv,defglobalName,logicalName,DefglobalData(theEnv)->DefglobalConstruct));
|
269
|
+
}
|
270
|
+
|
271
|
+
/***********************************************/
|
272
|
+
/* ListDefglobalsCommand: H/L access routine */
|
273
|
+
/* for the list-defglobals command. */
|
274
|
+
/***********************************************/
|
275
|
+
void ListDefglobalsCommand(
|
276
|
+
Environment *theEnv,
|
277
|
+
UDFContext *context,
|
278
|
+
UDFValue *returnValue)
|
279
|
+
{
|
280
|
+
ListConstructCommand(context,DefglobalData(theEnv)->DefglobalConstruct);
|
281
|
+
}
|
282
|
+
|
283
|
+
/**************************************/
|
284
|
+
/* ListDefglobals: C access routine */
|
285
|
+
/* for the list-defglobals command. */
|
286
|
+
/**************************************/
|
287
|
+
void ListDefglobals(
|
288
|
+
Environment *theEnv,
|
289
|
+
const char *logicalName,
|
290
|
+
Defmodule *theModule)
|
291
|
+
{
|
292
|
+
ListConstruct(theEnv,DefglobalData(theEnv)->DefglobalConstruct,logicalName,theModule);
|
293
|
+
}
|
294
|
+
|
295
|
+
/******************************************************/
|
296
|
+
/* DefglobalGetWatch: C access routine for retrieving */
|
297
|
+
/* the current watch value of a defglobal. */
|
298
|
+
/******************************************************/
|
299
|
+
bool DefglobalGetWatch(
|
300
|
+
Defglobal *theGlobal)
|
301
|
+
{
|
302
|
+
return theGlobal->watch;
|
303
|
+
}
|
304
|
+
|
305
|
+
/******************************************************/
|
306
|
+
/* EnvSetDefglobalWatch: C access routine for setting */
|
307
|
+
/* the current watch value of a defglobal. */
|
308
|
+
/******************************************************/
|
309
|
+
void DefglobalSetWatch(
|
310
|
+
Defglobal *theGlobal,
|
311
|
+
bool newState)
|
312
|
+
{
|
313
|
+
theGlobal->watch = newState;
|
314
|
+
}
|
315
|
+
|
316
|
+
#if ! RUN_TIME
|
317
|
+
|
318
|
+
/********************************************************/
|
319
|
+
/* DefglobalWatchAccess: Access routine for setting the */
|
320
|
+
/* watch flag of a defglobal via the watch command. */
|
321
|
+
/********************************************************/
|
322
|
+
static bool DefglobalWatchAccess(
|
323
|
+
Environment *theEnv,
|
324
|
+
int code,
|
325
|
+
bool newState,
|
326
|
+
Expression *argExprs)
|
327
|
+
{
|
328
|
+
#if MAC_XCD
|
329
|
+
#pragma unused(code)
|
330
|
+
#endif
|
331
|
+
|
332
|
+
return(ConstructSetWatchAccess(theEnv,DefglobalData(theEnv)->DefglobalConstruct,newState,argExprs,
|
333
|
+
(ConstructGetWatchFunction *) DefglobalGetWatch,
|
334
|
+
(ConstructSetWatchFunction *) DefglobalSetWatch));
|
335
|
+
}
|
336
|
+
|
337
|
+
/*********************************************************************/
|
338
|
+
/* DefglobalWatchPrint: Access routine for printing which defglobals */
|
339
|
+
/* have their watch flag set via the list-watch-items command. */
|
340
|
+
/*********************************************************************/
|
341
|
+
static bool DefglobalWatchPrint(
|
342
|
+
Environment *theEnv,
|
343
|
+
const char *logName,
|
344
|
+
int code,
|
345
|
+
Expression *argExprs)
|
346
|
+
{
|
347
|
+
#if MAC_XCD
|
348
|
+
#pragma unused(code)
|
349
|
+
#endif
|
350
|
+
return(ConstructPrintWatchAccess(theEnv,DefglobalData(theEnv)->DefglobalConstruct,logName,argExprs,
|
351
|
+
(ConstructGetWatchFunction *) DefglobalGetWatch,
|
352
|
+
(ConstructSetWatchFunction *) DefglobalSetWatch));
|
353
|
+
}
|
354
|
+
|
355
|
+
#endif /* ! RUN_TIME */
|
356
|
+
|
357
|
+
#endif /* DEBUGGING_FUNCTIONS */
|
358
|
+
|
359
|
+
#endif /* DEFGLOBAL_CONSTRUCT */
|
360
|
+
|
361
|
+
|
@@ -0,0 +1,83 @@
|
|
1
|
+
/*******************************************************/
|
2
|
+
/* "C" Language Integrated Production System */
|
3
|
+
/* */
|
4
|
+
/* CLIPS Version 6.40 08/25/16 */
|
5
|
+
/* */
|
6
|
+
/* DEFGLOBAL BASIC COMMANDS HEADER FILE */
|
7
|
+
/*******************************************************/
|
8
|
+
|
9
|
+
/*************************************************************/
|
10
|
+
/* Purpose: */
|
11
|
+
/* Principal Programmer(s): */
|
12
|
+
/* Gary D. Riley */
|
13
|
+
/* */
|
14
|
+
/* Contributing Programmer(s): */
|
15
|
+
/* Brian L. Dantes */
|
16
|
+
/* */
|
17
|
+
/* Revision History: */
|
18
|
+
/* */
|
19
|
+
/* 6.23: Correction for FalseSymbol/TrueSymbol. DR0859 */
|
20
|
+
/* */
|
21
|
+
/* Corrected compilation errors for files */
|
22
|
+
/* generated by constructs-to-c. DR0861 */
|
23
|
+
/* */
|
24
|
+
/* Changed name of variable log to logName */
|
25
|
+
/* because of Unix compiler warnings of shadowed */
|
26
|
+
/* definitions. */
|
27
|
+
/* */
|
28
|
+
/* 6.24: Renamed BOOLEAN macro type to intBool. */
|
29
|
+
/* */
|
30
|
+
/* 6.30: Removed conditional code for unsupported */
|
31
|
+
/* compilers/operating systems (IBM_MCW, */
|
32
|
+
/* MAC_MCW, and IBM_TBC). */
|
33
|
+
/* */
|
34
|
+
/* Added const qualifiers to remove C++ */
|
35
|
+
/* deprecation warnings. */
|
36
|
+
/* */
|
37
|
+
/* Moved WatchGlobals global to defglobalData. */
|
38
|
+
/* */
|
39
|
+
/* Converted API macros to function calls. */
|
40
|
+
/* */
|
41
|
+
/* 6.40: Removed LOCALE definition. */
|
42
|
+
/* */
|
43
|
+
/* Pragma once and other inclusion changes. */
|
44
|
+
/* */
|
45
|
+
/* Added support for booleans with <stdbool.h>. */
|
46
|
+
/* */
|
47
|
+
/* Removed use of void pointers for specific */
|
48
|
+
/* data structures. */
|
49
|
+
/* */
|
50
|
+
/* ALLOW_ENVIRONMENT_GLOBALS no longer supported. */
|
51
|
+
/* */
|
52
|
+
/* UDF redesign. */
|
53
|
+
/* */
|
54
|
+
/*************************************************************/
|
55
|
+
|
56
|
+
#ifndef _H_globlbsc
|
57
|
+
|
58
|
+
#pragma once
|
59
|
+
|
60
|
+
#define _H_globlbsc
|
61
|
+
|
62
|
+
#include "evaluatn.h"
|
63
|
+
#include "globldef.h"
|
64
|
+
|
65
|
+
void DefglobalBasicCommands(Environment *);
|
66
|
+
void UndefglobalCommand(Environment *,UDFContext *,UDFValue *);
|
67
|
+
bool Undefglobal(Defglobal *,Environment *);
|
68
|
+
void GetDefglobalListFunction(Environment *,UDFContext *,UDFValue *);
|
69
|
+
void GetDefglobalList(Environment *,CLIPSValue *,Defmodule *);
|
70
|
+
void DefglobalModuleFunction(Environment *,UDFContext *,UDFValue *);
|
71
|
+
void PPDefglobalCommand(Environment *,UDFContext *,UDFValue *);
|
72
|
+
bool PPDefglobal(Environment *,const char *,const char *);
|
73
|
+
void ListDefglobalsCommand(Environment *,UDFContext *,UDFValue *);
|
74
|
+
#if DEBUGGING_FUNCTIONS
|
75
|
+
bool DefglobalGetWatch(Defglobal *);
|
76
|
+
void ListDefglobals(Environment *,const char *,Defmodule *);
|
77
|
+
void DefglobalSetWatch(Defglobal *,bool);
|
78
|
+
#endif
|
79
|
+
void ResetDefglobals(Environment *,void *);
|
80
|
+
|
81
|
+
#endif /* _H_globlbsc */
|
82
|
+
|
83
|
+
|