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,108 @@
1
+ /*******************************************************/
2
+ /* "C" Language Integrated Production System */
3
+ /* */
4
+ /* CLIPS Version 6.40 07/30/16 */
5
+ /* */
6
+ /* DEFTEMPLATE BSAVE/BLOAD HEADER FILE */
7
+ /*******************************************************/
8
+
9
+ /*************************************************************/
10
+ /* Purpose: */
11
+ /* */
12
+ /* Principal Programmer(s): */
13
+ /* Gary D. Riley */
14
+ /* */
15
+ /* Contributing Programmer(s): */
16
+ /* Brian L. Dantes */
17
+ /* */
18
+ /* Revision History: */
19
+ /* */
20
+ /* 6.23: Added support for templates maintaining their */
21
+ /* own list of facts. */
22
+ /* */
23
+ /* 6.30: Changed integer type/precision. */
24
+ /* */
25
+ /* Support for deftemplate slot facets. */
26
+ /* */
27
+ /* 6.40: Removed LOCALE definition. */
28
+ /* */
29
+ /* Pragma once and other inclusion changes. */
30
+ /* */
31
+ /* Removed use of void pointers for specific */
32
+ /* data structures. */
33
+ /* */
34
+ /*************************************************************/
35
+
36
+ #ifndef _H_tmpltbin
37
+
38
+ #pragma once
39
+
40
+ #define _H_tmpltbin
41
+
42
+ #if (! RUN_TIME)
43
+
44
+ struct bsaveTemplateSlot
45
+ {
46
+ unsigned long slotName;
47
+ unsigned int multislot : 1;
48
+ unsigned int noDefault : 1;
49
+ unsigned int defaultPresent : 1;
50
+ unsigned int defaultDynamic : 1;
51
+ unsigned long constraints;
52
+ unsigned long defaultList;
53
+ unsigned long facetList;
54
+ unsigned long next;
55
+ };
56
+
57
+ struct bsaveDeftemplate;
58
+ struct bsaveDeftemplateModule;
59
+
60
+ #include "cstrcbin.h"
61
+
62
+ struct bsaveDeftemplate
63
+ {
64
+ struct bsaveConstructHeader header;
65
+ unsigned long slotList;
66
+ unsigned int implied : 1;
67
+ unsigned int numberOfSlots : 15;
68
+ unsigned long patternNetwork;
69
+ };
70
+
71
+ #include "modulbin.h"
72
+
73
+ struct bsaveDeftemplateModule
74
+ {
75
+ struct bsaveDefmoduleItemHeader header;
76
+ };
77
+
78
+ #define TMPLTBIN_DATA 61
79
+
80
+ #include "tmpltdef.h"
81
+
82
+ struct deftemplateBinaryData
83
+ {
84
+ Deftemplate *DeftemplateArray;
85
+ unsigned long NumberOfDeftemplates;
86
+ unsigned long NumberOfTemplateSlots;
87
+ unsigned long NumberOfTemplateModules;
88
+ struct templateSlot *SlotArray;
89
+ struct deftemplateModule *ModuleArray;
90
+ };
91
+
92
+ #define DeftemplateBinaryData(theEnv) ((struct deftemplateBinaryData *) GetEnvironmentData(theEnv,TMPLTBIN_DATA))
93
+
94
+ #define DeftemplatePointer(i) ((Deftemplate *) (&DeftemplateBinaryData(theEnv)->DeftemplateArray[i]))
95
+
96
+ #ifndef _H_tmpltdef
97
+ #include "tmpltdef.h"
98
+ #endif
99
+
100
+ void DeftemplateBinarySetup(Environment *);
101
+ void *BloadDeftemplateModuleReference(Environment *,unsigned long);
102
+
103
+ #endif /* (! RUN_TIME) */
104
+
105
+ #endif /* _H_tmpltbin */
106
+
107
+
108
+
@@ -0,0 +1,327 @@
1
+ /*******************************************************/
2
+ /* "C" Language Integrated Production System */
3
+ /* */
4
+ /* CLIPS Version 6.40 07/02/18 */
5
+ /* */
6
+ /* DEFTEMPLATE BASIC COMMANDS MODULE */
7
+ /*******************************************************/
8
+
9
+ /*************************************************************/
10
+ /* Purpose: Implements core commands for the deftemplate */
11
+ /* construct such as clear, reset, save, undeftemplate, */
12
+ /* ppdeftemplate, list-deftemplates, and */
13
+ /* get-deftemplate-list. */
14
+ /* */
15
+ /* Principal Programmer(s): */
16
+ /* Gary D. Riley */
17
+ /* */
18
+ /* Contributing Programmer(s): */
19
+ /* Brian L. Dantes */
20
+ /* */
21
+ /* Revision History: */
22
+ /* */
23
+ /* 6.23: Corrected compilation errors for files */
24
+ /* generated by constructs-to-c. DR0861 */
25
+ /* */
26
+ /* Changed name of variable log to logName */
27
+ /* because of Unix compiler warnings of shadowed */
28
+ /* definitions. */
29
+ /* */
30
+ /* 6.24: Renamed BOOLEAN macro type to intBool. */
31
+ /* */
32
+ /* Corrected code to remove compiler warnings */
33
+ /* when ENVIRONMENT_API_ONLY flag is set. */
34
+ /* */
35
+ /* 6.30: Removed conditional code for unsupported */
36
+ /* compilers/operating systems (IBM_MCW, */
37
+ /* MAC_MCW, and IBM_TBC). */
38
+ /* */
39
+ /* Added const qualifiers to remove C++ */
40
+ /* deprecation warnings. */
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
+ /* Removed initial-fact support. */
56
+ /* */
57
+ /* Pretty print functions accept optional logical */
58
+ /* name argument. */
59
+ /* */
60
+ /*************************************************************/
61
+
62
+ #include "setup.h"
63
+
64
+ #if DEFTEMPLATE_CONSTRUCT
65
+
66
+ #include <stdio.h>
67
+ #include <string.h>
68
+
69
+ #include "argacces.h"
70
+ #include "constrct.h"
71
+ #include "cstrccom.h"
72
+ #include "cstrcpsr.h"
73
+ #include "envrnmnt.h"
74
+ #include "extnfunc.h"
75
+ #include "factrhs.h"
76
+ #include "memalloc.h"
77
+ #include "multifld.h"
78
+ #include "router.h"
79
+ #include "scanner.h"
80
+ #if BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE
81
+ #include "tmpltbin.h"
82
+ #endif
83
+ #if CONSTRUCT_COMPILER && (! RUN_TIME)
84
+ #include "tmpltcmp.h"
85
+ #endif
86
+ #include "tmpltdef.h"
87
+ #include "tmpltpsr.h"
88
+ #include "tmpltutl.h"
89
+
90
+ #include "tmpltbsc.h"
91
+
92
+ /***************************************/
93
+ /* LOCAL INTERNAL FUNCTION DEFINITIONS */
94
+ /***************************************/
95
+
96
+ static void SaveDeftemplates(Environment *,Defmodule *,const char *,void *);
97
+
98
+ /*********************************************************************/
99
+ /* DeftemplateBasicCommands: Initializes basic deftemplate commands. */
100
+ /*********************************************************************/
101
+ void DeftemplateBasicCommands(
102
+ Environment *theEnv)
103
+ {
104
+ AddSaveFunction(theEnv,"deftemplate",SaveDeftemplates,10,NULL);
105
+
106
+ #if ! RUN_TIME
107
+ AddUDF(theEnv,"get-deftemplate-list","m",0,1,"y",GetDeftemplateListFunction,"GetDeftemplateListFunction",NULL);
108
+ AddUDF(theEnv,"undeftemplate","v",1,1,"y",UndeftemplateCommand,"UndeftemplateCommand",NULL);
109
+ AddUDF(theEnv,"deftemplate-module","y",1,1,"y",DeftemplateModuleFunction,"DeftemplateModuleFunction",NULL);
110
+
111
+ #if DEBUGGING_FUNCTIONS
112
+ AddUDF(theEnv,"list-deftemplates","v",0,1,"y",ListDeftemplatesCommand,"ListDeftemplatesCommand",NULL);
113
+ AddUDF(theEnv,"ppdeftemplate","vs",1,2,";y;ldsyn",PPDeftemplateCommand,"PPDeftemplateCommand",NULL);
114
+ #endif
115
+
116
+ #if (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE)
117
+ DeftemplateBinarySetup(theEnv);
118
+ #endif
119
+
120
+ #if CONSTRUCT_COMPILER && (! RUN_TIME)
121
+ DeftemplateCompilerSetup(theEnv);
122
+ #endif
123
+
124
+ #endif
125
+ }
126
+
127
+ /**********************************************/
128
+ /* SaveDeftemplates: Deftemplate save routine */
129
+ /* for use with the save command. */
130
+ /**********************************************/
131
+ static void SaveDeftemplates(
132
+ Environment *theEnv,
133
+ Defmodule *theModule,
134
+ const char *logicalName,
135
+ void *context)
136
+ {
137
+ SaveConstruct(theEnv,theModule,logicalName,DeftemplateData(theEnv)->DeftemplateConstruct);
138
+ }
139
+
140
+ /**********************************************/
141
+ /* UndeftemplateCommand: H/L access routine */
142
+ /* for the undeftemplate command. */
143
+ /**********************************************/
144
+ void UndeftemplateCommand(
145
+ Environment *theEnv,
146
+ UDFContext *context,
147
+ UDFValue *returnValue)
148
+ {
149
+ UndefconstructCommand(context,"undeftemplate",DeftemplateData(theEnv)->DeftemplateConstruct);
150
+ }
151
+
152
+ /************************************/
153
+ /* Undeftemplate: C access routine */
154
+ /* for the undeftemplate command. */
155
+ /************************************/
156
+ bool Undeftemplate(
157
+ Deftemplate *theDeftemplate,
158
+ Environment *allEnv)
159
+ {
160
+ Environment *theEnv;
161
+
162
+ if (theDeftemplate == NULL)
163
+ {
164
+ theEnv = allEnv;
165
+ return Undefconstruct(theEnv,NULL,DeftemplateData(theEnv)->DeftemplateConstruct);
166
+ }
167
+ else
168
+ {
169
+ theEnv = theDeftemplate->header.env;
170
+ return Undefconstruct(theEnv,&theDeftemplate->header,DeftemplateData(theEnv)->DeftemplateConstruct);
171
+ }
172
+ }
173
+
174
+ /****************************************************/
175
+ /* GetDeftemplateListFunction: H/L access routine */
176
+ /* for the get-deftemplate-list function. */
177
+ /****************************************************/
178
+ void GetDeftemplateListFunction(
179
+ Environment *theEnv,
180
+ UDFContext *context,
181
+ UDFValue *returnValue)
182
+ {
183
+ GetConstructListFunction(context,returnValue,DeftemplateData(theEnv)->DeftemplateConstruct);
184
+ }
185
+
186
+ /********************************************/
187
+ /* GetDeftemplateList: C access routine for */
188
+ /* the get-deftemplate-list function. */
189
+ /********************************************/
190
+ void GetDeftemplateList(
191
+ Environment *theEnv,
192
+ CLIPSValue *returnValue,
193
+ Defmodule *theModule)
194
+ {
195
+ UDFValue result;
196
+
197
+ GetConstructList(theEnv,&result,DeftemplateData(theEnv)->DeftemplateConstruct,theModule);
198
+ NormalizeMultifield(theEnv,&result);
199
+ returnValue->value = result.value;
200
+ }
201
+
202
+ /***************************************************/
203
+ /* DeftemplateModuleFunction: H/L access routine */
204
+ /* for the deftemplate-module function. */
205
+ /***************************************************/
206
+ void DeftemplateModuleFunction(
207
+ Environment *theEnv,
208
+ UDFContext *context,
209
+ UDFValue *returnValue)
210
+ {
211
+ returnValue->value = GetConstructModuleCommand(context,"deftemplate-module",DeftemplateData(theEnv)->DeftemplateConstruct);
212
+ }
213
+
214
+ #if DEBUGGING_FUNCTIONS
215
+
216
+ /**********************************************/
217
+ /* PPDeftemplateCommand: H/L access routine */
218
+ /* for the ppdeftemplate command. */
219
+ /**********************************************/
220
+ void PPDeftemplateCommand(
221
+ Environment *theEnv,
222
+ UDFContext *context,
223
+ UDFValue *returnValue)
224
+ {
225
+ PPConstructCommand(context,"ppdeftemplate",DeftemplateData(theEnv)->DeftemplateConstruct,returnValue);
226
+ }
227
+
228
+ /***************************************/
229
+ /* PPDeftemplate: C access routine for */
230
+ /* the ppdeftemplate command. */
231
+ /***************************************/
232
+ bool PPDeftemplate(
233
+ Environment *theEnv,
234
+ const char *deftemplateName,
235
+ const char *logicalName)
236
+ {
237
+ return(PPConstruct(theEnv,deftemplateName,logicalName,DeftemplateData(theEnv)->DeftemplateConstruct));
238
+ }
239
+
240
+ /*************************************************/
241
+ /* ListDeftemplatesCommand: H/L access routine */
242
+ /* for the list-deftemplates command. */
243
+ /*************************************************/
244
+ void ListDeftemplatesCommand(
245
+ Environment *theEnv,
246
+ UDFContext *context,
247
+ UDFValue *returnValue)
248
+ {
249
+ ListConstructCommand(context,DeftemplateData(theEnv)->DeftemplateConstruct);
250
+ }
251
+
252
+ /****************************************/
253
+ /* ListDeftemplates: C access routine */
254
+ /* for the list-deftemplates command. */
255
+ /****************************************/
256
+ void ListDeftemplates(
257
+ Environment *theEnv,
258
+ const char *logicalName,
259
+ Defmodule *theModule)
260
+ {
261
+ ListConstruct(theEnv,DeftemplateData(theEnv)->DeftemplateConstruct,logicalName,theModule);
262
+ }
263
+
264
+ /********************************************************/
265
+ /* DeftemplateGetWatch: C access routine for retrieving */
266
+ /* the current watch value of a deftemplate. */
267
+ /********************************************************/
268
+ bool DeftemplateGetWatch(
269
+ Deftemplate *theTemplate)
270
+ {
271
+ return theTemplate->watch;
272
+ }
273
+
274
+ /******************************************************/
275
+ /* DeftemplateSetWatch: C access routine for setting */
276
+ /* the current watch value of a deftemplate. */
277
+ /******************************************************/
278
+ void DeftemplateSetWatch(
279
+ Deftemplate *theTemplate,
280
+ bool newState)
281
+ {
282
+ theTemplate->watch = newState;
283
+ }
284
+
285
+ /**********************************************************/
286
+ /* DeftemplateWatchAccess: Access routine for setting the */
287
+ /* watch flag of a deftemplate via the watch command. */
288
+ /**********************************************************/
289
+ bool DeftemplateWatchAccess(
290
+ Environment *theEnv,
291
+ int code,
292
+ bool newState,
293
+ Expression *argExprs)
294
+ {
295
+ #if MAC_XCD
296
+ #pragma unused(code)
297
+ #endif
298
+
299
+ return ConstructSetWatchAccess(theEnv,DeftemplateData(theEnv)->DeftemplateConstruct,newState,argExprs,
300
+ (ConstructGetWatchFunction *) DeftemplateGetWatch,
301
+ (ConstructSetWatchFunction *) DeftemplateSetWatch);
302
+ }
303
+
304
+ /*************************************************************************/
305
+ /* DeftemplateWatchPrint: Access routine for printing which deftemplates */
306
+ /* have their watch flag set via the list-watch-items command. */
307
+ /*************************************************************************/
308
+ bool DeftemplateWatchPrint(
309
+ Environment *theEnv,
310
+ const char *logName,
311
+ int code,
312
+ Expression *argExprs)
313
+ {
314
+ #if MAC_XCD
315
+ #pragma unused(code)
316
+ #endif
317
+
318
+ return ConstructPrintWatchAccess(theEnv,DeftemplateData(theEnv)->DeftemplateConstruct,logName,argExprs,
319
+ (ConstructGetWatchFunction *) DeftemplateGetWatch,
320
+ (ConstructSetWatchFunction *) DeftemplateSetWatch);
321
+ }
322
+
323
+ #endif /* DEBUGGING_FUNCTIONS */
324
+
325
+ #endif /* DEFTEMPLATE_CONSTRUCT */
326
+
327
+
@@ -0,0 +1,87 @@
1
+ /*******************************************************/
2
+ /* "C" Language Integrated Production System */
3
+ /* */
4
+ /* CLIPS Version 6.40 08/25/16 */
5
+ /* */
6
+ /* DEFTEMPLATE BASIC COMMANDS HEADER FILE */
7
+ /*******************************************************/
8
+
9
+ /*************************************************************/
10
+ /* Purpose: Implements core commands for the deftemplate */
11
+ /* construct such as clear, reset, save, undeftemplate, */
12
+ /* ppdeftemplate, list-deftemplates, and */
13
+ /* get-deftemplate-list. */
14
+ /* */
15
+ /* Principal Programmer(s): */
16
+ /* Gary D. Riley */
17
+ /* */
18
+ /* Contributing Programmer(s): */
19
+ /* Brian L. Dantes */
20
+ /* */
21
+ /* Revision History: */
22
+ /* */
23
+ /* 6.23: Corrected compilation errors for files */
24
+ /* generated by constructs-to-c. DR0861 */
25
+ /* */
26
+ /* Changed name of variable log to logName */
27
+ /* because of Unix compiler warnings of shadowed */
28
+ /* definitions. */
29
+ /* */
30
+ /* 6.24: Renamed BOOLEAN macro type to intBool. */
31
+ /* */
32
+ /* Corrected code to remove compiler warnings */
33
+ /* when ENVIRONMENT_API_ONLY flag is set. */
34
+ /* */
35
+ /* 6.30: Removed conditional code for unsupported */
36
+ /* compilers/operating systems (IBM_MCW, */
37
+ /* MAC_MCW, and IBM_TBC). */
38
+ /* */
39
+ /* Added const qualifiers to remove C++ */
40
+ /* deprecation warnings. */
41
+ /* */
42
+ /* Converted API macros to function calls. */
43
+ /* */
44
+ /* 6.40: Removed LOCALE definition. */
45
+ /* */
46
+ /* Pragma once and other inclusion changes. */
47
+ /* */
48
+ /* Added support for booleans with <stdbool.h>. */
49
+ /* */
50
+ /* Removed use of void pointers for specific */
51
+ /* data structures. */
52
+ /* */
53
+ /* ALLOW_ENVIRONMENT_GLOBALS no longer supported. */
54
+ /* */
55
+ /* UDF redesign. */
56
+ /* */
57
+ /*************************************************************/
58
+
59
+ #ifndef _H_tmpltbsc
60
+
61
+ #pragma once
62
+
63
+ #define _H_tmpltbsc
64
+
65
+ #include "evaluatn.h"
66
+ #include "tmpltdef.h"
67
+
68
+ void DeftemplateBasicCommands(Environment *);
69
+ void UndeftemplateCommand(Environment *,UDFContext *,UDFValue *);
70
+ bool Undeftemplate(Deftemplate *,Environment *);
71
+ void GetDeftemplateListFunction(Environment *,UDFContext *,UDFValue *);
72
+ void GetDeftemplateList(Environment *,CLIPSValue *,Defmodule *);
73
+ void DeftemplateModuleFunction(Environment *,UDFContext *,UDFValue *);
74
+ #if DEBUGGING_FUNCTIONS
75
+ void PPDeftemplateCommand(Environment *,UDFContext *,UDFValue *);
76
+ bool PPDeftemplate(Environment *,const char *,const char *);
77
+ void ListDeftemplatesCommand(Environment *,UDFContext *,UDFValue *);
78
+ void ListDeftemplates(Environment *,const char *,Defmodule *);
79
+ bool DeftemplateGetWatch(Deftemplate *);
80
+ void DeftemplateSetWatch(Deftemplate *,bool);
81
+ bool DeftemplateWatchAccess(Environment *,int,bool,struct expr *);
82
+ bool DeftemplateWatchPrint(Environment *,const char *,int,struct expr *);
83
+ #endif
84
+
85
+ #endif /* _H_tmpltbsc */
86
+
87
+