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,97 @@
1
+ /*******************************************************/
2
+ /* "C" Language Integrated Production System */
3
+ /* */
4
+ /* CLIPS Version 6.40 11/13/17 */
5
+ /* */
6
+ /* CONSTRUCT PARSER MODULE */
7
+ /*******************************************************/
8
+
9
+ /*************************************************************/
10
+ /* Purpose: Parsing routines and utilities for parsing */
11
+ /* constructs. */
12
+ /* */
13
+ /* Principal Programmer(s): */
14
+ /* Gary D. Riley */
15
+ /* */
16
+ /* Contributing Programmer(s): */
17
+ /* */
18
+ /* Revision History: */
19
+ /* */
20
+ /* 6.24: Added environment parameter to GenClose. */
21
+ /* Added environment parameter to GenOpen. */
22
+ /* */
23
+ /* Made the construct redefinition message more */
24
+ /* prominent. */
25
+ /* */
26
+ /* Added pragmas to remove compilation warnings. */
27
+ /* */
28
+ /* 6.30: Added code for capturing errors/warnings. */
29
+ /* */
30
+ /* Removed conditional code for unsupported */
31
+ /* compilers/operating systems (IBM_MCW, MAC_MCW, */
32
+ /* and IBM_TBC). */
33
+ /* */
34
+ /* Changed garbage collection algorithm. */
35
+ /* */
36
+ /* GetConstructNameAndComment API change. */
37
+ /* */
38
+ /* Added const qualifiers to remove C++ */
39
+ /* deprecation warnings. */
40
+ /* */
41
+ /* Fixed linkage issue when BLOAD_ONLY compiler */
42
+ /* flag is set to 1. */
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
+ /*************************************************************/
56
+
57
+ #ifndef _H_cstrcpsr
58
+
59
+ #pragma once
60
+
61
+ #define _H_cstrcpsr
62
+
63
+ #include "strngfun.h"
64
+
65
+ typedef enum
66
+ {
67
+ LE_NO_ERROR = 0,
68
+ LE_OPEN_FILE_ERROR,
69
+ LE_PARSING_ERROR,
70
+ } LoadError;
71
+
72
+ #if (! RUN_TIME) && (! BLOAD_ONLY)
73
+ LoadError Load(Environment *,const char *);
74
+ bool LoadConstructsFromLogicalName(Environment *,const char *);
75
+ bool LoadFromString(Environment *,const char *,size_t);
76
+ BuildError ParseConstruct(Environment *,const char *,const char *);
77
+ void ImportExportConflictMessage(Environment *,const char *,const char *,
78
+ const char *,const char *);
79
+ void FlushParsingMessages(Environment *);
80
+ char *GetParsingFileName(Environment *);
81
+ void SetParsingFileName(Environment *,const char *);
82
+ char *GetErrorFileName(Environment *);
83
+ void SetErrorFileName(Environment *,const char *);
84
+ char *GetWarningFileName(Environment *);
85
+ void SetWarningFileName(Environment *,const char *);
86
+ void CreateErrorCaptureRouter(Environment *);
87
+ void DeleteErrorCaptureRouter(Environment *);
88
+ #endif
89
+
90
+ #endif
91
+
92
+
93
+
94
+
95
+
96
+
97
+
@@ -0,0 +1,282 @@
1
+ /*******************************************************/
2
+ /* "C" Language Integrated Production System */
3
+ /* */
4
+ /* CLIPS Version 6.40 12/02/19 */
5
+ /* */
6
+ /* CONSTRAINT BLOAD/BSAVE MODULE */
7
+ /*******************************************************/
8
+
9
+ /*************************************************************/
10
+ /* Purpose: Implements the binary save/load feature for */
11
+ /* constraint records. */
12
+ /* */
13
+ /* Principal Programmer(s): */
14
+ /* Gary D. Riley */
15
+ /* */
16
+ /* Contributing Programmer(s): */
17
+ /* Brian L. Dantes */
18
+ /* */
19
+ /* Revision History: */
20
+ /* */
21
+ /* 6.24: Added allowed-classes slot facet. */
22
+ /* */
23
+ /* 6.30: Changed integer type/precision. */
24
+ /* */
25
+ /* 6.40: Pragma once and other inclusion changes. */
26
+ /* */
27
+ /* Added support for booleans with <stdbool.h>. */
28
+ /* */
29
+ /* Removed use of void pointers for specific */
30
+ /* data structures. */
31
+ /* */
32
+ /*************************************************************/
33
+
34
+ #include "setup.h"
35
+
36
+ #if (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE) && (! RUN_TIME)
37
+
38
+ #include "constant.h"
39
+ #include "envrnmnt.h"
40
+ #include "memalloc.h"
41
+ #include "prntutil.h"
42
+ #include "router.h"
43
+ #include "bload.h"
44
+
45
+ #if BLOAD_AND_BSAVE
46
+ #include "bsave.h"
47
+ #endif
48
+
49
+ #include "cstrnbin.h"
50
+
51
+ /*******************/
52
+ /* DATA STRUCTURES */
53
+ /*******************/
54
+
55
+ struct bsaveConstraintRecord
56
+ {
57
+ unsigned int anyAllowed : 1;
58
+ unsigned int symbolsAllowed : 1;
59
+ unsigned int stringsAllowed : 1;
60
+ unsigned int floatsAllowed : 1;
61
+ unsigned int integersAllowed : 1;
62
+ unsigned int instanceNamesAllowed : 1;
63
+ unsigned int instanceAddressesAllowed : 1;
64
+ unsigned int externalAddressesAllowed : 1;
65
+ unsigned int factAddressesAllowed : 1;
66
+ unsigned int anyRestriction : 1;
67
+ unsigned int symbolRestriction : 1;
68
+ unsigned int stringRestriction : 1;
69
+ unsigned int numberRestriction : 1;
70
+ unsigned int floatRestriction : 1;
71
+ unsigned int integerRestriction : 1;
72
+ unsigned int classRestriction : 1;
73
+ unsigned int instanceNameRestriction : 1;
74
+ unsigned int multifieldsAllowed : 1;
75
+ unsigned int singlefieldsAllowed : 1;
76
+ unsigned long classList;
77
+ unsigned long restrictionList;
78
+ unsigned long minValue;
79
+ unsigned long maxValue;
80
+ unsigned long minFields;
81
+ unsigned long maxFields;
82
+ };
83
+
84
+ typedef struct bsaveConstraintRecord BSAVE_CONSTRAINT_RECORD;
85
+
86
+ /***************************************/
87
+ /* LOCAL INTERNAL FUNCTION DEFINITIONS */
88
+ /***************************************/
89
+
90
+ #if BLOAD_AND_BSAVE
91
+ static void CopyToBsaveConstraintRecord(Environment *,CONSTRAINT_RECORD *,BSAVE_CONSTRAINT_RECORD *);
92
+ #endif
93
+ static void CopyFromBsaveConstraintRecord(Environment *,void *,unsigned long);
94
+
95
+ #if BLOAD_AND_BSAVE
96
+
97
+ /**************************************************/
98
+ /* WriteNeededConstraints: Writes the constraints */
99
+ /* in the constraint table to the binary image */
100
+ /* currently being saved. */
101
+ /**************************************************/
102
+ void WriteNeededConstraints(
103
+ Environment *theEnv,
104
+ FILE *fp)
105
+ {
106
+ int i;
107
+ unsigned long theIndex = 0;
108
+ unsigned long numberOfUsedConstraints = 0;
109
+ CONSTRAINT_RECORD *tmpPtr;
110
+ BSAVE_CONSTRAINT_RECORD bsaveConstraints;
111
+
112
+ /*================================*/
113
+ /* Get the number of constraints. */
114
+ /*================================*/
115
+
116
+ for (i = 0; i < SIZE_CONSTRAINT_HASH; i++)
117
+ {
118
+ for (tmpPtr = ConstraintData(theEnv)->ConstraintHashtable[i];
119
+ tmpPtr != NULL;
120
+ tmpPtr = tmpPtr->next)
121
+ {
122
+ tmpPtr->bsaveID = theIndex++;
123
+ numberOfUsedConstraints++;
124
+ }
125
+ }
126
+
127
+ /*=============================================*/
128
+ /* If dynamic constraint checking is disabled, */
129
+ /* then no constraints are saved. */
130
+ /*=============================================*/
131
+
132
+ if ((! GetDynamicConstraintChecking(theEnv)) && (numberOfUsedConstraints != 0))
133
+ {
134
+ numberOfUsedConstraints = 0;
135
+ PrintWarningID(theEnv,"CSTRNBIN",1,false);
136
+ WriteString(theEnv,STDWRN,"Constraints are not saved with a binary image\n");
137
+ WriteString(theEnv,STDWRN," when dynamic constraint checking is disabled.\n");
138
+ }
139
+
140
+ /*============================================*/
141
+ /* Write out the number of constraints in the */
142
+ /* constraint table followed by each of the */
143
+ /* constraints in the constraint table. */
144
+ /*============================================*/
145
+
146
+ GenWrite(&numberOfUsedConstraints,sizeof(unsigned long),fp);
147
+ if (numberOfUsedConstraints == 0) return;
148
+
149
+ for (i = 0 ; i < SIZE_CONSTRAINT_HASH; i++)
150
+ {
151
+ for (tmpPtr = ConstraintData(theEnv)->ConstraintHashtable[i];
152
+ tmpPtr != NULL;
153
+ tmpPtr = tmpPtr->next)
154
+ {
155
+ CopyToBsaveConstraintRecord(theEnv,tmpPtr,&bsaveConstraints);
156
+ GenWrite(&bsaveConstraints,sizeof(BSAVE_CONSTRAINT_RECORD),fp);
157
+ }
158
+ }
159
+ }
160
+
161
+ /****************************************************/
162
+ /* CopyToBsaveConstraintRecord: Copies a constraint */
163
+ /* record to the data structure used for storing */
164
+ /* constraints in a binary image. */
165
+ /****************************************************/
166
+ static void CopyToBsaveConstraintRecord(
167
+ Environment *theEnv,
168
+ CONSTRAINT_RECORD *constraints,
169
+ BSAVE_CONSTRAINT_RECORD *bsaveConstraints)
170
+ {
171
+ bsaveConstraints->anyAllowed = constraints->anyAllowed;
172
+ bsaveConstraints->symbolsAllowed = constraints->symbolsAllowed;
173
+ bsaveConstraints->stringsAllowed = constraints->stringsAllowed;
174
+ bsaveConstraints->floatsAllowed = constraints->floatsAllowed;
175
+ bsaveConstraints->integersAllowed = constraints->integersAllowed;
176
+ bsaveConstraints->instanceNamesAllowed = constraints->instanceNamesAllowed;
177
+ bsaveConstraints->instanceAddressesAllowed = constraints->instanceAddressesAllowed;
178
+ bsaveConstraints->externalAddressesAllowed = constraints->externalAddressesAllowed;
179
+ bsaveConstraints->multifieldsAllowed = constraints->multifieldsAllowed;
180
+ bsaveConstraints->singlefieldsAllowed = constraints->singlefieldsAllowed;
181
+ bsaveConstraints->factAddressesAllowed = constraints->factAddressesAllowed;
182
+ bsaveConstraints->anyRestriction = constraints->anyRestriction;
183
+ bsaveConstraints->symbolRestriction = constraints->symbolRestriction;
184
+ bsaveConstraints->stringRestriction = constraints->stringRestriction;
185
+ bsaveConstraints->floatRestriction = constraints->floatRestriction;
186
+ bsaveConstraints->integerRestriction = constraints->integerRestriction;
187
+ bsaveConstraints->classRestriction = constraints->classRestriction;
188
+ bsaveConstraints->instanceNameRestriction = constraints->instanceNameRestriction;
189
+
190
+ bsaveConstraints->restrictionList = HashedExpressionIndex(theEnv,constraints->restrictionList);
191
+ bsaveConstraints->classList = HashedExpressionIndex(theEnv,constraints->classList);
192
+ bsaveConstraints->minValue = HashedExpressionIndex(theEnv,constraints->minValue);
193
+ bsaveConstraints->maxValue = HashedExpressionIndex(theEnv,constraints->maxValue);
194
+ bsaveConstraints->minFields = HashedExpressionIndex(theEnv,constraints->minFields);
195
+ bsaveConstraints->maxFields = HashedExpressionIndex(theEnv,constraints->maxFields);
196
+ }
197
+
198
+ #endif /* BLOAD_AND_BSAVE */
199
+
200
+ /********************************************************/
201
+ /* ReadNeededConstraints: Reads in the constraints used */
202
+ /* by the binary image currently being loaded. */
203
+ /********************************************************/
204
+ void ReadNeededConstraints(
205
+ Environment *theEnv)
206
+ {
207
+ GenReadBinary(theEnv,&ConstraintData(theEnv)->NumberOfConstraints,sizeof(unsigned long));
208
+ if (ConstraintData(theEnv)->NumberOfConstraints == 0) return;
209
+
210
+ ConstraintData(theEnv)->ConstraintArray = (CONSTRAINT_RECORD *)
211
+ genalloc(theEnv,(sizeof(CONSTRAINT_RECORD) * ConstraintData(theEnv)->NumberOfConstraints));
212
+
213
+ BloadandRefresh(theEnv,ConstraintData(theEnv)->NumberOfConstraints,sizeof(BSAVE_CONSTRAINT_RECORD),
214
+ CopyFromBsaveConstraintRecord);
215
+ }
216
+
217
+ /*****************************************************/
218
+ /* CopyFromBsaveConstraintRecord: Copies values to a */
219
+ /* constraint record from the data structure used */
220
+ /* for storing constraints in a binary image. */
221
+ /*****************************************************/
222
+ static void CopyFromBsaveConstraintRecord(
223
+ Environment *theEnv,
224
+ void *buf,
225
+ unsigned long theIndex)
226
+ {
227
+ BSAVE_CONSTRAINT_RECORD *bsaveConstraints;
228
+ CONSTRAINT_RECORD *constraints;
229
+
230
+ bsaveConstraints = (BSAVE_CONSTRAINT_RECORD *) buf;
231
+ constraints = (CONSTRAINT_RECORD *) &ConstraintData(theEnv)->ConstraintArray[theIndex];
232
+
233
+ constraints->anyAllowed = bsaveConstraints->anyAllowed;
234
+ constraints->symbolsAllowed = bsaveConstraints->symbolsAllowed;
235
+ constraints->stringsAllowed = bsaveConstraints->stringsAllowed;
236
+ constraints->floatsAllowed = bsaveConstraints->floatsAllowed;
237
+ constraints->integersAllowed = bsaveConstraints->integersAllowed;
238
+ constraints->instanceNamesAllowed = bsaveConstraints->instanceNamesAllowed;
239
+ constraints->instanceAddressesAllowed = bsaveConstraints->instanceAddressesAllowed;
240
+ constraints->externalAddressesAllowed = bsaveConstraints->externalAddressesAllowed;
241
+ constraints->voidAllowed = false;
242
+ constraints->multifieldsAllowed = bsaveConstraints->multifieldsAllowed;
243
+ constraints->singlefieldsAllowed = bsaveConstraints->singlefieldsAllowed;
244
+ constraints->factAddressesAllowed = bsaveConstraints->factAddressesAllowed;
245
+ constraints->anyRestriction = bsaveConstraints->anyRestriction;
246
+ constraints->symbolRestriction = bsaveConstraints->symbolRestriction;
247
+ constraints->stringRestriction = bsaveConstraints->stringRestriction;
248
+ constraints->floatRestriction = bsaveConstraints->floatRestriction;
249
+ constraints->integerRestriction = bsaveConstraints->integerRestriction;
250
+ constraints->classRestriction = bsaveConstraints->classRestriction;
251
+ constraints->instanceNameRestriction = bsaveConstraints->instanceNameRestriction;
252
+
253
+ constraints->restrictionList = HashedExpressionPointer(bsaveConstraints->restrictionList);
254
+ constraints->classList = HashedExpressionPointer(bsaveConstraints->classList);
255
+ constraints->minValue = HashedExpressionPointer(bsaveConstraints->minValue);
256
+ constraints->maxValue = HashedExpressionPointer(bsaveConstraints->maxValue);
257
+ constraints->minFields = HashedExpressionPointer(bsaveConstraints->minFields);
258
+ constraints->maxFields = HashedExpressionPointer(bsaveConstraints->maxFields);
259
+ constraints->multifield = NULL;
260
+ }
261
+
262
+ /********************************************************/
263
+ /* ClearBloadedConstraints: Releases memory associated */
264
+ /* with constraints loaded from binary image */
265
+ /********************************************************/
266
+ void ClearBloadedConstraints(
267
+ Environment *theEnv)
268
+ {
269
+ if (ConstraintData(theEnv)->NumberOfConstraints != 0)
270
+ {
271
+ genfree(theEnv,ConstraintData(theEnv)->ConstraintArray,
272
+ (sizeof(CONSTRAINT_RECORD) * ConstraintData(theEnv)->NumberOfConstraints));
273
+ ConstraintData(theEnv)->NumberOfConstraints = 0;
274
+ }
275
+ }
276
+
277
+ #endif /* (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE) && (! RUN_TIME) */
278
+
279
+
280
+
281
+
282
+
@@ -0,0 +1,55 @@
1
+ /*******************************************************/
2
+ /* "C" Language Integrated Production System */
3
+ /* */
4
+ /* CLIPS Version 6.40 12/02/19 */
5
+ /* */
6
+ /* CONSTRAINT BLOAD/BSAVE/CONSTRUCTS-TO-C HEADER */
7
+ /*******************************************************/
8
+
9
+ /*************************************************************/
10
+ /* Purpose: Implements the binary save/load feature for */
11
+ /* constraint records. */
12
+ /* */
13
+ /* Principal Programmer(s): */
14
+ /* Gary D. Riley */
15
+ /* */
16
+ /* Contributing Programmer(s): */
17
+ /* */
18
+ /* Revision History: */
19
+ /* */
20
+ /* 6.24: Added allowed-classes slot facet. */
21
+ /* */
22
+ /* 6.30: Changed integer type/precision. */
23
+ /* */
24
+ /* 6.40: Removed LOCALE definition. */
25
+ /* */
26
+ /* Pragma once and other inclusion changes. */
27
+ /* */
28
+ /* Removed use of void pointers for specific */
29
+ /* data structures. */
30
+ /* */
31
+ /*************************************************************/
32
+
33
+ #ifndef _H_cstrnbin
34
+
35
+ #pragma once
36
+
37
+ #define _H_cstrnbin
38
+
39
+ #include <stdio.h>
40
+
41
+ #include "evaluatn.h"
42
+ #include "constrnt.h"
43
+
44
+ #define ConstraintIndex(theConstraint) (((! GetDynamicConstraintChecking(theEnv)) || (theConstraint == NULL)) ? ULONG_MAX : (theConstraint->bsaveID))
45
+ #define ConstraintPointer(i) (((i) == ULONG_MAX) ? NULL : (CONSTRAINT_RECORD *) &ConstraintData(theEnv)->ConstraintArray[i])
46
+
47
+ #if BLOAD_AND_BSAVE
48
+ void WriteNeededConstraints(Environment *,FILE *);
49
+ #endif
50
+ void ReadNeededConstraints(Environment *);
51
+ void ClearBloadedConstraints(Environment *);
52
+
53
+ #endif /* _H_cstrnbin */
54
+
55
+