kibi-swipl-linux-x64-gnu 1.0.0

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 (550) hide show
  1. package/README.md +29 -0
  2. package/bin/swipl +0 -0
  3. package/bin/swipl-win +0 -0
  4. package/build-manifest.json +70 -0
  5. package/lib/cmake/swipl/SWIPLConfig.cmake +21 -0
  6. package/lib/cmake/swipl/SWIPLConfigVersion.cmake +65 -0
  7. package/lib/cmake/swipl/SWIPLTargets-release.cmake +28 -0
  8. package/lib/cmake/swipl/SWIPLTargets.cmake +109 -0
  9. package/lib/swipl/ABI +1 -0
  10. package/lib/swipl/LICENSE +41 -0
  11. package/lib/swipl/README.md +116 -0
  12. package/lib/swipl/app/README.md +25 -0
  13. package/lib/swipl/app/app.pl +87 -0
  14. package/lib/swipl/app/pack.pl +350 -0
  15. package/lib/swipl/app/qlf.pl +521 -0
  16. package/lib/swipl/app/splfr.pl +177 -0
  17. package/lib/swipl/app/sys.pl +310 -0
  18. package/lib/swipl/bin/swipl.home +1 -0
  19. package/lib/swipl/boot/apply.pl +73 -0
  20. package/lib/swipl/boot/attvar.pl +344 -0
  21. package/lib/swipl/boot/autoload.pl +1226 -0
  22. package/lib/swipl/boot/bags.pl +283 -0
  23. package/lib/swipl/boot/dcg.pl +388 -0
  24. package/lib/swipl/boot/dicts.pl +193 -0
  25. package/lib/swipl/boot/dwim.pl +485 -0
  26. package/lib/swipl/boot/engines.pl +152 -0
  27. package/lib/swipl/boot/expand.pl +1628 -0
  28. package/lib/swipl/boot/gc.pl +65 -0
  29. package/lib/swipl/boot/history.pl +304 -0
  30. package/lib/swipl/boot/init.pl +4682 -0
  31. package/lib/swipl/boot/iri.pl +64 -0
  32. package/lib/swipl/boot/license.pl +390 -0
  33. package/lib/swipl/boot/load.pl +81 -0
  34. package/lib/swipl/boot/messages.pl +2521 -0
  35. package/lib/swipl/boot/packs.pl +306 -0
  36. package/lib/swipl/boot/predopts.pl +154 -0
  37. package/lib/swipl/boot/qlf.pl +141 -0
  38. package/lib/swipl/boot/rc.pl +263 -0
  39. package/lib/swipl/boot/syspred.pl +1634 -0
  40. package/lib/swipl/boot/tabling.pl +2321 -0
  41. package/lib/swipl/boot/threads.pl +42 -0
  42. package/lib/swipl/boot/toplevel.pl +2248 -0
  43. package/lib/swipl/boot/topvars.pl +261 -0
  44. package/lib/swipl/boot.prc +0 -0
  45. package/lib/swipl/cmake/swipl.cmake +131 -0
  46. package/lib/swipl/customize/README.md +23 -0
  47. package/lib/swipl/customize/edit +101 -0
  48. package/lib/swipl/customize/init.pl +164 -0
  49. package/lib/swipl/demo/README.md +33 -0
  50. package/lib/swipl/demo/likes.pl +44 -0
  51. package/lib/swipl/doc/packages/examples/chr/bool.chr +281 -0
  52. package/lib/swipl/doc/packages/examples/chr/chrdif.chr +87 -0
  53. package/lib/swipl/doc/packages/examples/chr/chrfreeze.chr +6 -0
  54. package/lib/swipl/doc/packages/examples/chr/family.chr +116 -0
  55. package/lib/swipl/doc/packages/examples/chr/fib.chr +24 -0
  56. package/lib/swipl/doc/packages/examples/chr/fibonacci.chr +31 -0
  57. package/lib/swipl/doc/packages/examples/chr/gcd.chr +28 -0
  58. package/lib/swipl/doc/packages/examples/chr/leq.chr +34 -0
  59. package/lib/swipl/doc/packages/examples/chr/listdom.chr +138 -0
  60. package/lib/swipl/doc/packages/examples/chr/primes.chr +29 -0
  61. package/lib/swipl/doc/packages/examples/http/README.md +98 -0
  62. package/lib/swipl/doc/packages/examples/http/calc.pl +92 -0
  63. package/lib/swipl/doc/packages/examples/http/demo_body.pl +232 -0
  64. package/lib/swipl/doc/packages/examples/http/demo_client.pl +165 -0
  65. package/lib/swipl/doc/packages/examples/http/demo_daemon.pl +38 -0
  66. package/lib/swipl/doc/packages/examples/http/demo_files.pl +50 -0
  67. package/lib/swipl/doc/packages/examples/http/demo_hello.pl +15 -0
  68. package/lib/swipl/doc/packages/examples/http/demo_login.pl +280 -0
  69. package/lib/swipl/doc/packages/examples/http/demo_openid.pl +177 -0
  70. package/lib/swipl/doc/packages/examples/http/demo_pwp.pl +20 -0
  71. package/lib/swipl/doc/packages/examples/http/demo_rest.pl +56 -0
  72. package/lib/swipl/doc/packages/examples/http/demo_threads.pl +52 -0
  73. package/lib/swipl/doc/packages/examples/http/linux-init-script +126 -0
  74. package/lib/swipl/doc/packages/examples/http/pwp/context.pwp +23 -0
  75. package/lib/swipl/doc/packages/examples/http/pwp/index.pwp +25 -0
  76. package/lib/swipl/doc/packages/examples/http/pwp/pwp1.pwp +12 -0
  77. package/lib/swipl/doc/packages/examples/http/pwp/pwp2.pwp +10 -0
  78. package/lib/swipl/doc/packages/examples/http/pwp/pwp3.pwp +25 -0
  79. package/lib/swipl/doc/packages/examples/http/pwp/pwp4.pwp +23 -0
  80. package/lib/swipl/doc/packages/examples/http/pwp/pwp5.pwp +11 -0
  81. package/lib/swipl/doc/packages/examples/http/pwp/pwp6.pwp +3 -0
  82. package/lib/swipl/doc/packages/examples/http/pwp/pwp7.pwp +3 -0
  83. package/lib/swipl/doc/packages/examples/http/pwp/pwp8.pwp +3 -0
  84. package/lib/swipl/doc/packages/examples/http/pwp/pwpdb.pl +12 -0
  85. package/lib/swipl/doc/packages/examples/http/systemd-script.service +18 -0
  86. package/lib/swipl/doc/packages/examples/http/upstart-script.conf +20 -0
  87. package/lib/swipl/doc/packages/examples/plunit/read.pl +17 -0
  88. package/lib/swipl/doc/packages/examples/plunit/simple.pl +33 -0
  89. package/lib/swipl/doc/packages/examples/ssl/client.pl +83 -0
  90. package/lib/swipl/doc/packages/examples/ssl/etc/README +52 -0
  91. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.p12 +0 -0
  92. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-cert.pem +85 -0
  93. package/lib/swipl/doc/packages/examples/ssl/etc/client/client-key.pem +30 -0
  94. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/cacert.pem +82 -0
  95. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/careq.pem +18 -0
  96. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/crlnumber +1 -0
  97. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt +3 -0
  98. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/index.txt.attr +1 -0
  99. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7C.pem +85 -0
  100. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/newcerts/9DC08797A0F63F7D.pem +85 -0
  101. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/private/cakey.pem +30 -0
  102. package/lib/swipl/doc/packages/examples/ssl/etc/demoCA/serial +1 -0
  103. package/lib/swipl/doc/packages/examples/ssl/etc/server/server-cert.pem +85 -0
  104. package/lib/swipl/doc/packages/examples/ssl/etc/server/server-key.pem +30 -0
  105. package/lib/swipl/doc/packages/examples/ssl/https.pl +267 -0
  106. package/lib/swipl/doc/packages/examples/ssl/server.pl +106 -0
  107. package/lib/swipl/include/SWI-Prolog.h +1544 -0
  108. package/lib/swipl/include/SWI-Stream.h +537 -0
  109. package/lib/swipl/include/Yap/YapInterface.h +283 -0
  110. package/lib/swipl/include/sicstus/sicstus.h +452 -0
  111. package/lib/swipl/lib/x86_64-linux/cgi.so +0 -0
  112. package/lib/swipl/lib/x86_64-linux/crypt.so +0 -0
  113. package/lib/swipl/lib/x86_64-linux/crypto4pl.so +0 -0
  114. package/lib/swipl/lib/x86_64-linux/double_metaphone.so +0 -0
  115. package/lib/swipl/lib/x86_64-linux/files.so +0 -0
  116. package/lib/swipl/lib/x86_64-linux/hashstream.so +0 -0
  117. package/lib/swipl/lib/x86_64-linux/http_stream.so +0 -0
  118. package/lib/swipl/lib/x86_64-linux/isub.so +0 -0
  119. package/lib/swipl/lib/x86_64-linux/json.so +0 -0
  120. package/lib/swipl/lib/x86_64-linux/libswipl.so.10 +0 -0
  121. package/lib/swipl/lib/x86_64-linux/mallocinfo.so +0 -0
  122. package/lib/swipl/lib/x86_64-linux/md54pl.so +0 -0
  123. package/lib/swipl/lib/x86_64-linux/memfile.so +0 -0
  124. package/lib/swipl/lib/x86_64-linux/ntriples.so +0 -0
  125. package/lib/swipl/lib/x86_64-linux/pcre4pl.so +0 -0
  126. package/lib/swipl/lib/x86_64-linux/porter_stem.so +0 -0
  127. package/lib/swipl/lib/x86_64-linux/process.so +0 -0
  128. package/lib/swipl/lib/x86_64-linux/prolog_stream.so +0 -0
  129. package/lib/swipl/lib/x86_64-linux/rdf_db.so +0 -0
  130. package/lib/swipl/lib/x86_64-linux/readutil.so +0 -0
  131. package/lib/swipl/lib/x86_64-linux/rlimit.so +0 -0
  132. package/lib/swipl/lib/x86_64-linux/sched.so +0 -0
  133. package/lib/swipl/lib/x86_64-linux/sgml2pl.so +0 -0
  134. package/lib/swipl/lib/x86_64-linux/sha4pl.so +0 -0
  135. package/lib/swipl/lib/x86_64-linux/snowball.so +0 -0
  136. package/lib/swipl/lib/x86_64-linux/socket.so +0 -0
  137. package/lib/swipl/lib/x86_64-linux/ssl4pl.so +0 -0
  138. package/lib/swipl/lib/x86_64-linux/streaminfo.so +0 -0
  139. package/lib/swipl/lib/x86_64-linux/syslog.so +0 -0
  140. package/lib/swipl/lib/x86_64-linux/time.so +0 -0
  141. package/lib/swipl/lib/x86_64-linux/turtle.so +0 -0
  142. package/lib/swipl/lib/x86_64-linux/uid.so +0 -0
  143. package/lib/swipl/lib/x86_64-linux/unix.so +0 -0
  144. package/lib/swipl/lib/x86_64-linux/uri.so +0 -0
  145. package/lib/swipl/lib/x86_64-linux/websocket.so +0 -0
  146. package/lib/swipl/lib/x86_64-linux/zlib4pl.so +0 -0
  147. package/lib/swipl/library/INDEX.pl +1020 -0
  148. package/lib/swipl/library/aggregate.pl +755 -0
  149. package/lib/swipl/library/ansi_term.pl +653 -0
  150. package/lib/swipl/library/apply.pl +426 -0
  151. package/lib/swipl/library/apply_macros.pl +497 -0
  152. package/lib/swipl/library/arithmetic.pl +320 -0
  153. package/lib/swipl/library/assoc.pl +522 -0
  154. package/lib/swipl/library/atom.pl +169 -0
  155. package/lib/swipl/library/backcomp.pl +688 -0
  156. package/lib/swipl/library/base32.pl +291 -0
  157. package/lib/swipl/library/base64.pl +441 -0
  158. package/lib/swipl/library/broadcast.pl +161 -0
  159. package/lib/swipl/library/build/cmake.pl +137 -0
  160. package/lib/swipl/library/build/conan.pl +232 -0
  161. package/lib/swipl/library/build/make.pl +168 -0
  162. package/lib/swipl/library/build/tools.pl +825 -0
  163. package/lib/swipl/library/charsio.pl +195 -0
  164. package/lib/swipl/library/check.pl +1097 -0
  165. package/lib/swipl/library/check_installation.pl +912 -0
  166. package/lib/swipl/library/clp/INDEX.pl +157 -0
  167. package/lib/swipl/library/clp/bounds.pl +2036 -0
  168. package/lib/swipl/library/clp/clp_distinct.pl +263 -0
  169. package/lib/swipl/library/clp/clp_events.pl +92 -0
  170. package/lib/swipl/library/clp/clpb.pl +1896 -0
  171. package/lib/swipl/library/clp/clpfd.pl +7906 -0
  172. package/lib/swipl/library/clp/simplex.pl +1580 -0
  173. package/lib/swipl/library/codesio.pl +182 -0
  174. package/lib/swipl/library/coinduction.pl +183 -0
  175. package/lib/swipl/library/console_input.pl +289 -0
  176. package/lib/swipl/library/csv.pl +611 -0
  177. package/lib/swipl/library/ctypes.pl +161 -0
  178. package/lib/swipl/library/date.pl +370 -0
  179. package/lib/swipl/library/dcg/INDEX.pl +35 -0
  180. package/lib/swipl/library/dcg/basics.pl +514 -0
  181. package/lib/swipl/library/dcg/high_order.pl +227 -0
  182. package/lib/swipl/library/debug.pl +499 -0
  183. package/lib/swipl/library/dialect/bim.pl +186 -0
  184. package/lib/swipl/library/dialect/commons.pl +77 -0
  185. package/lib/swipl/library/dialect/eclipse/test_util_iso.pl +355 -0
  186. package/lib/swipl/library/dialect/hprolog/format.pl +44 -0
  187. package/lib/swipl/library/dialect/hprolog.pl +314 -0
  188. package/lib/swipl/library/dialect/ifprolog.pl +1317 -0
  189. package/lib/swipl/library/dialect/iso/iso_predicates.pl +277 -0
  190. package/lib/swipl/library/dialect/sicstus/README.TXT +1 -0
  191. package/lib/swipl/library/dialect/sicstus/arrays.pl +121 -0
  192. package/lib/swipl/library/dialect/sicstus/block.pl +278 -0
  193. package/lib/swipl/library/dialect/sicstus/lists.pl +167 -0
  194. package/lib/swipl/library/dialect/sicstus/ordsets.pl +52 -0
  195. package/lib/swipl/library/dialect/sicstus/sockets.pl +174 -0
  196. package/lib/swipl/library/dialect/sicstus/system.pl +262 -0
  197. package/lib/swipl/library/dialect/sicstus/terms.pl +57 -0
  198. package/lib/swipl/library/dialect/sicstus/timeout.pl +92 -0
  199. package/lib/swipl/library/dialect/sicstus.pl +582 -0
  200. package/lib/swipl/library/dialect/sicstus4/aggregate.pl +60 -0
  201. package/lib/swipl/library/dialect/sicstus4/between.pl +62 -0
  202. package/lib/swipl/library/dialect/sicstus4/clpfd.pl +75 -0
  203. package/lib/swipl/library/dialect/sicstus4/file_systems.pl +413 -0
  204. package/lib/swipl/library/dialect/sicstus4/lists.pl +274 -0
  205. package/lib/swipl/library/dialect/sicstus4/ordsets.pl +54 -0
  206. package/lib/swipl/library/dialect/sicstus4/samsort.pl +86 -0
  207. package/lib/swipl/library/dialect/sicstus4/sets.pl +124 -0
  208. package/lib/swipl/library/dialect/sicstus4/sockets.pl +164 -0
  209. package/lib/swipl/library/dialect/sicstus4/system.pl +80 -0
  210. package/lib/swipl/library/dialect/sicstus4/terms.pl +89 -0
  211. package/lib/swipl/library/dialect/sicstus4/timeout.pl +43 -0
  212. package/lib/swipl/library/dialect/sicstus4/types.pl +103 -0
  213. package/lib/swipl/library/dialect/sicstus4.pl +200 -0
  214. package/lib/swipl/library/dialect/swi/syspred_options.pl +250 -0
  215. package/lib/swipl/library/dialect/xsb/README.md +20 -0
  216. package/lib/swipl/library/dialect/xsb/basics.pl +318 -0
  217. package/lib/swipl/library/dialect/xsb/consult.pl +87 -0
  218. package/lib/swipl/library/dialect/xsb/curr_sym.pl +57 -0
  219. package/lib/swipl/library/dialect/xsb/error_handler.pl +111 -0
  220. package/lib/swipl/library/dialect/xsb/gensym.pl +53 -0
  221. package/lib/swipl/library/dialect/xsb/gpp.pl +138 -0
  222. package/lib/swipl/library/dialect/xsb/intern.pl +48 -0
  223. package/lib/swipl/library/dialect/xsb/lists.pl +47 -0
  224. package/lib/swipl/library/dialect/xsb/machine.pl +295 -0
  225. package/lib/swipl/library/dialect/xsb/ordsets.pl +53 -0
  226. package/lib/swipl/library/dialect/xsb/setof.pl +54 -0
  227. package/lib/swipl/library/dialect/xsb/source.pl +308 -0
  228. package/lib/swipl/library/dialect/xsb/standard.pl +169 -0
  229. package/lib/swipl/library/dialect/xsb/storage.pl +70 -0
  230. package/lib/swipl/library/dialect/xsb/string.pl +76 -0
  231. package/lib/swipl/library/dialect/xsb/thread.pl +62 -0
  232. package/lib/swipl/library/dialect/xsb/timed_call.pl +158 -0
  233. package/lib/swipl/library/dialect/xsb.pl +688 -0
  234. package/lib/swipl/library/dialect/yap/README.TXT +8 -0
  235. package/lib/swipl/library/dialect/yap.pl +283 -0
  236. package/lib/swipl/library/dialect.pl +123 -0
  237. package/lib/swipl/library/dicts.pl +399 -0
  238. package/lib/swipl/library/dif.pl +426 -0
  239. package/lib/swipl/library/edinburgh.pl +138 -0
  240. package/lib/swipl/library/edit.pl +783 -0
  241. package/lib/swipl/library/error.pl +495 -0
  242. package/lib/swipl/library/exceptions.pl +231 -0
  243. package/lib/swipl/library/explain.pl +543 -0
  244. package/lib/swipl/library/ext/RDF/INDEX.pl +25 -0
  245. package/lib/swipl/library/ext/RDF/rdf.pl +450 -0
  246. package/lib/swipl/library/ext/RDF/rdf_parser.pl +649 -0
  247. package/lib/swipl/library/ext/RDF/rdf_triple.pl +448 -0
  248. package/lib/swipl/library/ext/RDF/rdf_write.pl +701 -0
  249. package/lib/swipl/library/ext/RDF/rewrite_term.pl +177 -0
  250. package/lib/swipl/library/ext/chr/chr/a_star.pl +80 -0
  251. package/lib/swipl/library/ext/chr/chr/binomialheap.pl +142 -0
  252. package/lib/swipl/library/ext/chr/chr/builtins.pl +629 -0
  253. package/lib/swipl/library/ext/chr/chr/chr_compiler_errors.pl +179 -0
  254. package/lib/swipl/library/ext/chr/chr/chr_compiler_options.pl +382 -0
  255. package/lib/swipl/library/ext/chr/chr/chr_compiler_utility.pl +338 -0
  256. package/lib/swipl/library/ext/chr/chr/chr_debug.pl +59 -0
  257. package/lib/swipl/library/ext/chr/chr/chr_hashtable_store.pl +425 -0
  258. package/lib/swipl/library/ext/chr/chr/chr_integertable_store.pl +139 -0
  259. package/lib/swipl/library/ext/chr/chr/chr_messages.pl +176 -0
  260. package/lib/swipl/library/ext/chr/chr/chr_op.pl +53 -0
  261. package/lib/swipl/library/ext/chr/chr/chr_runtime.pl +1016 -0
  262. package/lib/swipl/library/ext/chr/chr/chr_translate.pl +25424 -0
  263. package/lib/swipl/library/ext/chr/chr/clean_code.pl +252 -0
  264. package/lib/swipl/library/ext/chr/chr/find.pl +78 -0
  265. package/lib/swipl/library/ext/chr/chr/guard_entailment.pl +19432 -0
  266. package/lib/swipl/library/ext/chr/chr/listmap.pl +108 -0
  267. package/lib/swipl/library/ext/chr/chr/pairlist.pl +78 -0
  268. package/lib/swipl/library/ext/chr/chr.pl +686 -0
  269. package/lib/swipl/library/ext/clib/INDEX.pl +158 -0
  270. package/lib/swipl/library/ext/clib/cgi.pl +86 -0
  271. package/lib/swipl/library/ext/clib/crypt.pl +44 -0
  272. package/lib/swipl/library/ext/clib/filesex.pl +644 -0
  273. package/lib/swipl/library/ext/clib/hash_stream.pl +119 -0
  274. package/lib/swipl/library/ext/clib/mallocinfo.pl +138 -0
  275. package/lib/swipl/library/ext/clib/md5.pl +68 -0
  276. package/lib/swipl/library/ext/clib/memfile.pl +61 -0
  277. package/lib/swipl/library/ext/clib/process.pl +573 -0
  278. package/lib/swipl/library/ext/clib/prolog_server.pl +157 -0
  279. package/lib/swipl/library/ext/clib/prolog_stream.pl +80 -0
  280. package/lib/swipl/library/ext/clib/rlimit.pl +54 -0
  281. package/lib/swipl/library/ext/clib/sched.pl +85 -0
  282. package/lib/swipl/library/ext/clib/sha.pl +162 -0
  283. package/lib/swipl/library/ext/clib/socket.pl +1102 -0
  284. package/lib/swipl/library/ext/clib/streaminfo.pl +103 -0
  285. package/lib/swipl/library/ext/clib/streampool.pl +136 -0
  286. package/lib/swipl/library/ext/clib/syslog.pl +180 -0
  287. package/lib/swipl/library/ext/clib/time.pl +194 -0
  288. package/lib/swipl/library/ext/clib/udp_broadcast.pl +975 -0
  289. package/lib/swipl/library/ext/clib/uid.pl +220 -0
  290. package/lib/swipl/library/ext/clib/unix.pl +317 -0
  291. package/lib/swipl/library/ext/clib/uri.pl +530 -0
  292. package/lib/swipl/library/ext/clib/uuid.pl +207 -0
  293. package/lib/swipl/library/ext/http/http/INDEX.pl +266 -0
  294. package/lib/swipl/library/ext/http/http/README.md +34 -0
  295. package/lib/swipl/library/ext/http/http/ax.pl +189 -0
  296. package/lib/swipl/library/ext/http/http/dcg_basics.pl +49 -0
  297. package/lib/swipl/library/ext/http/http/graphql.pl +1367 -0
  298. package/lib/swipl/library/ext/http/http/html_decl.pl +416 -0
  299. package/lib/swipl/library/ext/http/http/html_head.pl +654 -0
  300. package/lib/swipl/library/ext/http/http/html_quasiquotations.pl +120 -0
  301. package/lib/swipl/library/ext/http/http/html_write.pl +1425 -0
  302. package/lib/swipl/library/ext/http/http/htmx.pl +139 -0
  303. package/lib/swipl/library/ext/http/http/http_authenticate.pl +364 -0
  304. package/lib/swipl/library/ext/http/http/http_client.pl +412 -0
  305. package/lib/swipl/library/ext/http/http/http_cookie.pl +245 -0
  306. package/lib/swipl/library/ext/http/http/http_cors.pl +176 -0
  307. package/lib/swipl/library/ext/http/http/http_digest.pl +820 -0
  308. package/lib/swipl/library/ext/http/http/http_dirindex.pl +296 -0
  309. package/lib/swipl/library/ext/http/http/http_dispatch.pl +1552 -0
  310. package/lib/swipl/library/ext/http/http/http_dyn_workers.pl +214 -0
  311. package/lib/swipl/library/ext/http/http/http_error.pl +126 -0
  312. package/lib/swipl/library/ext/http/http/http_exception.pl +225 -0
  313. package/lib/swipl/library/ext/http/http/http_files.pl +163 -0
  314. package/lib/swipl/library/ext/http/http/http_header.pl +2820 -0
  315. package/lib/swipl/library/ext/http/http/http_hook.pl +106 -0
  316. package/lib/swipl/library/ext/http/http/http_host.pl +204 -0
  317. package/lib/swipl/library/ext/http/http/http_load.pl +113 -0
  318. package/lib/swipl/library/ext/http/http/http_log.pl +738 -0
  319. package/lib/swipl/library/ext/http/http/http_multipart_plugin.pl +232 -0
  320. package/lib/swipl/library/ext/http/http/http_open.pl +1821 -0
  321. package/lib/swipl/library/ext/http/http/http_openid.pl +1561 -0
  322. package/lib/swipl/library/ext/http/http/http_parameters.pl +504 -0
  323. package/lib/swipl/library/ext/http/http/http_path.pl +380 -0
  324. package/lib/swipl/library/ext/http/http/http_proxy.pl +80 -0
  325. package/lib/swipl/library/ext/http/http/http_pwp.pl +351 -0
  326. package/lib/swipl/library/ext/http/http/http_redis_plugin.pl +332 -0
  327. package/lib/swipl/library/ext/http/http/http_server.pl +105 -0
  328. package/lib/swipl/library/ext/http/http/http_server_files.pl +126 -0
  329. package/lib/swipl/library/ext/http/http/http_server_health.pl +186 -0
  330. package/lib/swipl/library/ext/http/http/http_session.pl +1040 -0
  331. package/lib/swipl/library/ext/http/http/http_sgml_plugin.pl +137 -0
  332. package/lib/swipl/library/ext/http/http/http_stream.pl +376 -0
  333. package/lib/swipl/library/ext/http/http/http_unix_daemon.pl +989 -0
  334. package/lib/swipl/library/ext/http/http/http_wrapper.pl +559 -0
  335. package/lib/swipl/library/ext/http/http/hub.pl +600 -0
  336. package/lib/swipl/library/ext/http/http/js_write.pl +461 -0
  337. package/lib/swipl/library/ext/http/http/mimepack.pl +224 -0
  338. package/lib/swipl/library/ext/http/http/mimetype.pl +276 -0
  339. package/lib/swipl/library/ext/http/http/term_html.pl +797 -0
  340. package/lib/swipl/library/ext/http/http/thread_httpd.pl +1181 -0
  341. package/lib/swipl/library/ext/http/http/web/css/dirindex.css +24 -0
  342. package/lib/swipl/library/ext/http/http/web/css/openid.css +57 -0
  343. package/lib/swipl/library/ext/http/http/web/icons/back.png +0 -0
  344. package/lib/swipl/library/ext/http/http/web/icons/c.png +0 -0
  345. package/lib/swipl/library/ext/http/http/web/icons/compressed.png +0 -0
  346. package/lib/swipl/library/ext/http/http/web/icons/folder.png +0 -0
  347. package/lib/swipl/library/ext/http/http/web/icons/generic.png +0 -0
  348. package/lib/swipl/library/ext/http/http/web/icons/layout.png +0 -0
  349. package/lib/swipl/library/ext/http/http/web/icons/openid-logo-square.png +0 -0
  350. package/lib/swipl/library/ext/http/http/web/icons/openid-logo-tiny.png +0 -0
  351. package/lib/swipl/library/ext/http/http/websocket.pl +729 -0
  352. package/lib/swipl/library/ext/http/http/yadis.pl +205 -0
  353. package/lib/swipl/library/ext/json/INDEX.pl +36 -0
  354. package/lib/swipl/library/ext/json/http/INDEX.pl +16 -0
  355. package/lib/swipl/library/ext/json/http/http_json.pl +490 -0
  356. package/lib/swipl/library/ext/json/http/js_grammar.pl +53 -0
  357. package/lib/swipl/library/ext/json/http/json.pl +48 -0
  358. package/lib/swipl/library/ext/json/http/json_convert.pl +48 -0
  359. package/lib/swipl/library/ext/json/json.pl +1215 -0
  360. package/lib/swipl/library/ext/json/json_convert.pl +681 -0
  361. package/lib/swipl/library/ext/json/json_grammar.pl +349 -0
  362. package/lib/swipl/library/ext/json/json_rpc_client.pl +423 -0
  363. package/lib/swipl/library/ext/json/json_rpc_common.pl +104 -0
  364. package/lib/swipl/library/ext/json/json_rpc_server.pl +489 -0
  365. package/lib/swipl/library/ext/json/json_schema.pl +2111 -0
  366. package/lib/swipl/library/ext/nlp/INDEX.pl +15 -0
  367. package/lib/swipl/library/ext/nlp/double_metaphone.pl +86 -0
  368. package/lib/swipl/library/ext/nlp/isub.pl +162 -0
  369. package/lib/swipl/library/ext/nlp/porter_stem.pl +50 -0
  370. package/lib/swipl/library/ext/nlp/snowball.pl +97 -0
  371. package/lib/swipl/library/ext/pcre/INDEX.pl +17 -0
  372. package/lib/swipl/library/ext/pcre/pcre.pl +974 -0
  373. package/lib/swipl/library/ext/plunit/INDEX.pl +20 -0
  374. package/lib/swipl/library/ext/plunit/plunit.pl +2631 -0
  375. package/lib/swipl/library/ext/plunit/test_wizard.pl +249 -0
  376. package/lib/swipl/library/ext/semweb/semweb/INDEX.pl +288 -0
  377. package/lib/swipl/library/ext/semweb/semweb/rdf11.pl +2106 -0
  378. package/lib/swipl/library/ext/semweb/semweb/rdf11_containers.pl +299 -0
  379. package/lib/swipl/library/ext/semweb/semweb/rdf_cache.pl +278 -0
  380. package/lib/swipl/library/ext/semweb/semweb/rdf_compare.pl +132 -0
  381. package/lib/swipl/library/ext/semweb/semweb/rdf_db.pl +3468 -0
  382. package/lib/swipl/library/ext/semweb/semweb/rdf_edit.pl +1145 -0
  383. package/lib/swipl/library/ext/semweb/semweb/rdf_http_plugin.pl +274 -0
  384. package/lib/swipl/library/ext/semweb/semweb/rdf_library.pl +1021 -0
  385. package/lib/swipl/library/ext/semweb/semweb/rdf_litindex.pl +1035 -0
  386. package/lib/swipl/library/ext/semweb/semweb/rdf_ntriples.pl +422 -0
  387. package/lib/swipl/library/ext/semweb/semweb/rdf_persistency.pl +1576 -0
  388. package/lib/swipl/library/ext/semweb/semweb/rdf_portray.pl +182 -0
  389. package/lib/swipl/library/ext/semweb/semweb/rdf_prefixes.pl +681 -0
  390. package/lib/swipl/library/ext/semweb/semweb/rdf_sandbox.pl +153 -0
  391. package/lib/swipl/library/ext/semweb/semweb/rdf_turtle.pl +54 -0
  392. package/lib/swipl/library/ext/semweb/semweb/rdf_turtle_write.pl +1587 -0
  393. package/lib/swipl/library/ext/semweb/semweb/rdf_zlib_plugin.pl +52 -0
  394. package/lib/swipl/library/ext/semweb/semweb/rdfa.pl +1510 -0
  395. package/lib/swipl/library/ext/semweb/semweb/rdfs.pl +475 -0
  396. package/lib/swipl/library/ext/semweb/semweb/sparql_client.pl +643 -0
  397. package/lib/swipl/library/ext/semweb/semweb/turtle.pl +455 -0
  398. package/lib/swipl/library/ext/sgml/DTD/HTML4.dcl +88 -0
  399. package/lib/swipl/library/ext/sgml/DTD/HTML4.dtd +1092 -0
  400. package/lib/swipl/library/ext/sgml/DTD/HTML4.soc +6 -0
  401. package/lib/swipl/library/ext/sgml/DTD/HTML5.dtd +906 -0
  402. package/lib/swipl/library/ext/sgml/DTD/HTMLlat1.ent +195 -0
  403. package/lib/swipl/library/ext/sgml/DTD/HTMLspec.ent +77 -0
  404. package/lib/swipl/library/ext/sgml/DTD/HTMLsym.ent +241 -0
  405. package/lib/swipl/library/ext/sgml/INDEX.pl +64 -0
  406. package/lib/swipl/library/ext/sgml/c14n2.pl +203 -0
  407. package/lib/swipl/library/ext/sgml/iso_639.pl +631 -0
  408. package/lib/swipl/library/ext/sgml/pwp.pl +705 -0
  409. package/lib/swipl/library/ext/sgml/sgml.pl +815 -0
  410. package/lib/swipl/library/ext/sgml/sgml_write.pl +1003 -0
  411. package/lib/swipl/library/ext/sgml/xpath.pl +620 -0
  412. package/lib/swipl/library/ext/sgml/xsdp_types.pl +232 -0
  413. package/lib/swipl/library/ext/ssl/INDEX.pl +60 -0
  414. package/lib/swipl/library/ext/ssl/crypto.pl +1015 -0
  415. package/lib/swipl/library/ext/ssl/http/INDEX.pl +5 -0
  416. package/lib/swipl/library/ext/ssl/http/http_ssl_plugin.pl +296 -0
  417. package/lib/swipl/library/ext/ssl/saml.pl +609 -0
  418. package/lib/swipl/library/ext/ssl/ssl.pl +647 -0
  419. package/lib/swipl/library/ext/ssl/xmldsig.pl +391 -0
  420. package/lib/swipl/library/ext/ssl/xmlenc.pl +354 -0
  421. package/lib/swipl/library/ext/zlib/INDEX.pl +8 -0
  422. package/lib/swipl/library/ext/zlib/zlib.pl +112 -0
  423. package/lib/swipl/library/fastrw.pl +105 -0
  424. package/lib/swipl/library/files.pl +80 -0
  425. package/lib/swipl/library/gensym.pl +111 -0
  426. package/lib/swipl/library/git.pl +1027 -0
  427. package/lib/swipl/library/hashtable.pl +365 -0
  428. package/lib/swipl/library/heaps.pl +252 -0
  429. package/lib/swipl/library/hotfix.pl +239 -0
  430. package/lib/swipl/library/http/jquery.pl +103 -0
  431. package/lib/swipl/library/http/web/js/jquery-3.6.0.min.js +2 -0
  432. package/lib/swipl/library/increval.pl +217 -0
  433. package/lib/swipl/library/intercept.pl +263 -0
  434. package/lib/swipl/library/iostream.pl +237 -0
  435. package/lib/swipl/library/iri_scheme/file.pl +70 -0
  436. package/lib/swipl/library/lazy_lists.pl +481 -0
  437. package/lib/swipl/library/listing.pl +1362 -0
  438. package/lib/swipl/library/lists.pl +860 -0
  439. package/lib/swipl/library/lynx/INDEX.pl +14 -0
  440. package/lib/swipl/library/lynx/format.pl +380 -0
  441. package/lib/swipl/library/lynx/html_style.pl +129 -0
  442. package/lib/swipl/library/lynx/html_text.pl +865 -0
  443. package/lib/swipl/library/lynx/pldoc_style.pl +87 -0
  444. package/lib/swipl/library/macros.pl +451 -0
  445. package/lib/swipl/library/main.pl +1200 -0
  446. package/lib/swipl/library/make.pl +197 -0
  447. package/lib/swipl/library/modules.pl +129 -0
  448. package/lib/swipl/library/nb_rbtrees.pl +267 -0
  449. package/lib/swipl/library/nb_set.pl +203 -0
  450. package/lib/swipl/library/obfuscate.pl +115 -0
  451. package/lib/swipl/library/occurs.pl +241 -0
  452. package/lib/swipl/library/operators.pl +182 -0
  453. package/lib/swipl/library/option.pl +388 -0
  454. package/lib/swipl/library/optparse.pl +966 -0
  455. package/lib/swipl/library/ordsets.pl +518 -0
  456. package/lib/swipl/library/oset.pl +160 -0
  457. package/lib/swipl/library/pairs.pl +187 -0
  458. package/lib/swipl/library/persistency.pl +713 -0
  459. package/lib/swipl/library/pio.pl +47 -0
  460. package/lib/swipl/library/portray_text.pl +277 -0
  461. package/lib/swipl/library/pprint.pl +940 -0
  462. package/lib/swipl/library/predicate_options.pl +975 -0
  463. package/lib/swipl/library/prolog_autoload.pl +233 -0
  464. package/lib/swipl/library/prolog_breakpoints.pl +396 -0
  465. package/lib/swipl/library/prolog_clause.pl +1104 -0
  466. package/lib/swipl/library/prolog_code.pl +416 -0
  467. package/lib/swipl/library/prolog_codewalk.pl +1248 -0
  468. package/lib/swipl/library/prolog_colour.pl +3301 -0
  469. package/lib/swipl/library/prolog_colour.qlf +0 -0
  470. package/lib/swipl/library/prolog_config.pl +154 -0
  471. package/lib/swipl/library/prolog_coverage.pl +1333 -0
  472. package/lib/swipl/library/prolog_debug.pl +404 -0
  473. package/lib/swipl/library/prolog_deps.pl +675 -0
  474. package/lib/swipl/library/prolog_evaluable.pl +234 -0
  475. package/lib/swipl/library/prolog_format.pl +219 -0
  476. package/lib/swipl/library/prolog_history.pl +161 -0
  477. package/lib/swipl/library/prolog_jiti.pl +333 -0
  478. package/lib/swipl/library/prolog_locale.pl +61 -0
  479. package/lib/swipl/library/prolog_metainference.pl +307 -0
  480. package/lib/swipl/library/prolog_pack.pl +3906 -0
  481. package/lib/swipl/library/prolog_profile.pl +346 -0
  482. package/lib/swipl/library/prolog_qlfmake.pl +533 -0
  483. package/lib/swipl/library/prolog_source.pl +1188 -0
  484. package/lib/swipl/library/prolog_stack.pl +794 -0
  485. package/lib/swipl/library/prolog_trace.pl +365 -0
  486. package/lib/swipl/library/prolog_versions.pl +347 -0
  487. package/lib/swipl/library/prolog_wrap.pl +164 -0
  488. package/lib/swipl/library/prolog_xref.pl +3090 -0
  489. package/lib/swipl/library/prolog_xref.qlf +0 -0
  490. package/lib/swipl/library/pure_input.pl +266 -0
  491. package/lib/swipl/library/qpforeign.pl +695 -0
  492. package/lib/swipl/library/qsave.pl +1516 -0
  493. package/lib/swipl/library/quasi_quotations.pl +300 -0
  494. package/lib/swipl/library/quintus.pl +437 -0
  495. package/lib/swipl/library/random.pl +459 -0
  496. package/lib/swipl/library/rbtrees.pl +1153 -0
  497. package/lib/swipl/library/readln.pl +256 -0
  498. package/lib/swipl/library/readutil.pl +304 -0
  499. package/lib/swipl/library/record.pl +544 -0
  500. package/lib/swipl/library/rwlocks.pl +172 -0
  501. package/lib/swipl/library/sandbox.pl +1384 -0
  502. package/lib/swipl/library/semweb/dc.rdfs +198 -0
  503. package/lib/swipl/library/semweb/eor.rdfs +95 -0
  504. package/lib/swipl/library/semweb/owl.owl +287 -0
  505. package/lib/swipl/library/semweb/rdf_library.ttl +90 -0
  506. package/lib/swipl/library/semweb/rdfs.rdfs +251 -0
  507. package/lib/swipl/library/settings.pl +755 -0
  508. package/lib/swipl/library/shell.pl +462 -0
  509. package/lib/swipl/library/shlib.pl +670 -0
  510. package/lib/swipl/library/solution_sequences.pl +439 -0
  511. package/lib/swipl/library/sort.pl +119 -0
  512. package/lib/swipl/library/statistics.pl +541 -0
  513. package/lib/swipl/library/streams.pl +118 -0
  514. package/lib/swipl/library/strings.pl +469 -0
  515. package/lib/swipl/library/system.pl +95 -0
  516. package/lib/swipl/library/tables.pl +381 -0
  517. package/lib/swipl/library/tableutil.pl +771 -0
  518. package/lib/swipl/library/tabling.pl +42 -0
  519. package/lib/swipl/library/terms.pl +457 -0
  520. package/lib/swipl/library/theme/auto.pl +61 -0
  521. package/lib/swipl/library/theme/dark.pl +455 -0
  522. package/lib/swipl/library/theme/light.pl +45 -0
  523. package/lib/swipl/library/thread.pl +810 -0
  524. package/lib/swipl/library/thread_pool.pl +508 -0
  525. package/lib/swipl/library/threadutil.pl +574 -0
  526. package/lib/swipl/library/tty.pl +316 -0
  527. package/lib/swipl/library/ugraphs.pl +644 -0
  528. package/lib/swipl/library/unicode/INDEX.pl +6 -0
  529. package/lib/swipl/library/unicode/blocks.pl +414 -0
  530. package/lib/swipl/library/url.pl +1129 -0
  531. package/lib/swipl/library/utf8.pl +145 -0
  532. package/lib/swipl/library/varnumbers.pl +221 -0
  533. package/lib/swipl/library/vm.pl +251 -0
  534. package/lib/swipl/library/wfs.pl +205 -0
  535. package/lib/swipl/library/when.pl +263 -0
  536. package/lib/swipl/library/writef.pl +278 -0
  537. package/lib/swipl/library/www_browser.pl +251 -0
  538. package/lib/swipl/library/yall.pl +574 -0
  539. package/lib/swipl/library/zip.pl +211 -0
  540. package/lib/swipl/swipl.home +1 -0
  541. package/lib/vendor/libcrypto.so.3 +0 -0
  542. package/lib/vendor/libpcre2-8.so.0 +0 -0
  543. package/lib/vendor/libssl.so.3 +0 -0
  544. package/lib/vendor/libz.so.1 +0 -0
  545. package/licenses/OpenSSL-LICENSE.txt +177 -0
  546. package/licenses/PCRE2-COPYING +5 -0
  547. package/licenses/README.md +12 -0
  548. package/licenses/SWI-Prolog-LICENSE +41 -0
  549. package/licenses/zlib-LICENSE +22 -0
  550. package/package.json +27 -0
@@ -0,0 +1,815 @@
1
+ /* Part of SWI-Prolog
2
+
3
+ Author: Jan Wielemaker
4
+ E-mail: J.Wielemaker@vu.nl
5
+ WWW: http://www.swi-prolog.org
6
+ Copyright (c) 2000-2025, University of Amsterdam
7
+ VU University Amsterdam
8
+ CWI, Amsterdam
9
+ SWI-Prolog Solutions b.v.
10
+ All rights reserved.
11
+
12
+ Redistribution and use in source and binary forms, with or without
13
+ modification, are permitted provided that the following conditions
14
+ are met:
15
+
16
+ 1. Redistributions of source code must retain the above copyright
17
+ notice, this list of conditions and the following disclaimer.
18
+
19
+ 2. Redistributions in binary form must reproduce the above copyright
20
+ notice, this list of conditions and the following disclaimer in
21
+ the documentation and/or other materials provided with the
22
+ distribution.
23
+
24
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
25
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
26
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
27
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
29
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
30
+ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
31
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
32
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
33
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
34
+ ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35
+ POSSIBILITY OF SUCH DAMAGE.
36
+ */
37
+
38
+ :- module(sgml,
39
+ [ load_html/3, % +Input, -DOM, +Options
40
+ load_xml/3, % +Input, -DOM, +Options
41
+ load_sgml/3, % +Input, -DOM, +Options
42
+
43
+ load_sgml_file/2, % +File, -ListOfContent
44
+ load_xml_file/2, % +File, -ListOfContent
45
+ load_html_file/2, % +File, -Document
46
+
47
+ load_structure/3, % +File, -Term, +Options
48
+
49
+ load_dtd/2, % +DTD, +File
50
+ load_dtd/3, % +DTD, +File, +Options
51
+ dtd/2, % +Type, -DTD
52
+ dtd_property/2, % +DTD, ?Property
53
+
54
+ new_dtd/2, % +Doctype, -DTD
55
+ free_dtd/1, % +DTD
56
+ open_dtd/3, % +DTD, +Options, -Stream
57
+
58
+ new_sgml_parser/2, % -Parser, +Options
59
+ free_sgml_parser/1, % +Parser
60
+ set_sgml_parser/2, % +Parser, +Options
61
+ get_sgml_parser/2, % +Parser, +Options
62
+ sgml_parse/2, % +Parser, +Options
63
+
64
+ sgml_register_catalog_file/2, % +File, +StartOrEnd
65
+
66
+ xml_quote_attribute/3, % +In, -Quoted, +Encoding
67
+ xml_quote_cdata/3, % +In, -Quoted, +Encoding
68
+ xml_quote_attribute/2, % +In, -Quoted
69
+ xml_quote_cdata/2, % +In, -Quoted
70
+ xml_name/1, % +In
71
+ xml_name/2, % +In, +Encoding
72
+
73
+ xsd_number_string/2, % ?Number, ?String
74
+ xsd_time_string/3, % ?Term, ?Type, ?String
75
+
76
+ xml_basechar/1, % +Code
77
+ xml_ideographic/1, % +Code
78
+ xml_combining_char/1, % +Code
79
+ xml_digit/1, % +Code
80
+ xml_extender/1, % +Code
81
+
82
+ iri_xml_namespace/2, % +IRI, -Namespace
83
+ iri_xml_namespace/3, % +IRI, -Namespace, -LocalName
84
+ xml_is_dom/1 % +Term
85
+ ]).
86
+ :- autoload(library(error),[instantiation_error/1]).
87
+ :- autoload(library(iostream),[open_any/5,close_any/1]).
88
+ :- autoload(library(lists),[member/2,selectchk/3]).
89
+ :- autoload(library(option),[select_option/3,merge_options/3]).
90
+
91
+ :- meta_predicate
92
+ load_structure(+, -, :),
93
+ load_html(+, -, :),
94
+ load_xml(+, -, :),
95
+ load_sgml(+, -, :).
96
+
97
+ :- predicate_options(load_structure/3, 3,
98
+ [ charpos(integer),
99
+ cdata(oneof([atom,string])),
100
+ defaults(boolean),
101
+ dialect(oneof([html,html4,html5,sgml,xhtml,xhtml5,xml,xmlns])),
102
+ doctype(atom),
103
+ dtd(any),
104
+ encoding(oneof(['iso-8859-1', 'utf-8', 'us-ascii'])),
105
+ entity(atom,atom),
106
+ keep_prefix(boolean),
107
+ file(atom),
108
+ line(integer),
109
+ offset(integer),
110
+ number(oneof([token,integer])),
111
+ qualify_attributes(boolean),
112
+ shorttag(boolean),
113
+ case_sensitive_attributes(boolean),
114
+ case_preserving_attributes(boolean),
115
+ system_entities(boolean),
116
+ max_memory(integer),
117
+ ignore_doctype(boolean),
118
+ space(oneof([sgml,preserve,default,remove,strict])),
119
+ xmlns(atom),
120
+ xmlns(atom,atom),
121
+ pass_to(sgml_parse/2, 2)
122
+ ]).
123
+ :- predicate_options(load_html/3, 3,
124
+ [ pass_to(load_structure/3, 3)
125
+ ]).
126
+ :- predicate_options(load_xml/3, 3,
127
+ [ pass_to(load_structure/3, 3)
128
+ ]).
129
+ :- predicate_options(load_sgml/3, 3,
130
+ [ pass_to(load_structure/3, 3)
131
+ ]).
132
+ :- predicate_options(load_dtd/3, 3,
133
+ [ dialect(oneof([sgml,xml,xmlns])),
134
+ pass_to(open/4, 4)
135
+ ]).
136
+ :- predicate_options(sgml_parse/2, 2,
137
+ [ call(oneof([begin,end,cdata,pi,decl,error,xmlns,urlns]),
138
+ callable),
139
+ cdata(oneof([atom,string])),
140
+ content_length(integer),
141
+ document(-any),
142
+ max_errors(integer),
143
+ parse(oneof([file,element,content,declaration,input])),
144
+ source(any),
145
+ syntax_errors(oneof([quiet,print,style])),
146
+ xml_no_ns(oneof([error,quiet]))
147
+ ]).
148
+ :- predicate_options(new_sgml_parser/2, 2,
149
+ [ dtd(any)
150
+ ]).
151
+
152
+
153
+ /** <module> SGML, XML and HTML parser
154
+
155
+ This library allows you to parse SGML, XML and HTML data into a Prolog
156
+ data structure. The library defines several families of predicates:
157
+
158
+ $ High-level predicates :
159
+ Most users will only use load_html/3, load_xml/3 or load_sgml/3 to
160
+ parse arbitrary input into a _DOM_ structure. These predicates all
161
+ call load_structure/3, which provides more options and may be
162
+ used for processing non-standard documents.
163
+
164
+ The DOM structure can be used by library(xpath) to extract information
165
+ from the document.
166
+
167
+ $ The low-level parser :
168
+ The actual parser is written in C and consists of two parts: one for
169
+ processing DTD (Document Type Definitions) and one for parsing data.
170
+ The data can either be parsed to a Prolog (_DOM_) term or the parser
171
+ can perform callbacks for the DOM _events_.
172
+
173
+ $ Utility predicates :
174
+ Finally, this library provides prmitives for classifying characters
175
+ and strings according to the XML specification such as xml_name/1 to
176
+ verify whether an atom is a valid XML name (identifier). It also
177
+ provides primitives to quote attributes and CDATA elements.
178
+ */
179
+
180
+ :- multifile user:file_search_path/2.
181
+ :- dynamic user:file_search_path/2.
182
+
183
+ user:file_search_path(dtd, library('DTD')).
184
+
185
+ sgml_register_catalog_file(File, Location) :-
186
+ prolog_to_os_filename(File, OsFile),
187
+ '_sgml_register_catalog_file'(OsFile, Location).
188
+
189
+ :- use_foreign_library(foreign(sgml2pl)).
190
+
191
+ register_catalog(Base) :-
192
+ absolute_file_name(dtd(Base), SocFile,
193
+ [ extensions([soc]),
194
+ access(read),
195
+ file_errors(fail)
196
+ ]),
197
+ sgml_register_catalog_file(SocFile, end).
198
+
199
+ :- initialization
200
+ ignore(register_catalog('HTML4')).
201
+
202
+
203
+ /*******************************
204
+ * DTD HANDLING *
205
+ *******************************/
206
+
207
+ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
208
+ Note that concurrent access to DTD objects is not allowed, and hence we
209
+ will allocate and destroy them in each thread. Possibibly it would be
210
+ nicer to find out why concurrent access to DTD's is flawed. It is
211
+ diagnosed to mess with the entity resolution by Fabien Todescato.
212
+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
213
+
214
+ :- thread_local
215
+ current_dtd/2.
216
+ :- volatile
217
+ current_dtd/2.
218
+ :- thread_local
219
+ registered_cleanup/0.
220
+ :- volatile
221
+ registered_cleanup/0.
222
+
223
+ :- multifile
224
+ dtd_alias/2.
225
+
226
+ :- create_prolog_flag(html_dialect, html5, [type(atom)]).
227
+
228
+ dtd_alias(html4, 'HTML4').
229
+ dtd_alias(html5, 'HTML5').
230
+ dtd_alias(html, DTD) :-
231
+ current_prolog_flag(html_dialect, Dialect),
232
+ dtd_alias(Dialect, DTD).
233
+
234
+ %! dtd(+Type, -DTD) is det.
235
+ %
236
+ % DTD is a DTD object created from the file dtd(Type). Loaded DTD
237
+ % objects are cached. Note that DTD objects may not be shared
238
+ % between threads. Therefore, dtd/2 maintains the pool of DTD
239
+ % objects using a thread_local predicate. DTD objects are
240
+ % destroyed if a thread terminates.
241
+ %
242
+ % @error existence_error(source_sink, dtd(Type))
243
+
244
+ dtd(Type, DTD) :-
245
+ current_dtd(Type, DTD),
246
+ !.
247
+ dtd(Type, DTD) :-
248
+ new_dtd(Type, DTD),
249
+ ( dtd_alias(Type, Base)
250
+ -> true
251
+ ; Base = Type
252
+ ),
253
+ absolute_file_name(dtd(Base),
254
+ [ extensions([dtd]),
255
+ access(read)
256
+ ], DtdFile),
257
+ load_dtd(DTD, DtdFile),
258
+ register_cleanup,
259
+ asserta(current_dtd(Type, DTD)).
260
+
261
+ %! load_dtd(+DTD, +DtdFile, +Options)
262
+ %
263
+ % Load DtdFile into a DTD. Defined options are:
264
+ %
265
+ % * dialect(+Dialect)
266
+ % Dialect to use (xml, xmlns, sgml)
267
+ %
268
+ % * encoding(+Encoding)
269
+ % Encoding of DTD file
270
+ %
271
+ % @param DTD is a fresh DTD object, normally created using
272
+ % new_dtd/1.
273
+
274
+ load_dtd(DTD, DtdFile) :-
275
+ load_dtd(DTD, DtdFile, []).
276
+ load_dtd(DTD, DtdFile, Options) :-
277
+ sgml_open_options(sgml:Options, OpenOptions, sgml:DTDOptions),
278
+ setup_call_cleanup(
279
+ open_dtd(DTD, DTDOptions, DtdOut),
280
+ setup_call_cleanup(
281
+ open(DtdFile, read, DtdIn, OpenOptions),
282
+ copy_stream_data(DtdIn, DtdOut),
283
+ close(DtdIn)),
284
+ close(DtdOut)).
285
+
286
+ %! destroy_dtds
287
+ %
288
+ % Destroy DTDs cached by this thread as they will become
289
+ % unreachable anyway.
290
+
291
+ destroy_dtds :-
292
+ ( current_dtd(_Type, DTD),
293
+ free_dtd(DTD),
294
+ fail
295
+ ; true
296
+ ).
297
+
298
+ %! register_cleanup
299
+ %
300
+ % Register cleanup of DTDs created for this thread.
301
+
302
+ register_cleanup :-
303
+ registered_cleanup,
304
+ !.
305
+ register_cleanup :-
306
+ ( thread_self(main)
307
+ -> at_halt(destroy_dtds)
308
+ ; current_prolog_flag(threads, true)
309
+ -> prolog_listen(this_thread_exit, destroy_dtds)
310
+ ; true
311
+ ),
312
+ assert(registered_cleanup).
313
+
314
+
315
+ /*******************************
316
+ * EXAMINE DTD *
317
+ *******************************/
318
+
319
+ prop(doctype(_), _).
320
+ prop(elements(_), _).
321
+ prop(entities(_), _).
322
+ prop(notations(_), _).
323
+ prop(entity(E, _), DTD) :-
324
+ ( nonvar(E)
325
+ -> true
326
+ ; '$dtd_property'(DTD, entities(EL)),
327
+ member(E, EL)
328
+ ).
329
+ prop(element(E, _, _), DTD) :-
330
+ ( nonvar(E)
331
+ -> true
332
+ ; '$dtd_property'(DTD, elements(EL)),
333
+ member(E, EL)
334
+ ).
335
+ prop(attributes(E, _), DTD) :-
336
+ ( nonvar(E)
337
+ -> true
338
+ ; '$dtd_property'(DTD, elements(EL)),
339
+ member(E, EL)
340
+ ).
341
+ prop(attribute(E, A, _, _), DTD) :-
342
+ ( nonvar(E)
343
+ -> true
344
+ ; '$dtd_property'(DTD, elements(EL)),
345
+ member(E, EL)
346
+ ),
347
+ ( nonvar(A)
348
+ -> true
349
+ ; '$dtd_property'(DTD, attributes(E, AL)),
350
+ member(A, AL)
351
+ ).
352
+ prop(notation(N, _), DTD) :-
353
+ ( nonvar(N)
354
+ -> true
355
+ ; '$dtd_property'(DTD, notations(NL)),
356
+ member(N, NL)
357
+ ).
358
+
359
+ dtd_property(DTD, Prop) :-
360
+ prop(Prop, DTD),
361
+ '$dtd_property'(DTD, Prop).
362
+
363
+
364
+ /*******************************
365
+ * SGML *
366
+ *******************************/
367
+
368
+ %! load_structure(+Source, -ListOfContent, :Options) is det.
369
+ %
370
+ % Parse Source and return the resulting structure in
371
+ % ListOfContent. Source is handed to open_any/5, which allows for
372
+ % processing an extensible set of input sources.
373
+ %
374
+ % A proper XML document contains only a single toplevel element
375
+ % whose name matches the document type. Nevertheless, a list is
376
+ % returned for consistency with the representation of element
377
+ % content.
378
+ %
379
+ % The encoding(+Encoding) option is treated special for
380
+ % compatibility reasons:
381
+ %
382
+ % - If `Encoding` is one of =iso-8859-1=, =us-ascii= or =utf-8=,
383
+ % the stream is opened in binary mode and the option is passed
384
+ % to the SGML parser.
385
+ % - If `Encoding` is present, but not one of the above, the
386
+ % stream is opened in text mode using the given encoding.
387
+ % - Otherwise (no `Encoding`), the stream is opened in binary
388
+ % mode and doing the correct decoding is left to the parser.
389
+
390
+ load_structure(Spec, DOM, Options) :-
391
+ sgml_open_options(Options, OpenOptions, SGMLOptions),
392
+ setup_call_cleanup(
393
+ open_any(Spec, read, In, Close, OpenOptions),
394
+ load_structure_from_stream(In, DOM, SGMLOptions),
395
+ close_any(Close)).
396
+
397
+ sgml_open_options(Options, OpenOptions, SGMLOptions) :-
398
+ Options = M:Plain,
399
+ ( select_option(encoding(Encoding), Plain, NoEnc)
400
+ -> ( sgml_encoding(Encoding)
401
+ -> merge_options(NoEnc, [type(binary)], OpenOptions),
402
+ SGMLOptions = Options
403
+ ; OpenOptions = Plain,
404
+ SGMLOptions = M:NoEnc
405
+ )
406
+ ; merge_options(Plain, [type(binary)], OpenOptions),
407
+ SGMLOptions = Options
408
+ ).
409
+
410
+ sgml_encoding(Enc) :-
411
+ downcase_atom(Enc, Enc1),
412
+ sgml_encoding_l(Enc1).
413
+
414
+ sgml_encoding_l('iso-8859-1').
415
+ sgml_encoding_l('us-ascii').
416
+ sgml_encoding_l('utf-8').
417
+ sgml_encoding_l('utf8').
418
+ sgml_encoding_l('iso_latin_1').
419
+ sgml_encoding_l('ascii').
420
+
421
+ load_structure_from_stream(In, Term, M:Options) :-
422
+ ( select_option(dtd(DTD), Options, Options1)
423
+ -> ExplicitDTD = true
424
+ ; ExplicitDTD = false,
425
+ Options1 = Options
426
+ ),
427
+ move_front(Options1, dialect(_), Options2), % dialect sets defaults
428
+ setup_call_cleanup(
429
+ new_sgml_parser(Parser,
430
+ [ dtd(DTD)
431
+ ]),
432
+ parse(Parser, M:Options2, TermRead, In),
433
+ free_sgml_parser(Parser)),
434
+ ( ExplicitDTD == true
435
+ -> ( DTD = dtd(_, DocType),
436
+ dtd_property(DTD, doctype(DocType))
437
+ -> true
438
+ ; true
439
+ )
440
+ ; free_dtd(DTD)
441
+ ),
442
+ Term = TermRead.
443
+
444
+ move_front(Options0, Opt, Options) :-
445
+ selectchk(Opt, Options0, Options1),
446
+ !,
447
+ Options = [Opt|Options1].
448
+ move_front(Options, _, Options).
449
+
450
+
451
+ parse(Parser, M:Options, Document, In) :-
452
+ set_parser_options(Options, Parser, In, Options1),
453
+ parser_meta_options(Options1, M, Options2),
454
+ set_input_location(Parser, In),
455
+ sgml_parse(Parser,
456
+ [ document(Document),
457
+ source(In)
458
+ | Options2
459
+ ]).
460
+
461
+ set_parser_options([], _, _, []).
462
+ set_parser_options([H|T], Parser, In, Rest) :-
463
+ ( set_parser_option(H, Parser, In)
464
+ -> set_parser_options(T, Parser, In, Rest)
465
+ ; Rest = [H|R2],
466
+ set_parser_options(T, Parser, In, R2)
467
+ ).
468
+
469
+ set_parser_option(Var, _Parser, _In) :-
470
+ var(Var),
471
+ !,
472
+ instantiation_error(Var).
473
+ set_parser_option(Option, Parser, _) :-
474
+ def_entity(Option, Parser),
475
+ !.
476
+ set_parser_option(offset(Offset), _Parser, In) :-
477
+ !,
478
+ seek(In, Offset, bof, _).
479
+ set_parser_option(Option, Parser, _In) :-
480
+ parser_option(Option),
481
+ !,
482
+ set_sgml_parser(Parser, Option).
483
+ set_parser_option(Name=Value, Parser, In) :-
484
+ Option =.. [Name,Value],
485
+ set_parser_option(Option, Parser, In).
486
+
487
+
488
+ parser_option(dialect(_)).
489
+ parser_option(shorttag(_)).
490
+ parser_option(case_sensitive_attributes(_)).
491
+ parser_option(case_preserving_attributes(_)).
492
+ parser_option(system_entities(_)).
493
+ parser_option(max_memory(_)).
494
+ parser_option(ignore_doctype(_)).
495
+ parser_option(file(_)).
496
+ parser_option(line(_)).
497
+ parser_option(space(_)).
498
+ parser_option(number(_)).
499
+ parser_option(defaults(_)).
500
+ parser_option(doctype(_)).
501
+ parser_option(qualify_attributes(_)).
502
+ parser_option(encoding(_)).
503
+ parser_option(keep_prefix(_)).
504
+
505
+
506
+ def_entity(entity(Name, Value), Parser) :-
507
+ get_sgml_parser(Parser, dtd(DTD)),
508
+ xml_quote_attribute(Value, QValue),
509
+ setup_call_cleanup(open_dtd(DTD, [], Stream),
510
+ format(Stream, '<!ENTITY ~w "~w">~n',
511
+ [Name, QValue]),
512
+ close(Stream)).
513
+ def_entity(xmlns(URI), Parser) :-
514
+ set_sgml_parser(Parser, xmlns(URI)).
515
+ def_entity(xmlns(NS, URI), Parser) :-
516
+ set_sgml_parser(Parser, xmlns(NS, URI)).
517
+
518
+ %! parser_meta_options(+Options0, +Module, -Options)
519
+ %
520
+ % Qualify meta-calling options to the parser.
521
+
522
+ parser_meta_options([], _, []).
523
+ parser_meta_options([call(When, Closure)|T0], M, [call(When, M:Closure)|T]) :-
524
+ !,
525
+ parser_meta_options(T0, M, T).
526
+ parser_meta_options([H|T0], M, [H|T]) :-
527
+ parser_meta_options(T0, M, T).
528
+
529
+
530
+ %! set_input_location(+Parser, +In:stream) is det.
531
+ %
532
+ % Set the input location if this was not set explicitly
533
+
534
+ set_input_location(Parser, _In) :-
535
+ get_sgml_parser(Parser, file(_)),
536
+ !.
537
+ set_input_location(Parser, In) :-
538
+ stream_property(In, file_name(File)),
539
+ !,
540
+ set_sgml_parser(Parser, file(File)),
541
+ stream_property(In, position(Pos)),
542
+ set_sgml_parser(Parser, position(Pos)).
543
+ set_input_location(_, _).
544
+
545
+ /*******************************
546
+ * UTILITIES *
547
+ *******************************/
548
+
549
+ %! load_sgml_file(+File, -DOM) is det.
550
+ %
551
+ % Load SGML from File and unify the resulting DOM structure with
552
+ % DOM.
553
+ %
554
+ % @deprecated New code should use load_sgml/3.
555
+
556
+ load_sgml_file(File, Term) :-
557
+ load_sgml(File, Term, []).
558
+
559
+ %! load_xml_file(+File, -DOM) is det.
560
+ %
561
+ % Load XML from File and unify the resulting DOM structure with
562
+ % DOM.
563
+ %
564
+ % @deprecated New code should use load_xml/3.
565
+
566
+ load_xml_file(File, Term) :-
567
+ load_xml(File, Term, []).
568
+
569
+ %! load_html_file(+File, -DOM) is det.
570
+ %
571
+ % Load HTML from File and unify the resulting DOM structure with
572
+ % DOM.
573
+ %
574
+ % @deprecated New code should use load_html/3.
575
+
576
+ load_html_file(File, DOM) :-
577
+ load_html(File, DOM, []).
578
+
579
+ %! load_html(+Input, -DOM, +Options) is det.
580
+ %
581
+ % Load HTML text from Input and unify the resulting DOM structure
582
+ % with DOM. Options are passed to load_structure/3, after adding
583
+ % the following default options:
584
+ %
585
+ % - dtd(DTD)
586
+ % Pass the DTD for HTML as obtained using dtd(html, DTD).
587
+ % - dialect(Dialect)
588
+ % Current dialect from the Prolog flag =html_dialect=
589
+ % - max_errors(-1)
590
+ % - syntax_errors(quiet)
591
+ % Most HTML encountered in the wild contains errors. Even in the
592
+ % context of errors, the resulting DOM term is often a
593
+ % reasonable guess at the intent of the author.
594
+ %
595
+ % You may also want to use the library(http/http_open) to support
596
+ % loading from HTTP and HTTPS URLs. For example:
597
+ %
598
+ % ==
599
+ % :- use_module(library(http/http_open)).
600
+ % :- use_module(library(sgml)).
601
+ %
602
+ % load_html_url(URL, DOM) :-
603
+ % load_html(URL, DOM, []).
604
+ % ==
605
+
606
+ load_html(File, Term, M:Options) :-
607
+ current_prolog_flag(html_dialect, Dialect),
608
+ dtd(Dialect, DTD),
609
+ merge_options(Options,
610
+ [ dtd(DTD),
611
+ dialect(Dialect),
612
+ max_errors(-1),
613
+ syntax_errors(quiet)
614
+ ], Options1),
615
+ load_structure(File, Term, M:Options1).
616
+
617
+ %! load_xml(+Input, -DOM, +Options) is det.
618
+ %
619
+ % Load XML text from Input and unify the resulting DOM structure
620
+ % with DOM. Options are passed to load_structure/3, after adding
621
+ % the following default options:
622
+ %
623
+ % - dialect(xml)
624
+
625
+ load_xml(Input, DOM, M:Options) :-
626
+ merge_options(Options,
627
+ [ dialect(xml)
628
+ ], Options1),
629
+ load_structure(Input, DOM, M:Options1).
630
+
631
+ %! load_sgml(+Input, -DOM, +Options) is det.
632
+ %
633
+ % Load SGML text from Input and unify the resulting DOM structure
634
+ % with DOM. Options are passed to load_structure/3, after adding
635
+ % the following default options:
636
+ %
637
+ % - dialect(sgml)
638
+
639
+ load_sgml(Input, DOM, M:Options) :-
640
+ merge_options(Options,
641
+ [ dialect(sgml)
642
+ ], Options1),
643
+ load_structure(Input, DOM, M:Options1).
644
+
645
+
646
+
647
+ /*******************************
648
+ * ENCODING *
649
+ *******************************/
650
+
651
+ %! xml_quote_attribute(+In, -Quoted) is det.
652
+ %! xml_quote_cdata(+In, -Quoted) is det.
653
+ %
654
+ % Backward compatibility for versions that allow to specify
655
+ % encoding. All characters that cannot fit the encoding are mapped
656
+ % to XML character entities (&#dd;). Using ASCII is the safest
657
+ % value.
658
+
659
+ xml_quote_attribute(In, Quoted) :-
660
+ xml_quote_attribute(In, Quoted, ascii).
661
+
662
+ xml_quote_cdata(In, Quoted) :-
663
+ xml_quote_cdata(In, Quoted, ascii).
664
+
665
+ %! xml_name(+Atom) is semidet.
666
+ %
667
+ % True if Atom is a valid XML name.
668
+
669
+ xml_name(In) :-
670
+ xml_name(In, ascii).
671
+
672
+
673
+ /*******************************
674
+ * XML CHARACTER CLASSES *
675
+ *******************************/
676
+
677
+ %! xml_basechar(+CodeOrChar) is semidet.
678
+ %! xml_ideographic(+CodeOrChar) is semidet.
679
+ %! xml_combining_char(+CodeOrChar) is semidet.
680
+ %! xml_digit(+CodeOrChar) is semidet.
681
+ %! xml_extender(+CodeOrChar) is semidet.
682
+ %
683
+ % XML character classification predicates. Each of these
684
+ % predicates accept both a character (one-character atom) and a
685
+ % code (integer).
686
+ %
687
+ % @see http://www.w3.org/TR/2006/REC-xml-20060816
688
+
689
+
690
+ /*******************************
691
+ * TYPE CHECKING *
692
+ *******************************/
693
+
694
+ %! xml_is_dom(@Term) is semidet.
695
+ %
696
+ % True if term statisfies the structure as returned by
697
+ % load_structure/3 and friends.
698
+
699
+ xml_is_dom(0) :- !, fail. % catch variables
700
+ xml_is_dom(List) :-
701
+ is_list(List),
702
+ !,
703
+ xml_is_content_list(List).
704
+ xml_is_dom(Term) :-
705
+ xml_is_element(Term).
706
+
707
+ xml_is_content_list([]).
708
+ xml_is_content_list([H|T]) :-
709
+ xml_is_content(H),
710
+ xml_is_content_list(T).
711
+
712
+ xml_is_content(0) :- !, fail.
713
+ xml_is_content(pi(Pi)) :-
714
+ !,
715
+ atom(Pi).
716
+ xml_is_content(CDATA) :-
717
+ atom(CDATA),
718
+ !.
719
+ xml_is_content(CDATA) :-
720
+ string(CDATA),
721
+ !.
722
+ xml_is_content(Term) :-
723
+ xml_is_element(Term).
724
+
725
+ xml_is_element(element(Name, Attributes, Content)) :-
726
+ dom_name(Name),
727
+ dom_attributes(Attributes),
728
+ xml_is_content_list(Content).
729
+
730
+ dom_name(NS:Local) :-
731
+ atom(NS),
732
+ atom(Local),
733
+ !.
734
+ dom_name(Local) :-
735
+ atom(Local).
736
+
737
+ dom_attributes(0) :- !, fail.
738
+ dom_attributes([]).
739
+ dom_attributes([H|T]) :-
740
+ dom_attribute(H),
741
+ dom_attributes(T).
742
+
743
+ dom_attribute(Name=Value) :-
744
+ dom_name(Name),
745
+ atomic(Value).
746
+
747
+
748
+ /*******************************
749
+ * MESSAGES *
750
+ *******************************/
751
+ :- multifile
752
+ prolog:message/3.
753
+
754
+ % Catch messages. sgml/4 is generated by the SGML2PL binding.
755
+
756
+ prolog:message(sgml(Parser, File, Line, Message)) -->
757
+ { get_sgml_parser(Parser, dialect(Dialect))
758
+ },
759
+ [ 'SGML2PL(~w): ~w:~w: ~w'-[Dialect, File, Line, Message] ].
760
+
761
+
762
+ /*******************************
763
+ * XREF SUPPORT *
764
+ *******************************/
765
+
766
+ :- multifile
767
+ prolog:called_by/2.
768
+
769
+ prolog:called_by(sgml_parse(_, Options), Called) :-
770
+ findall(Meta, meta_call_term(_, Meta, Options), Called).
771
+
772
+ meta_call_term(T, G+N, Options) :-
773
+ T = call(Event, G),
774
+ pmember(T, Options),
775
+ call_params(Event, Term),
776
+ functor(Term, _, N).
777
+
778
+ pmember(X, List) :- % member for partial lists
779
+ nonvar(List),
780
+ List = [H|T],
781
+ ( X = H
782
+ ; pmember(X, T)
783
+ ).
784
+
785
+ call_params(begin, begin(tag,attributes,parser)).
786
+ call_params(end, end(tag,parser)).
787
+ call_params(cdata, cdata(cdata,parser)).
788
+ call_params(pi, pi(cdata,parser)).
789
+ call_params(decl, decl(cdata,parser)).
790
+ call_params(error, error(severity,message,parser)).
791
+ call_params(xmlns, xmlns(namespace,url,parser)).
792
+ call_params(urlns, urlns(url,url,parser)).
793
+
794
+ /*******************************
795
+ * SANDBOX *
796
+ *******************************/
797
+
798
+ :- multifile
799
+ sandbox:safe_primitive/1,
800
+ sandbox:safe_meta_predicate/1.
801
+
802
+ sandbox:safe_meta_predicate(sgml:load_structure/3).
803
+ sandbox:safe_primitive(sgml:dtd(Dialect, _)) :-
804
+ dtd_alias(Dialect, _).
805
+ sandbox:safe_primitive(sgml:xml_quote_attribute(_,_,_)).
806
+ sandbox:safe_primitive(sgml:xml_quote_cdata(_,_,_)).
807
+ sandbox:safe_primitive(sgml:xml_name(_,_)).
808
+ sandbox:safe_primitive(sgml:xml_basechar(_)).
809
+ sandbox:safe_primitive(sgml:xml_ideographic(_)).
810
+ sandbox:safe_primitive(sgml:xml_combining_char(_)).
811
+ sandbox:safe_primitive(sgml:xml_digit(_)).
812
+ sandbox:safe_primitive(sgml:xml_extender(_)).
813
+ sandbox:safe_primitive(sgml:iri_xml_namespace(_,_,_)).
814
+ sandbox:safe_primitive(sgml:xsd_number_string(_,_)).
815
+ sandbox:safe_primitive(sgml:xsd_time_string(_,_,_)).