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,57 @@
1
+ /*******************************************************/
2
+ /* "C" Language Integrated Production System */
3
+ /* */
4
+ /* CLIPS Version 6.40 07/30/16 */
5
+ /* */
6
+ /* */
7
+ /*******************************************************/
8
+
9
+ /*************************************************************/
10
+ /* Purpose: */
11
+ /* */
12
+ /* Principal Programmer(s): */
13
+ /* Brian L. Dantes */
14
+ /* */
15
+ /* Contributing Programmer(s): */
16
+ /* */
17
+ /* Revision History: */
18
+ /* */
19
+ /* 6.24: Renamed BOOLEAN macro type to intBool. */
20
+ /* */
21
+ /* 6.30: Removed conditional code for unsupported */
22
+ /* compilers/operating systems (IBM_MCW, */
23
+ /* MAC_MCW, and IBM_TBC). */
24
+ /* */
25
+ /* GetConstructNameAndComment API change. */
26
+ /* */
27
+ /* Added const qualifiers to remove C++ */
28
+ /* deprecation warnings. */
29
+ /* */
30
+ /* 6.40: Removed LOCALE definition. */
31
+ /* */
32
+ /* Pragma once and other inclusion changes. */
33
+ /* */
34
+ /* Added support for booleans with <stdbool.h>. */
35
+ /* */
36
+ /* Removed use of void pointers for specific */
37
+ /* data structures. */
38
+ /* */
39
+ /*************************************************************/
40
+
41
+ #ifndef _H_dffnxpsr
42
+
43
+ #pragma once
44
+
45
+ #define _H_dffnxpsr
46
+
47
+ #if DEFFUNCTION_CONSTRUCT && (! BLOAD_ONLY) && (! RUN_TIME)
48
+
49
+ bool ParseDeffunction(Environment *,const char *);
50
+
51
+ #endif /* DEFFUNCTION_CONSTRUCT && (! BLOAD_ONLY) && (! RUN_TIME) */
52
+
53
+ #endif /* _H_dffnxpsr */
54
+
55
+
56
+
57
+
@@ -0,0 +1,509 @@
1
+ /*******************************************************/
2
+ /* "C" Language Integrated Production System */
3
+ /* */
4
+ /* CLIPS Version 6.40 07/30/16 */
5
+ /* */
6
+ /* */
7
+ /*******************************************************/
8
+
9
+ /*************************************************************/
10
+ /* Purpose: Binary Load/Save Functions for Definstances */
11
+ /* */
12
+ /* Principal Programmer(s): */
13
+ /* Brian L. Dantes */
14
+ /* */
15
+ /* Contributing Programmer(s): */
16
+ /* */
17
+ /* Revision History: */
18
+ /* */
19
+ /* 6.30: Removed conditional code for unsupported */
20
+ /* compilers/operating systems (IBM_MCW, */
21
+ /* MAC_MCW, and IBM_TBC). */
22
+ /* */
23
+ /* 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
+ /* =========================================
35
+ *****************************************
36
+ EXTERNAL DEFINITIONS
37
+ =========================================
38
+ ***************************************** */
39
+ #include "setup.h"
40
+
41
+ #if DEFINSTANCES_CONSTRUCT && (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE)
42
+
43
+ #include "bload.h"
44
+ #include "bsave.h"
45
+ #include "cstrcbin.h"
46
+ #include "defins.h"
47
+ #include "envrnmnt.h"
48
+ #include "memalloc.h"
49
+ #include "modulbin.h"
50
+
51
+ #include "dfinsbin.h"
52
+
53
+ /* =========================================
54
+ *****************************************
55
+ CONSTANTS
56
+ =========================================
57
+ ***************************************** */
58
+
59
+ /* =========================================
60
+ *****************************************
61
+ MACROS AND TYPES
62
+ =========================================
63
+ ***************************************** */
64
+ typedef struct bsaveDefinstancesModule
65
+ {
66
+ struct bsaveDefmoduleItemHeader header;
67
+ } BSAVE_DEFINSTANCES_MODULE;
68
+
69
+ typedef struct bsaveDefinstances
70
+ {
71
+ struct bsaveConstructHeader header;
72
+ unsigned long mkinstance;
73
+ } BSAVE_DEFINSTANCES;
74
+
75
+ /* =========================================
76
+ *****************************************
77
+ INTERNALLY VISIBLE FUNCTION HEADERS
78
+ =========================================
79
+ ***************************************** */
80
+
81
+ #if BLOAD_AND_BSAVE
82
+ static void BsaveDefinstancesFind(Environment *);
83
+ static void MarkDefinstancesItems(Environment *,ConstructHeader *,void *);
84
+ static void BsaveDefinstancesExpressions(Environment *,FILE *);
85
+ static void BsaveDefinstancesExpression(Environment *,ConstructHeader *,void *);
86
+ static void BsaveStorageDefinstances(Environment *,FILE *);
87
+ static void BsaveDefinstancesDriver(Environment *,FILE *);
88
+ static void BsaveDefinstances(Environment *,ConstructHeader *,void *);
89
+ #endif
90
+
91
+ static void BloadStorageDefinstances(Environment *);
92
+ static void BloadDefinstances(Environment *);
93
+ static void UpdateDefinstancesModule(Environment *,void *,unsigned long);
94
+ static void UpdateDefinstances(Environment *,void *,unsigned long);
95
+ static void ClearDefinstancesBload(Environment *);
96
+ static void DeallocateDefinstancesBinaryData(Environment *);
97
+
98
+ /* =========================================
99
+ *****************************************
100
+ EXTERNALLY VISIBLE FUNCTIONS
101
+ =========================================
102
+ ***************************************** */
103
+
104
+ /***********************************************************
105
+ NAME : SetupDefinstancesBload
106
+ DESCRIPTION : Initializes data structures and
107
+ routines for binary loads of definstances
108
+ INPUTS : None
109
+ RETURNS : Nothing useful
110
+ SIDE EFFECTS : Routines defined and structures initialized
111
+ NOTES : None
112
+ ***********************************************************/
113
+ void SetupDefinstancesBload(
114
+ Environment *theEnv)
115
+ {
116
+ AllocateEnvironmentData(theEnv,DFINSBIN_DATA,sizeof(struct definstancesBinaryData),DeallocateDefinstancesBinaryData);
117
+ #if BLOAD_AND_BSAVE
118
+ AddBinaryItem(theEnv,"definstances",0,BsaveDefinstancesFind,BsaveDefinstancesExpressions,
119
+ BsaveStorageDefinstances,BsaveDefinstancesDriver,
120
+ BloadStorageDefinstances,BloadDefinstances,
121
+ ClearDefinstancesBload);
122
+ #else
123
+ AddBinaryItem(theEnv,"definstances",0,NULL,NULL,NULL,NULL,
124
+ BloadStorageDefinstances,BloadDefinstances,
125
+ ClearDefinstancesBload);
126
+ #endif
127
+ }
128
+
129
+ /*************************************************************/
130
+ /* DeallocateDefinstancesBinaryData: Deallocates environment */
131
+ /* data for the definstances binary functionality. */
132
+ /*************************************************************/
133
+ static void DeallocateDefinstancesBinaryData(
134
+ Environment *theEnv)
135
+ {
136
+ size_t space;
137
+
138
+ #if (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE) && (! RUN_TIME)
139
+ space = DefinstancesBinaryData(theEnv)->DefinstancesCount * sizeof(struct definstances);
140
+ if (space != 0) genfree(theEnv,DefinstancesBinaryData(theEnv)->DefinstancesArray,space);
141
+
142
+ space = DefinstancesBinaryData(theEnv)->ModuleCount * sizeof(struct definstancesModule);
143
+ if (space != 0) genfree(theEnv,DefinstancesBinaryData(theEnv)->ModuleArray,space);
144
+ #endif
145
+ }
146
+
147
+ /***************************************************
148
+ NAME : BloadDefinstancesModuleRef
149
+ DESCRIPTION : Returns a pointer to the
150
+ appropriate definstances module
151
+ INPUTS : The index of the module
152
+ RETURNS : A pointer to the module
153
+ SIDE EFFECTS : None
154
+ NOTES : None
155
+ ***************************************************/
156
+ void *BloadDefinstancesModuleRef(
157
+ Environment *theEnv,
158
+ unsigned long theIndex)
159
+ {
160
+ return ((void *) &DefinstancesBinaryData(theEnv)->ModuleArray[theIndex]);
161
+ }
162
+
163
+ /* =========================================
164
+ *****************************************
165
+ INTERNALLY VISIBLE FUNCTIONS
166
+ =========================================
167
+ ***************************************** */
168
+
169
+ #if BLOAD_AND_BSAVE
170
+
171
+ /***************************************************************************
172
+ NAME : BsaveDefinstancesFind
173
+ DESCRIPTION : For all definstances, this routine marks all
174
+ the needed symbols.
175
+ Also, it also counts the number of
176
+ expression structures needed.
177
+ Also, counts total number of definstances.
178
+ INPUTS : None
179
+ RETURNS : Nothing useful
180
+ SIDE EFFECTS : ExpressionCount (a global from BSAVE.C) is incremented
181
+ for every expression needed
182
+ Symbols are marked in their structures
183
+ NOTES : Also sets bsaveIndex for each definstances (assumes
184
+ definstances will be bsaved in order of binary list)
185
+ ***************************************************************************/
186
+ static void BsaveDefinstancesFind(
187
+ Environment *theEnv)
188
+ {
189
+ SaveBloadCount(theEnv,DefinstancesBinaryData(theEnv)->ModuleCount);
190
+ SaveBloadCount(theEnv,DefinstancesBinaryData(theEnv)->DefinstancesCount);
191
+ DefinstancesBinaryData(theEnv)->DefinstancesCount = 0L;
192
+
193
+ DefinstancesBinaryData(theEnv)->ModuleCount = GetNumberOfDefmodules(theEnv);
194
+
195
+ DoForAllConstructs(theEnv,MarkDefinstancesItems,
196
+ DefinstancesData(theEnv)->DefinstancesModuleIndex,
197
+ false,NULL);
198
+ }
199
+
200
+
201
+ /***************************************************
202
+ NAME : MarkDefinstancesItems
203
+ DESCRIPTION : Marks the needed items for
204
+ a definstances bsave
205
+ INPUTS : 1) The definstances
206
+ 2) User data buffer (ignored)
207
+ RETURNS : Nothing useful
208
+ SIDE EFFECTS : Needed items marked
209
+ NOTES : None
210
+ ***************************************************/
211
+ static void MarkDefinstancesItems(
212
+ Environment *theEnv,
213
+ ConstructHeader *theDefinstances,
214
+ void *userBuffer)
215
+ {
216
+ #if MAC_XCD
217
+ #pragma unused(userBuffer)
218
+ #endif
219
+
220
+ MarkConstructHeaderNeededItems(theDefinstances,DefinstancesBinaryData(theEnv)->DefinstancesCount++);
221
+ ExpressionData(theEnv)->ExpressionCount += ExpressionSize(((Definstances *) theDefinstances)->mkinstance);
222
+ MarkNeededItems(theEnv,((Definstances *) theDefinstances)->mkinstance);
223
+ }
224
+
225
+ /***************************************************
226
+ NAME : BsaveDefinstancesExpressions
227
+ DESCRIPTION : Writes out all expressions needed
228
+ by deffunctyions
229
+ INPUTS : The file pointer of the binary file
230
+ RETURNS : Nothing useful
231
+ SIDE EFFECTS : File updated
232
+ NOTES : None
233
+ ***************************************************/
234
+ static void BsaveDefinstancesExpressions(
235
+ Environment *theEnv,
236
+ FILE *fp)
237
+ {
238
+ DoForAllConstructs(theEnv,BsaveDefinstancesExpression,DefinstancesData(theEnv)->DefinstancesModuleIndex,
239
+ false,fp);
240
+ }
241
+
242
+ /***************************************************
243
+ NAME : BsaveDefinstancesExpression
244
+ DESCRIPTION : Saves the needed expressions for
245
+ a definstances bsave
246
+ INPUTS : 1) The definstances
247
+ 2) Output data file pointer
248
+ RETURNS : Nothing useful
249
+ SIDE EFFECTS : Expressions saved
250
+ NOTES : None
251
+ ***************************************************/
252
+ static void BsaveDefinstancesExpression(
253
+ Environment *theEnv,
254
+ ConstructHeader *theDefinstances,
255
+ void *userBuffer)
256
+ {
257
+ BsaveExpression(theEnv,((Definstances *) theDefinstances)->mkinstance,(FILE *) userBuffer);
258
+ }
259
+
260
+ /***********************************************************
261
+ NAME : BsaveStorageDefinstances
262
+ DESCRIPTION : Writes out number of each type of structure
263
+ required for definstances
264
+ Space required for counts (unsigned long)
265
+ INPUTS : File pointer of binary file
266
+ RETURNS : Nothing useful
267
+ SIDE EFFECTS : Binary file adjusted
268
+ NOTES : None
269
+ ***********************************************************/
270
+ static void BsaveStorageDefinstances(
271
+ Environment *theEnv,
272
+ FILE *fp)
273
+ {
274
+ size_t space;
275
+
276
+ space = sizeof(unsigned long) * 2;
277
+ GenWrite(&space,sizeof(size_t),fp);
278
+ GenWrite(&DefinstancesBinaryData(theEnv)->ModuleCount,sizeof(unsigned long),fp);
279
+ GenWrite(&DefinstancesBinaryData(theEnv)->DefinstancesCount,sizeof(unsigned long),fp);
280
+ }
281
+
282
+ /*************************************************************************************
283
+ NAME : BsaveDefinstancesDriver
284
+ DESCRIPTION : Writes out definstances in binary format
285
+ Space required (unsigned long)
286
+ All definstances (sizeof(Definstances) * Number of definstances)
287
+ INPUTS : File pointer of binary file
288
+ RETURNS : Nothing useful
289
+ SIDE EFFECTS : Binary file adjusted
290
+ NOTES : None
291
+ *************************************************************************************/
292
+ static void BsaveDefinstancesDriver(
293
+ Environment *theEnv,
294
+ FILE *fp)
295
+ {
296
+ size_t space;
297
+ Defmodule *theModule;
298
+ DEFINSTANCES_MODULE *theModuleItem;
299
+ BSAVE_DEFINSTANCES_MODULE dummy_mitem;
300
+
301
+ space = ((sizeof(BSAVE_DEFINSTANCES_MODULE) * DefinstancesBinaryData(theEnv)->ModuleCount) +
302
+ (sizeof(BSAVE_DEFINSTANCES) * DefinstancesBinaryData(theEnv)->DefinstancesCount));
303
+ GenWrite(&space,sizeof(size_t),fp);
304
+
305
+ /* =================================
306
+ Write out each definstances module
307
+ ================================= */
308
+ DefinstancesBinaryData(theEnv)->DefinstancesCount = 0L;
309
+ theModule = GetNextDefmodule(theEnv,NULL);
310
+ while (theModule != NULL)
311
+ {
312
+ theModuleItem = (DEFINSTANCES_MODULE *)
313
+ GetModuleItem(theEnv,theModule,FindModuleItem(theEnv,"definstances")->moduleIndex);
314
+ AssignBsaveDefmdlItemHdrVals(&dummy_mitem.header,&theModuleItem->header);
315
+ GenWrite(&dummy_mitem,sizeof(BSAVE_DEFINSTANCES_MODULE),fp);
316
+ theModule = GetNextDefmodule(theEnv,theModule);
317
+ }
318
+
319
+ /*==============================*/
320
+ /* Write out each definstances. */
321
+ /*==============================*/
322
+
323
+ DoForAllConstructs(theEnv,BsaveDefinstances,DefinstancesData(theEnv)->DefinstancesModuleIndex,
324
+ false,fp);
325
+
326
+ RestoreBloadCount(theEnv,&DefinstancesBinaryData(theEnv)->ModuleCount);
327
+ RestoreBloadCount(theEnv,&DefinstancesBinaryData(theEnv)->DefinstancesCount);
328
+ }
329
+
330
+ /***************************************************
331
+ NAME : BsaveDefinstances
332
+ DESCRIPTION : Bsaves a definstances
333
+ INPUTS : 1) The definstances
334
+ 2) Output data file pointer
335
+ RETURNS : Nothing useful
336
+ SIDE EFFECTS : Definstances saved
337
+ NOTES : None
338
+ ***************************************************/
339
+ static void BsaveDefinstances(
340
+ Environment *theEnv,
341
+ ConstructHeader *theDefinstances,
342
+ void *userBuffer)
343
+ {
344
+ Definstances *dptr = (Definstances *) theDefinstances;
345
+ BSAVE_DEFINSTANCES dummy_df;
346
+
347
+ AssignBsaveConstructHeaderVals(&dummy_df.header,&dptr->header);
348
+ if (dptr->mkinstance != NULL)
349
+ {
350
+ dummy_df.mkinstance = ExpressionData(theEnv)->ExpressionCount;
351
+ ExpressionData(theEnv)->ExpressionCount += ExpressionSize(dptr->mkinstance);
352
+ }
353
+ else
354
+ dummy_df.mkinstance = ULONG_MAX;
355
+ GenWrite(&dummy_df,sizeof(BSAVE_DEFINSTANCES),(FILE *) userBuffer);
356
+ }
357
+
358
+ #endif
359
+
360
+ /***********************************************************************
361
+ NAME : BloadStorageDefinstances
362
+ DESCRIPTION : This routine space required for definstances
363
+ structures and allocates space for them
364
+ INPUTS : Nothing
365
+ RETURNS : Nothing useful
366
+ SIDE EFFECTS : Arrays allocated and set
367
+ NOTES : This routine makes no attempt to reset any pointers
368
+ within the structures
369
+ ***********************************************************************/
370
+ static void BloadStorageDefinstances(
371
+ Environment *theEnv)
372
+ {
373
+ size_t space;
374
+
375
+ GenReadBinary(theEnv,&space,sizeof(size_t));
376
+ if (space == 0L)
377
+ return;
378
+ GenReadBinary(theEnv,&DefinstancesBinaryData(theEnv)->ModuleCount,sizeof(unsigned long));
379
+ GenReadBinary(theEnv,&DefinstancesBinaryData(theEnv)->DefinstancesCount,sizeof(unsigned long));
380
+ if (DefinstancesBinaryData(theEnv)->ModuleCount == 0L)
381
+ {
382
+ DefinstancesBinaryData(theEnv)->ModuleArray = NULL;
383
+ DefinstancesBinaryData(theEnv)->DefinstancesArray = NULL;
384
+ return;
385
+ }
386
+
387
+ space = (DefinstancesBinaryData(theEnv)->ModuleCount * sizeof(DEFINSTANCES_MODULE));
388
+ DefinstancesBinaryData(theEnv)->ModuleArray = (DEFINSTANCES_MODULE *) genalloc(theEnv,space);
389
+
390
+ if (DefinstancesBinaryData(theEnv)->DefinstancesCount == 0L)
391
+ {
392
+ DefinstancesBinaryData(theEnv)->DefinstancesArray = NULL;
393
+ return;
394
+ }
395
+
396
+ space = (DefinstancesBinaryData(theEnv)->DefinstancesCount * sizeof(Definstances));
397
+ DefinstancesBinaryData(theEnv)->DefinstancesArray = (Definstances *) genalloc(theEnv,space);
398
+ }
399
+
400
+ /*********************************************************************
401
+ NAME : BloadDefinstances
402
+ DESCRIPTION : This routine reads definstances information from
403
+ a binary file
404
+ This routine moves through the definstances
405
+ binary array updating pointers
406
+ INPUTS : None
407
+ RETURNS : Nothing useful
408
+ SIDE EFFECTS : Pointers reset from array indices
409
+ NOTES : Assumes all loading is finished
410
+ ********************************************************************/
411
+ static void BloadDefinstances(
412
+ Environment *theEnv)
413
+ {
414
+ size_t space;
415
+
416
+ GenReadBinary(theEnv,&space,sizeof(size_t));
417
+ BloadandRefresh(theEnv,DefinstancesBinaryData(theEnv)->ModuleCount,sizeof(BSAVE_DEFINSTANCES_MODULE),UpdateDefinstancesModule);
418
+ BloadandRefresh(theEnv,DefinstancesBinaryData(theEnv)->DefinstancesCount,sizeof(BSAVE_DEFINSTANCES),UpdateDefinstances);
419
+ }
420
+
421
+ /*******************************************************
422
+ NAME : UpdateDefinstancesModule
423
+ DESCRIPTION : Updates definstances module with binary
424
+ load data - sets pointers from
425
+ offset information
426
+ INPUTS : 1) A pointer to the bloaded data
427
+ 2) The index of the binary array
428
+ element to update
429
+ RETURNS : Nothing useful
430
+ SIDE EFFECTS : Definstances moudle pointers updated
431
+ NOTES : None
432
+ *******************************************************/
433
+ static void UpdateDefinstancesModule(
434
+ Environment *theEnv,
435
+ void *buf,
436
+ unsigned long obji)
437
+ {
438
+ BSAVE_DEFINSTANCES_MODULE *bdptr;
439
+
440
+ bdptr = (BSAVE_DEFINSTANCES_MODULE *) buf;
441
+ UpdateDefmoduleItemHeader(theEnv,&bdptr->header,&DefinstancesBinaryData(theEnv)->ModuleArray[obji].header,
442
+ sizeof(Definstances),DefinstancesBinaryData(theEnv)->DefinstancesArray);
443
+ }
444
+
445
+ /***************************************************
446
+ NAME : UpdateDefinstances
447
+ DESCRIPTION : Updates definstances with binary
448
+ load data - sets pointers from
449
+ offset information
450
+ INPUTS : 1) A pointer to the bloaded data
451
+ 2) The index of the binary array
452
+ element to update
453
+ RETURNS : Nothing useful
454
+ SIDE EFFECTS : Definstances pointers upadted
455
+ NOTES : None
456
+ ***************************************************/
457
+ static void UpdateDefinstances(
458
+ Environment *theEnv,
459
+ void *buf,
460
+ unsigned long obji)
461
+ {
462
+ BSAVE_DEFINSTANCES *bdptr;
463
+ Definstances *dfiptr;
464
+
465
+ bdptr = (BSAVE_DEFINSTANCES *) buf;
466
+ dfiptr = (Definstances *) &DefinstancesBinaryData(theEnv)->DefinstancesArray[obji];
467
+
468
+ UpdateConstructHeader(theEnv,&bdptr->header,&dfiptr->header,DEFINSTANCES,
469
+ sizeof(DEFINSTANCES_MODULE),DefinstancesBinaryData(theEnv)->ModuleArray,
470
+ sizeof(Definstances),DefinstancesBinaryData(theEnv)->DefinstancesArray);
471
+ dfiptr->mkinstance = ExpressionPointer(bdptr->mkinstance);
472
+ dfiptr->busy = 0;
473
+ }
474
+
475
+ /***************************************************************
476
+ NAME : ClearDefinstancesBload
477
+ DESCRIPTION : Release all binary-loaded definstances
478
+ structure arrays
479
+ Resets definstances list to NULL
480
+ INPUTS : None
481
+ RETURNS : Nothing useful
482
+ SIDE EFFECTS : Memory cleared
483
+ NOTES : Definstances name symbol counts decremented
484
+ ***************************************************************/
485
+ static void ClearDefinstancesBload(
486
+ Environment *theEnv)
487
+ {
488
+ unsigned long i;
489
+ size_t space;
490
+
491
+ space = (sizeof(DEFINSTANCES_MODULE) * DefinstancesBinaryData(theEnv)->ModuleCount);
492
+ if (space == 0L)
493
+ return;
494
+ genfree(theEnv,DefinstancesBinaryData(theEnv)->ModuleArray,space);
495
+ DefinstancesBinaryData(theEnv)->ModuleArray = NULL;
496
+ DefinstancesBinaryData(theEnv)->ModuleCount = 0L;
497
+
498
+ for (i = 0 ; i < DefinstancesBinaryData(theEnv)->DefinstancesCount ; i++)
499
+ UnmarkConstructHeader(theEnv,&DefinstancesBinaryData(theEnv)->DefinstancesArray[i].header);
500
+ space = (sizeof(Definstances) * DefinstancesBinaryData(theEnv)->DefinstancesCount);
501
+ if (space == 0)
502
+ return;
503
+ genfree(theEnv,DefinstancesBinaryData(theEnv)->DefinstancesArray,space);
504
+ DefinstancesBinaryData(theEnv)->DefinstancesArray = NULL;
505
+ DefinstancesBinaryData(theEnv)->DefinstancesCount = 0L;
506
+ }
507
+
508
+ #endif
509
+
@@ -0,0 +1,66 @@
1
+ /*******************************************************/
2
+ /* "C" Language Integrated Production System */
3
+ /* */
4
+ /* CLIPS Version 6.40 07/30/16 */
5
+ /* */
6
+ /* */
7
+ /*******************************************************/
8
+
9
+ /*************************************************************/
10
+ /* Purpose: */
11
+ /* */
12
+ /* Principal Programmer(s): */
13
+ /* Brian L. Dantes */
14
+ /* */
15
+ /* Contributing Programmer(s): */
16
+ /* */
17
+ /* Revision History: */
18
+ /* */
19
+ /* Revision History: */
20
+ /* */
21
+ /* 6.30: Removed conditional code for unsupported */
22
+ /* compilers/operating systems (IBM_MCW, */
23
+ /* MAC_MCW, and IBM_TBC). */
24
+ /* */
25
+ /* Changed integer type/precision. */
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_dfinsbin
37
+
38
+ #pragma once
39
+
40
+ #define _H_dfinsbin
41
+
42
+ #if DEFINSTANCES_CONSTRUCT && (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE)
43
+
44
+ #include "defins.h"
45
+
46
+ #define DFINSBIN_DATA 25
47
+
48
+ struct definstancesBinaryData
49
+ {
50
+ Definstances *DefinstancesArray;
51
+ unsigned long DefinstancesCount;
52
+ unsigned long ModuleCount;
53
+ DEFINSTANCES_MODULE *ModuleArray;
54
+ };
55
+
56
+ #define DefinstancesBinaryData(theEnv) ((struct definstancesBinaryData *) GetEnvironmentData(theEnv,DFINSBIN_DATA))
57
+
58
+ void SetupDefinstancesBload(Environment *);
59
+ void *BloadDefinstancesModuleRef(Environment *,unsigned long);
60
+
61
+ #endif /* DEFINSTANCES_CONSTRUCT && (BLOAD || BLOAD_ONLY || BLOAD_AND_BSAVE) */
62
+
63
+ #endif /* _H_dfinsbin */
64
+
65
+
66
+