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.
Files changed (346) hide show
  1. checksums.yaml +7 -0
  2. data/ext/clipsruby/agenda.c +1373 -0
  3. data/ext/clipsruby/agenda.h +169 -0
  4. data/ext/clipsruby/analysis.c +1142 -0
  5. data/ext/clipsruby/analysis.h +61 -0
  6. data/ext/clipsruby/argacces.c +526 -0
  7. data/ext/clipsruby/argacces.h +77 -0
  8. data/ext/clipsruby/bload.c +884 -0
  9. data/ext/clipsruby/bload.h +94 -0
  10. data/ext/clipsruby/bmathfun.c +557 -0
  11. data/ext/clipsruby/bmathfun.h +66 -0
  12. data/ext/clipsruby/bsave.c +634 -0
  13. data/ext/clipsruby/bsave.h +130 -0
  14. data/ext/clipsruby/classcom.c +976 -0
  15. data/ext/clipsruby/classcom.h +115 -0
  16. data/ext/clipsruby/classexm.c +1376 -0
  17. data/ext/clipsruby/classexm.h +97 -0
  18. data/ext/clipsruby/classfun.c +1392 -0
  19. data/ext/clipsruby/classfun.h +164 -0
  20. data/ext/clipsruby/classinf.c +1245 -0
  21. data/ext/clipsruby/classinf.h +94 -0
  22. data/ext/clipsruby/classini.c +843 -0
  23. data/ext/clipsruby/classini.h +75 -0
  24. data/ext/clipsruby/classpsr.c +957 -0
  25. data/ext/clipsruby/classpsr.h +73 -0
  26. data/ext/clipsruby/clips.h +133 -0
  27. data/ext/clipsruby/clipsruby.c +619 -0
  28. data/ext/clipsruby/clsltpsr.c +931 -0
  29. data/ext/clipsruby/clsltpsr.h +72 -0
  30. data/ext/clipsruby/commline.c +1217 -0
  31. data/ext/clipsruby/commline.h +131 -0
  32. data/ext/clipsruby/conscomp.c +1593 -0
  33. data/ext/clipsruby/conscomp.h +150 -0
  34. data/ext/clipsruby/constant.h +264 -0
  35. data/ext/clipsruby/constrct.c +1090 -0
  36. data/ext/clipsruby/constrct.h +216 -0
  37. data/ext/clipsruby/constrnt.c +554 -0
  38. data/ext/clipsruby/constrnt.h +132 -0
  39. data/ext/clipsruby/crstrtgy.c +1088 -0
  40. data/ext/clipsruby/crstrtgy.h +85 -0
  41. data/ext/clipsruby/cstrcbin.c +185 -0
  42. data/ext/clipsruby/cstrcbin.h +61 -0
  43. data/ext/clipsruby/cstrccmp.h +43 -0
  44. data/ext/clipsruby/cstrccom.c +1791 -0
  45. data/ext/clipsruby/cstrccom.h +115 -0
  46. data/ext/clipsruby/cstrcpsr.c +835 -0
  47. data/ext/clipsruby/cstrcpsr.h +97 -0
  48. data/ext/clipsruby/cstrnbin.c +282 -0
  49. data/ext/clipsruby/cstrnbin.h +55 -0
  50. data/ext/clipsruby/cstrnchk.c +826 -0
  51. data/ext/clipsruby/cstrnchk.h +91 -0
  52. data/ext/clipsruby/cstrncmp.c +238 -0
  53. data/ext/clipsruby/cstrncmp.h +57 -0
  54. data/ext/clipsruby/cstrnops.c +1176 -0
  55. data/ext/clipsruby/cstrnops.h +47 -0
  56. data/ext/clipsruby/cstrnpsr.c +1394 -0
  57. data/ext/clipsruby/cstrnpsr.h +88 -0
  58. data/ext/clipsruby/cstrnutl.c +564 -0
  59. data/ext/clipsruby/cstrnutl.h +54 -0
  60. data/ext/clipsruby/default.c +454 -0
  61. data/ext/clipsruby/default.h +57 -0
  62. data/ext/clipsruby/defins.c +971 -0
  63. data/ext/clipsruby/defins.h +127 -0
  64. data/ext/clipsruby/developr.c +677 -0
  65. data/ext/clipsruby/developr.h +69 -0
  66. data/ext/clipsruby/dffctbin.c +477 -0
  67. data/ext/clipsruby/dffctbin.h +76 -0
  68. data/ext/clipsruby/dffctbsc.c +308 -0
  69. data/ext/clipsruby/dffctbsc.h +72 -0
  70. data/ext/clipsruby/dffctcmp.c +297 -0
  71. data/ext/clipsruby/dffctcmp.h +44 -0
  72. data/ext/clipsruby/dffctdef.c +364 -0
  73. data/ext/clipsruby/dffctdef.h +104 -0
  74. data/ext/clipsruby/dffctpsr.c +179 -0
  75. data/ext/clipsruby/dffctpsr.h +49 -0
  76. data/ext/clipsruby/dffnxbin.c +520 -0
  77. data/ext/clipsruby/dffnxbin.h +67 -0
  78. data/ext/clipsruby/dffnxcmp.c +378 -0
  79. data/ext/clipsruby/dffnxcmp.h +54 -0
  80. data/ext/clipsruby/dffnxexe.c +241 -0
  81. data/ext/clipsruby/dffnxexe.h +58 -0
  82. data/ext/clipsruby/dffnxfun.c +1192 -0
  83. data/ext/clipsruby/dffnxfun.h +155 -0
  84. data/ext/clipsruby/dffnxpsr.c +514 -0
  85. data/ext/clipsruby/dffnxpsr.h +57 -0
  86. data/ext/clipsruby/dfinsbin.c +509 -0
  87. data/ext/clipsruby/dfinsbin.h +66 -0
  88. data/ext/clipsruby/dfinscmp.c +345 -0
  89. data/ext/clipsruby/dfinscmp.h +48 -0
  90. data/ext/clipsruby/drive.c +1191 -0
  91. data/ext/clipsruby/drive.h +65 -0
  92. data/ext/clipsruby/emathfun.c +1213 -0
  93. data/ext/clipsruby/emathfun.h +99 -0
  94. data/ext/clipsruby/engine.c +1568 -0
  95. data/ext/clipsruby/engine.h +203 -0
  96. data/ext/clipsruby/entities.h +276 -0
  97. data/ext/clipsruby/envrnbld.c +514 -0
  98. data/ext/clipsruby/envrnbld.h +40 -0
  99. data/ext/clipsruby/envrnmnt.c +257 -0
  100. data/ext/clipsruby/envrnmnt.h +112 -0
  101. data/ext/clipsruby/evaluatn.c +1736 -0
  102. data/ext/clipsruby/evaluatn.h +211 -0
  103. data/ext/clipsruby/expressn.c +494 -0
  104. data/ext/clipsruby/expressn.h +154 -0
  105. data/ext/clipsruby/exprnbin.c +538 -0
  106. data/ext/clipsruby/exprnbin.h +60 -0
  107. data/ext/clipsruby/exprnops.c +564 -0
  108. data/ext/clipsruby/exprnops.h +67 -0
  109. data/ext/clipsruby/exprnpsr.c +1112 -0
  110. data/ext/clipsruby/exprnpsr.h +98 -0
  111. data/ext/clipsruby/extconf.rb +2 -0
  112. data/ext/clipsruby/extnfunc.c +1015 -0
  113. data/ext/clipsruby/extnfunc.h +157 -0
  114. data/ext/clipsruby/factbin.c +447 -0
  115. data/ext/clipsruby/factbin.h +56 -0
  116. data/ext/clipsruby/factbld.c +1035 -0
  117. data/ext/clipsruby/factbld.h +63 -0
  118. data/ext/clipsruby/factcmp.c +386 -0
  119. data/ext/clipsruby/factcmp.h +46 -0
  120. data/ext/clipsruby/factcom.c +759 -0
  121. data/ext/clipsruby/factcom.h +80 -0
  122. data/ext/clipsruby/factfile.c +1761 -0
  123. data/ext/clipsruby/factfile.h +54 -0
  124. data/ext/clipsruby/factfun.c +682 -0
  125. data/ext/clipsruby/factfun.h +77 -0
  126. data/ext/clipsruby/factgen.c +1305 -0
  127. data/ext/clipsruby/factgen.h +229 -0
  128. data/ext/clipsruby/facthsh.c +438 -0
  129. data/ext/clipsruby/facthsh.h +81 -0
  130. data/ext/clipsruby/factlhs.c +250 -0
  131. data/ext/clipsruby/factlhs.h +54 -0
  132. data/ext/clipsruby/factmch.c +905 -0
  133. data/ext/clipsruby/factmch.h +68 -0
  134. data/ext/clipsruby/factmngr.c +3373 -0
  135. data/ext/clipsruby/factmngr.h +325 -0
  136. data/ext/clipsruby/factprt.c +498 -0
  137. data/ext/clipsruby/factprt.h +60 -0
  138. data/ext/clipsruby/factqpsr.c +796 -0
  139. data/ext/clipsruby/factqpsr.h +61 -0
  140. data/ext/clipsruby/factqury.c +1267 -0
  141. data/ext/clipsruby/factqury.h +112 -0
  142. data/ext/clipsruby/factrete.c +978 -0
  143. data/ext/clipsruby/factrete.h +70 -0
  144. data/ext/clipsruby/factrhs.c +667 -0
  145. data/ext/clipsruby/factrhs.h +55 -0
  146. data/ext/clipsruby/filecom.c +353 -0
  147. data/ext/clipsruby/filecom.h +137 -0
  148. data/ext/clipsruby/filertr.c +481 -0
  149. data/ext/clipsruby/filertr.h +94 -0
  150. data/ext/clipsruby/fileutil.c +1020 -0
  151. data/ext/clipsruby/fileutil.h +50 -0
  152. data/ext/clipsruby/generate.c +1079 -0
  153. data/ext/clipsruby/generate.h +57 -0
  154. data/ext/clipsruby/genrcbin.c +902 -0
  155. data/ext/clipsruby/genrcbin.h +69 -0
  156. data/ext/clipsruby/genrccmp.c +640 -0
  157. data/ext/clipsruby/genrccmp.h +59 -0
  158. data/ext/clipsruby/genrccom.c +2017 -0
  159. data/ext/clipsruby/genrccom.h +119 -0
  160. data/ext/clipsruby/genrcexe.c +737 -0
  161. data/ext/clipsruby/genrcexe.h +73 -0
  162. data/ext/clipsruby/genrcfun.c +890 -0
  163. data/ext/clipsruby/genrcfun.h +185 -0
  164. data/ext/clipsruby/genrcpsr.c +1618 -0
  165. data/ext/clipsruby/genrcpsr.h +80 -0
  166. data/ext/clipsruby/globlbin.c +458 -0
  167. data/ext/clipsruby/globlbin.h +71 -0
  168. data/ext/clipsruby/globlbsc.c +361 -0
  169. data/ext/clipsruby/globlbsc.h +83 -0
  170. data/ext/clipsruby/globlcmp.c +330 -0
  171. data/ext/clipsruby/globlcmp.h +52 -0
  172. data/ext/clipsruby/globlcom.c +289 -0
  173. data/ext/clipsruby/globlcom.h +63 -0
  174. data/ext/clipsruby/globldef.c +1087 -0
  175. data/ext/clipsruby/globldef.h +151 -0
  176. data/ext/clipsruby/globlpsr.c +530 -0
  177. data/ext/clipsruby/globlpsr.h +59 -0
  178. data/ext/clipsruby/immthpsr.c +431 -0
  179. data/ext/clipsruby/immthpsr.h +55 -0
  180. data/ext/clipsruby/incrrset.c +530 -0
  181. data/ext/clipsruby/incrrset.h +73 -0
  182. data/ext/clipsruby/inherpsr.c +850 -0
  183. data/ext/clipsruby/inherpsr.h +52 -0
  184. data/ext/clipsruby/inscom.c +2076 -0
  185. data/ext/clipsruby/inscom.h +182 -0
  186. data/ext/clipsruby/insfile.c +1764 -0
  187. data/ext/clipsruby/insfile.h +96 -0
  188. data/ext/clipsruby/insfun.c +1451 -0
  189. data/ext/clipsruby/insfun.h +134 -0
  190. data/ext/clipsruby/insmngr.c +2550 -0
  191. data/ext/clipsruby/insmngr.h +125 -0
  192. data/ext/clipsruby/insmoddp.c +1041 -0
  193. data/ext/clipsruby/insmoddp.h +91 -0
  194. data/ext/clipsruby/insmult.c +804 -0
  195. data/ext/clipsruby/insmult.h +62 -0
  196. data/ext/clipsruby/inspsr.c +602 -0
  197. data/ext/clipsruby/inspsr.h +60 -0
  198. data/ext/clipsruby/insquery.c +1278 -0
  199. data/ext/clipsruby/insquery.h +115 -0
  200. data/ext/clipsruby/insqypsr.c +729 -0
  201. data/ext/clipsruby/insqypsr.h +63 -0
  202. data/ext/clipsruby/iofun.c +2045 -0
  203. data/ext/clipsruby/iofun.h +116 -0
  204. data/ext/clipsruby/lgcldpnd.c +644 -0
  205. data/ext/clipsruby/lgcldpnd.h +75 -0
  206. data/ext/clipsruby/main.c +112 -0
  207. data/ext/clipsruby/match.h +142 -0
  208. data/ext/clipsruby/memalloc.c +481 -0
  209. data/ext/clipsruby/memalloc.h +197 -0
  210. data/ext/clipsruby/miscfun.c +1801 -0
  211. data/ext/clipsruby/miscfun.h +132 -0
  212. data/ext/clipsruby/modulbin.c +607 -0
  213. data/ext/clipsruby/modulbin.h +84 -0
  214. data/ext/clipsruby/modulbsc.c +347 -0
  215. data/ext/clipsruby/modulbsc.h +67 -0
  216. data/ext/clipsruby/modulcmp.c +499 -0
  217. data/ext/clipsruby/modulcmp.h +54 -0
  218. data/ext/clipsruby/moduldef.c +817 -0
  219. data/ext/clipsruby/moduldef.h +271 -0
  220. data/ext/clipsruby/modulpsr.c +1150 -0
  221. data/ext/clipsruby/modulpsr.h +69 -0
  222. data/ext/clipsruby/modulutl.c +1036 -0
  223. data/ext/clipsruby/modulutl.h +84 -0
  224. data/ext/clipsruby/msgcom.c +1221 -0
  225. data/ext/clipsruby/msgcom.h +125 -0
  226. data/ext/clipsruby/msgfun.c +1076 -0
  227. data/ext/clipsruby/msgfun.h +118 -0
  228. data/ext/clipsruby/msgpass.c +1441 -0
  229. data/ext/clipsruby/msgpass.h +103 -0
  230. data/ext/clipsruby/msgpsr.c +698 -0
  231. data/ext/clipsruby/msgpsr.h +73 -0
  232. data/ext/clipsruby/multifld.c +1404 -0
  233. data/ext/clipsruby/multifld.h +130 -0
  234. data/ext/clipsruby/multifun.c +2182 -0
  235. data/ext/clipsruby/multifun.h +102 -0
  236. data/ext/clipsruby/network.h +142 -0
  237. data/ext/clipsruby/objbin.c +1522 -0
  238. data/ext/clipsruby/objbin.h +79 -0
  239. data/ext/clipsruby/objcmp.c +1507 -0
  240. data/ext/clipsruby/objcmp.h +71 -0
  241. data/ext/clipsruby/object.h +260 -0
  242. data/ext/clipsruby/objrtbin.c +701 -0
  243. data/ext/clipsruby/objrtbin.h +79 -0
  244. data/ext/clipsruby/objrtbld.c +2393 -0
  245. data/ext/clipsruby/objrtbld.h +66 -0
  246. data/ext/clipsruby/objrtcmp.c +734 -0
  247. data/ext/clipsruby/objrtcmp.h +66 -0
  248. data/ext/clipsruby/objrtfnx.c +1330 -0
  249. data/ext/clipsruby/objrtfnx.h +222 -0
  250. data/ext/clipsruby/objrtgen.c +736 -0
  251. data/ext/clipsruby/objrtgen.h +63 -0
  252. data/ext/clipsruby/objrtmch.c +1524 -0
  253. data/ext/clipsruby/objrtmch.h +160 -0
  254. data/ext/clipsruby/parsefun.c +415 -0
  255. data/ext/clipsruby/parsefun.h +67 -0
  256. data/ext/clipsruby/pattern.c +1265 -0
  257. data/ext/clipsruby/pattern.h +163 -0
  258. data/ext/clipsruby/pprint.c +328 -0
  259. data/ext/clipsruby/pprint.h +79 -0
  260. data/ext/clipsruby/prccode.c +1478 -0
  261. data/ext/clipsruby/prccode.h +145 -0
  262. data/ext/clipsruby/prcdrfun.c +640 -0
  263. data/ext/clipsruby/prcdrfun.h +95 -0
  264. data/ext/clipsruby/prcdrpsr.c +1068 -0
  265. data/ext/clipsruby/prcdrpsr.h +79 -0
  266. data/ext/clipsruby/prdctfun.c +869 -0
  267. data/ext/clipsruby/prdctfun.h +77 -0
  268. data/ext/clipsruby/prntutil.c +878 -0
  269. data/ext/clipsruby/prntutil.h +125 -0
  270. data/ext/clipsruby/proflfun.c +827 -0
  271. data/ext/clipsruby/proflfun.h +118 -0
  272. data/ext/clipsruby/reorder.c +2082 -0
  273. data/ext/clipsruby/reorder.h +172 -0
  274. data/ext/clipsruby/reteutil.c +1732 -0
  275. data/ext/clipsruby/reteutil.h +111 -0
  276. data/ext/clipsruby/retract.c +710 -0
  277. data/ext/clipsruby/retract.h +74 -0
  278. data/ext/clipsruby/router.c +737 -0
  279. data/ext/clipsruby/router.h +147 -0
  280. data/ext/clipsruby/rulebin.c +1136 -0
  281. data/ext/clipsruby/rulebin.h +153 -0
  282. data/ext/clipsruby/rulebld.c +1328 -0
  283. data/ext/clipsruby/rulebld.h +62 -0
  284. data/ext/clipsruby/rulebsc.c +517 -0
  285. data/ext/clipsruby/rulebsc.h +91 -0
  286. data/ext/clipsruby/rulecmp.c +733 -0
  287. data/ext/clipsruby/rulecmp.h +63 -0
  288. data/ext/clipsruby/rulecom.c +1583 -0
  289. data/ext/clipsruby/rulecom.h +116 -0
  290. data/ext/clipsruby/rulecstr.c +892 -0
  291. data/ext/clipsruby/rulecstr.h +53 -0
  292. data/ext/clipsruby/ruledef.c +559 -0
  293. data/ext/clipsruby/ruledef.h +179 -0
  294. data/ext/clipsruby/ruledlt.c +599 -0
  295. data/ext/clipsruby/ruledlt.h +58 -0
  296. data/ext/clipsruby/rulelhs.c +1216 -0
  297. data/ext/clipsruby/rulelhs.h +52 -0
  298. data/ext/clipsruby/rulepsr.c +1073 -0
  299. data/ext/clipsruby/rulepsr.h +61 -0
  300. data/ext/clipsruby/scanner.c +856 -0
  301. data/ext/clipsruby/scanner.h +112 -0
  302. data/ext/clipsruby/setup.h +488 -0
  303. data/ext/clipsruby/sortfun.c +433 -0
  304. data/ext/clipsruby/sortfun.h +55 -0
  305. data/ext/clipsruby/strngfun.c +1173 -0
  306. data/ext/clipsruby/strngfun.h +96 -0
  307. data/ext/clipsruby/strngrtr.c +523 -0
  308. data/ext/clipsruby/strngrtr.h +97 -0
  309. data/ext/clipsruby/symblbin.c +648 -0
  310. data/ext/clipsruby/symblbin.h +64 -0
  311. data/ext/clipsruby/symblcmp.c +893 -0
  312. data/ext/clipsruby/symblcmp.h +61 -0
  313. data/ext/clipsruby/symbol.c +1961 -0
  314. data/ext/clipsruby/symbol.h +243 -0
  315. data/ext/clipsruby/sysdep.c +894 -0
  316. data/ext/clipsruby/sysdep.h +164 -0
  317. data/ext/clipsruby/textpro.c +1388 -0
  318. data/ext/clipsruby/textpro.h +77 -0
  319. data/ext/clipsruby/tmpltbin.c +609 -0
  320. data/ext/clipsruby/tmpltbin.h +108 -0
  321. data/ext/clipsruby/tmpltbsc.c +327 -0
  322. data/ext/clipsruby/tmpltbsc.h +87 -0
  323. data/ext/clipsruby/tmpltcmp.c +450 -0
  324. data/ext/clipsruby/tmpltcmp.h +57 -0
  325. data/ext/clipsruby/tmpltdef.c +584 -0
  326. data/ext/clipsruby/tmpltdef.h +155 -0
  327. data/ext/clipsruby/tmpltfun.c +2477 -0
  328. data/ext/clipsruby/tmpltfun.h +122 -0
  329. data/ext/clipsruby/tmpltlhs.c +379 -0
  330. data/ext/clipsruby/tmpltlhs.h +50 -0
  331. data/ext/clipsruby/tmpltpsr.c +819 -0
  332. data/ext/clipsruby/tmpltpsr.h +59 -0
  333. data/ext/clipsruby/tmpltrhs.c +595 -0
  334. data/ext/clipsruby/tmpltrhs.h +55 -0
  335. data/ext/clipsruby/tmpltutl.c +637 -0
  336. data/ext/clipsruby/tmpltutl.h +82 -0
  337. data/ext/clipsruby/userdata.c +156 -0
  338. data/ext/clipsruby/userdata.h +72 -0
  339. data/ext/clipsruby/userfunctions.c +70 -0
  340. data/ext/clipsruby/usrsetup.h +7 -0
  341. data/ext/clipsruby/utility.c +1594 -0
  342. data/ext/clipsruby/utility.h +250 -0
  343. data/ext/clipsruby/watch.c +865 -0
  344. data/ext/clipsruby/watch.h +124 -0
  345. data/lib/clipsruby.rb +1 -0
  346. metadata +388 -0
@@ -0,0 +1,203 @@
1
+ /*******************************************************/
2
+ /* "C" Language Integrated Production System */
3
+ /* */
4
+ /* CLIPS Version 6.40 08/25/16 */
5
+ /* */
6
+ /* ENGINE HEADER FILE */
7
+ /*******************************************************/
8
+
9
+ /*************************************************************/
10
+ /* Purpose: Provides functionality primarily associated with */
11
+ /* the run and focus commands. */
12
+ /* */
13
+ /* Principal Programmer(s): */
14
+ /* Gary D. Riley */
15
+ /* */
16
+ /* Contributing Programmer(s): */
17
+ /* */
18
+ /* Revision History: */
19
+ /* */
20
+ /* 6.23: Correction for FalseSymbol/TrueSymbol. DR0859 */
21
+ /* */
22
+ /* Corrected compilation errors for files */
23
+ /* generated by constructs-to-c. DR0861 */
24
+ /* */
25
+ /* 6.24: Removed DYNAMIC_SALIENCE, INCREMENTAL_RESET, */
26
+ /* and LOGICAL_DEPENDENCIES compilation flags. */
27
+ /* */
28
+ /* Renamed BOOLEAN macro type to intBool. */
29
+ /* */
30
+ /* Added access functions to the HaltRules flag. */
31
+ /* */
32
+ /* Added EnvGetNextFocus, EnvGetFocusChanged, and */
33
+ /* EnvSetFocusChanged functions. */
34
+ /* */
35
+ /* 6.30: Added additional developer statistics to help */
36
+ /* analyze join network performance. */
37
+ /* */
38
+ /* Removed pseudo-facts used in not CEs. */
39
+ /* */
40
+ /* Added context information for run functions. */
41
+ /* */
42
+ /* Added before rule firing callback function. */
43
+ /* */
44
+ /* Changed garbage collection algorithm. */
45
+ /* */
46
+ /* Changed integer type/precision. */
47
+ /* */
48
+ /* Added EnvHalt function. */
49
+ /* */
50
+ /* Used gensprintf instead of sprintf. */
51
+ /* */
52
+ /* Removed conditional code for unsupported */
53
+ /* compilers/operating systems (IBM_MCW, */
54
+ /* MAC_MCW, and IBM_TBC). */
55
+ /* Added const qualifiers to remove C++ */
56
+ /* deprecation warnings. */
57
+ /* */
58
+ /* Converted API macros to function calls. */
59
+ /* */
60
+ /* 6.40: Removed LOCALE definition. */
61
+ /* */
62
+ /* Pragma once and other inclusion changes. */
63
+ /* */
64
+ /* Added support for booleans with <stdbool.h>. */
65
+ /* */
66
+ /* Removed use of void pointers for specific */
67
+ /* data structures. */
68
+ /* */
69
+ /* ALLOW_ENVIRONMENT_GLOBALS no longer supported. */
70
+ /* */
71
+ /* Incremental reset is always enabled. */
72
+ /* */
73
+ /* UDF redesign. */
74
+ /* */
75
+ /*************************************************************/
76
+
77
+ #ifndef _H_engine
78
+
79
+ #pragma once
80
+
81
+ #define _H_engine
82
+
83
+ typedef struct focalModule FocalModule;
84
+
85
+ #include "lgcldpnd.h"
86
+ #include "ruledef.h"
87
+ #include "network.h"
88
+ #include "moduldef.h"
89
+ #include "retract.h"
90
+
91
+ struct focalModule
92
+ {
93
+ Defmodule *theModule;
94
+ struct defruleModule *theDefruleModule;
95
+ FocalModule *next;
96
+ };
97
+
98
+ typedef struct ruleFiredFunctionItem RuleFiredFunctionItem;
99
+ typedef void RuleFiredFunction(Environment *,Activation *,void *);
100
+
101
+ struct ruleFiredFunctionItem
102
+ {
103
+ const char *name;
104
+ RuleFiredFunction *func;
105
+ int priority;
106
+ RuleFiredFunctionItem *next;
107
+ void *context;
108
+ };
109
+
110
+ #define ENGINE_DATA 18
111
+
112
+ struct engineData
113
+ {
114
+ Defrule *ExecutingRule;
115
+ bool HaltRules;
116
+ struct joinNode *TheLogicalJoin;
117
+ struct partialMatch *TheLogicalBind;
118
+ struct dependency *UnsupportedDataEntities;
119
+ bool alreadyEntered;
120
+ RuleFiredFunctionItem *ListOfAfterRuleFiresFunctions;
121
+ RuleFiredFunctionItem *ListOfBeforeRuleFiresFunctions;
122
+ FocalModule *CurrentFocus;
123
+ bool FocusChanged;
124
+ #if DEBUGGING_FUNCTIONS
125
+ bool WatchStatistics;
126
+ bool WatchFocus;
127
+ #endif
128
+ bool IncrementalResetInProgress;
129
+ bool JoinOperationInProgress;
130
+ struct partialMatch *GlobalLHSBinds;
131
+ struct partialMatch *GlobalRHSBinds;
132
+ struct joinNode *GlobalJoin;
133
+ struct partialMatch *GarbagePartialMatches;
134
+ struct alphaMatch *GarbageAlphaMatches;
135
+ bool AlreadyRunning;
136
+ #if DEVELOPER
137
+ long leftToRightComparisons;
138
+ long rightToLeftComparisons;
139
+ long leftToRightSucceeds;
140
+ long rightToLeftSucceeds;
141
+ long leftToRightLoops;
142
+ long rightToLeftLoops;
143
+ long findNextConflictingComparisons;
144
+ long betaHashHTSkips;
145
+ long betaHashListSkips;
146
+ long unneededMarkerCompare;
147
+ #endif
148
+ };
149
+
150
+ #define EngineData(theEnv) ((struct engineData *) GetEnvironmentData(theEnv,ENGINE_DATA))
151
+
152
+ #define MAX_PATTERNS_CHECKED 64
153
+
154
+ long long Run(Environment *,long long);
155
+ bool AddAfterRuleFiresFunction(Environment *,const char *,
156
+ RuleFiredFunction *,int,void *);
157
+ bool RemoveAfterRuleFiresFunction(Environment *,const char *);
158
+ bool AddBeforeRuleFiresFunction(Environment *,const char *,
159
+ RuleFiredFunction *,int,void *);
160
+ bool RemoveBeforeRuleFiresFunction(Environment *,const char *);
161
+ RuleFiredFunctionItem *AddRuleFiredFunctionToCallList(Environment *,const char *,int,RuleFiredFunction *,
162
+ RuleFiredFunctionItem *,void *);
163
+ RuleFiredFunctionItem *RemoveRuleFiredFunctionFromCallList(Environment *,const char *,
164
+ RuleFiredFunctionItem *,bool *);
165
+ void DeallocateRuleFiredCallList(Environment *,RuleFiredFunctionItem *);
166
+ void InitializeEngine(Environment *);
167
+ void SetBreak(Defrule *);
168
+ void Halt(Environment *);
169
+ bool RemoveBreak(Defrule *);
170
+ void RemoveAllBreakpoints(Environment *);
171
+ void ShowBreaks(Environment *,const char *,Defmodule *);
172
+ bool DefruleHasBreakpoint(Defrule *);
173
+ void RunCommand(Environment *,UDFContext *,UDFValue *);
174
+ void SetBreakCommand(Environment *,UDFContext *,UDFValue *);
175
+ void RemoveBreakCommand(Environment *,UDFContext *,UDFValue *);
176
+ void ShowBreaksCommand(Environment *,UDFContext *,UDFValue *);
177
+ void HaltCommand(Environment *,UDFContext *,UDFValue *);
178
+ void FocusCommand(Environment *,UDFContext *,UDFValue *);
179
+ void ClearFocusStackCommand(Environment *,UDFContext *,UDFValue *);
180
+ void ClearFocusStack(Environment *);
181
+ FocalModule *GetNextFocus(Environment *,FocalModule *);
182
+ const char *FocalModuleName(FocalModule *);
183
+ Defmodule *FocalModuleModule(FocalModule *);
184
+ void Focus(Defmodule *);
185
+ bool GetFocusChanged(Environment *);
186
+ void SetFocusChanged(Environment *,bool);
187
+ void ListFocusStackCommand(Environment *,UDFContext *,UDFValue *);
188
+ void ListFocusStack(Environment *,const char *);
189
+ void GetFocusStackFunction(Environment *,UDFContext *,UDFValue *);
190
+ void GetFocusStack(Environment *,CLIPSValue *);
191
+ void PopFocusFunction(Environment *,UDFContext *,UDFValue *);
192
+ Defmodule *PopFocus(Environment *);
193
+ bool GetHaltRules(Environment *);
194
+ void SetHaltRules(Environment *,bool);
195
+ Activation *NextActivationToFire(Environment *);
196
+
197
+ #endif /* _H_engine */
198
+
199
+
200
+
201
+
202
+
203
+
@@ -0,0 +1,276 @@
1
+ /*******************************************************/
2
+ /* "C" Language Integrated Production System */
3
+ /* */
4
+ /* CLIPS Version 6.40 11/01/16 */
5
+ /* */
6
+ /* ENTITIES HEADER FILE */
7
+ /*******************************************************/
8
+
9
+ /*************************************************************/
10
+ /* Purpose: */
11
+ /* */
12
+ /* Principal Programmer(s): */
13
+ /* Gary D. Riley */
14
+ /* */
15
+ /* Contributing Programmer(s): */
16
+ /* */
17
+ /* Revision History: */
18
+ /* */
19
+ /* 6.40: Created to store key data structures. */
20
+ /* */
21
+ /*************************************************************/
22
+
23
+ #ifndef _H_entities
24
+
25
+ #pragma once
26
+
27
+ #define _H_entities
28
+
29
+ typedef struct clipsVoid CLIPSVoid;
30
+ typedef struct clipsLexeme CLIPSLexeme;
31
+ typedef struct clipsFloat CLIPSFloat;
32
+ typedef struct clipsInteger CLIPSInteger;
33
+ typedef struct clipsBitMap CLIPSBitMap;
34
+ typedef struct clipsExternalAddress CLIPSExternalAddress;
35
+ typedef struct typeHeader TypeHeader;
36
+
37
+ typedef struct multifield Multifield;
38
+
39
+ typedef struct clipsValue CLIPSValue;
40
+ typedef struct udfValue UDFValue;
41
+
42
+ typedef struct fact Fact;
43
+ typedef struct instance Instance;
44
+
45
+ typedef struct expr Expression;
46
+ typedef struct functionDefinition FunctionDefinition;
47
+ typedef struct udfContext UDFContext;
48
+
49
+ typedef struct entityRecord EntityRecord;
50
+
51
+ typedef void EntityPrintFunction(Environment *,const char *,void *);
52
+ typedef bool EntityEvaluationFunction(Environment *,void *,UDFValue *);
53
+ typedef void EntityBusyCountFunction(Environment *,void *);
54
+
55
+ typedef struct patternEntityRecord PatternEntityRecord;
56
+ typedef struct patternEntity PatternEntity;
57
+
58
+ typedef bool BoolCallFunction(Environment *,void *);
59
+ typedef void VoidCallFunction(Environment *,void *);
60
+ typedef void VoidCallFunctionWithArg(Environment *,void *,void *);
61
+
62
+ /**************/
63
+ /* typeHeader */
64
+ /**************/
65
+
66
+ struct typeHeader
67
+ {
68
+ unsigned short type;
69
+ };
70
+
71
+ /*************/
72
+ /* clipsVoid */
73
+ /*************/
74
+ struct clipsVoid
75
+ {
76
+ TypeHeader header;
77
+ };
78
+
79
+ /***************/
80
+ /* clipsLexeme */
81
+ /***************/
82
+ struct clipsLexeme
83
+ {
84
+ TypeHeader header;
85
+ CLIPSLexeme *next;
86
+ long count;
87
+ unsigned int permanent : 1;
88
+ unsigned int markedEphemeral : 1;
89
+ unsigned int neededSymbol : 1;
90
+ unsigned int bucket : 29;
91
+ const char *contents;
92
+ };
93
+
94
+ /**************/
95
+ /* clipsFloat */
96
+ /**************/
97
+ struct clipsFloat
98
+ {
99
+ TypeHeader header;
100
+ CLIPSFloat *next;
101
+ long count;
102
+ unsigned int permanent : 1;
103
+ unsigned int markedEphemeral : 1;
104
+ unsigned int neededFloat : 1;
105
+ unsigned int bucket : 29;
106
+ double contents;
107
+ };
108
+
109
+ /****************/
110
+ /* clipsInteger */
111
+ /****************/
112
+ struct clipsInteger
113
+ {
114
+ TypeHeader header;
115
+ CLIPSInteger *next;
116
+ long count;
117
+ unsigned int permanent : 1;
118
+ unsigned int markedEphemeral : 1;
119
+ unsigned int neededInteger : 1;
120
+ unsigned int bucket : 29;
121
+ long long contents;
122
+ };
123
+
124
+ /***************/
125
+ /* clipsBitMap */
126
+ /***************/
127
+ struct clipsBitMap
128
+ {
129
+ TypeHeader header;
130
+ CLIPSBitMap *next;
131
+ long count;
132
+ unsigned int permanent : 1;
133
+ unsigned int markedEphemeral : 1;
134
+ unsigned int neededBitMap : 1;
135
+ unsigned int bucket : 29;
136
+ const char *contents;
137
+ unsigned short size;
138
+ };
139
+
140
+ /************************/
141
+ /* clipsExternalAddress */
142
+ /************************/
143
+ struct clipsExternalAddress
144
+ {
145
+ TypeHeader header;
146
+ CLIPSExternalAddress *next;
147
+ long count;
148
+ unsigned int permanent : 1;
149
+ unsigned int markedEphemeral : 1;
150
+ unsigned int neededPointer : 1;
151
+ unsigned int bucket : 29;
152
+ void *contents;
153
+ unsigned short type;
154
+ };
155
+
156
+ /**************/
157
+ /* clipsValue */
158
+ /**************/
159
+ struct clipsValue
160
+ {
161
+ union
162
+ {
163
+ void *value;
164
+ TypeHeader *header;
165
+ CLIPSLexeme *lexemeValue;
166
+ CLIPSFloat *floatValue;
167
+ CLIPSInteger *integerValue;
168
+ CLIPSVoid *voidValue;
169
+ Multifield *multifieldValue;
170
+ Fact *factValue;
171
+ Instance *instanceValue;
172
+ CLIPSExternalAddress *externalAddressValue;
173
+ };
174
+ };
175
+
176
+ /**************/
177
+ /* multifield */
178
+ /**************/
179
+ struct multifield
180
+ {
181
+ TypeHeader header;
182
+ unsigned busyCount;
183
+ size_t length;
184
+ Multifield *next;
185
+ CLIPSValue contents[1];
186
+ };
187
+
188
+ /************/
189
+ /* udfValue */
190
+ /************/
191
+ struct udfValue
192
+ {
193
+ void *supplementalInfo;
194
+ union
195
+ {
196
+ void *value;
197
+ TypeHeader *header;
198
+ CLIPSLexeme *lexemeValue;
199
+ CLIPSFloat *floatValue;
200
+ CLIPSInteger *integerValue;
201
+ CLIPSVoid *voidValue;
202
+ Multifield *multifieldValue;
203
+ Fact *factValue;
204
+ Instance *instanceValue;
205
+ CLIPSExternalAddress *externalAddressValue;
206
+ };
207
+ size_t begin;
208
+ size_t range;
209
+ struct udfValue *next;
210
+ };
211
+
212
+ /**************/
213
+ /* udfContext */
214
+ /**************/
215
+ struct udfContext
216
+ {
217
+ Environment *environment;
218
+ void *context;
219
+ FunctionDefinition *theFunction;
220
+ unsigned int lastPosition;
221
+ Expression *lastArg;
222
+ UDFValue *returnValue;
223
+ };
224
+
225
+ /****************/
226
+ /* entityRecord */
227
+ /****************/
228
+ struct entityRecord
229
+ {
230
+ const char *name;
231
+ unsigned int type : 13;
232
+ unsigned int copyToEvaluate : 1;
233
+ unsigned int bitMap : 1;
234
+ unsigned int addsToRuleComplexity : 1;
235
+ EntityPrintFunction *shortPrintFunction;
236
+ EntityPrintFunction *longPrintFunction;
237
+ bool (*deleteFunction)(void *,Environment *);
238
+ EntityEvaluationFunction *evaluateFunction;
239
+ void *(*getNextFunction)(void *,void *);
240
+ EntityBusyCountFunction *decrementBusyCount;
241
+ EntityBusyCountFunction *incrementBusyCount;
242
+ void (*propagateDepth)(void *,void *);
243
+ void (*markNeeded)(void *,void *);
244
+ void (*install)(void *,void *);
245
+ void (*deinstall)(void *,void *);
246
+ struct userData *usrData;
247
+ };
248
+
249
+ /***********************/
250
+ /* patternEntityRecord */
251
+ /***********************/
252
+ struct patternEntityRecord
253
+ {
254
+ struct entityRecord base;
255
+ void (*decrementBasisCount)(Environment *,void *);
256
+ void (*incrementBasisCount)(Environment *,void *);
257
+ void (*matchFunction)(Environment *,void *);
258
+ bool (*synchronized)(Environment *,void *);
259
+ bool (*isDeleted)(Environment *,void *);
260
+ };
261
+
262
+ /*****************/
263
+ /* patternEntity */
264
+ /*****************/
265
+ struct patternEntity
266
+ {
267
+ TypeHeader header;
268
+ struct patternEntityRecord *theInfo;
269
+ void *dependents;
270
+ unsigned busyCount;
271
+ unsigned long long timeTag;
272
+ };
273
+
274
+ #endif /* _H_entities */
275
+
276
+