datahike 0.7.1630

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 (282) hide show
  1. package/README.md +226 -0
  2. package/cljs.analyzer.api.js +427 -0
  3. package/cljs.analyzer.api.js.map +1 -0
  4. package/cljs.analyzer.impl.js +86 -0
  5. package/cljs.analyzer.impl.js.map +1 -0
  6. package/cljs.analyzer.impl.namespaces.js +219 -0
  7. package/cljs.analyzer.impl.namespaces.js.map +1 -0
  8. package/cljs.analyzer.js +7186 -0
  9. package/cljs.analyzer.js.map +1 -0
  10. package/cljs.analyzer.passes.and_or.js +141 -0
  11. package/cljs.analyzer.passes.and_or.js.map +1 -0
  12. package/cljs.analyzer.passes.js +104 -0
  13. package/cljs.analyzer.passes.js.map +1 -0
  14. package/cljs.cache.js +1145 -0
  15. package/cljs.cache.js.map +1 -0
  16. package/cljs.cache.wrapped.js +352 -0
  17. package/cljs.cache.wrapped.js.map +1 -0
  18. package/cljs.core.async.impl.buffers.js +489 -0
  19. package/cljs.core.async.impl.buffers.js.map +1 -0
  20. package/cljs.core.async.impl.channels.js +711 -0
  21. package/cljs.core.async.impl.channels.js.map +1 -0
  22. package/cljs.core.async.impl.dispatch.js +81 -0
  23. package/cljs.core.async.impl.dispatch.js.map +1 -0
  24. package/cljs.core.async.impl.ioc_helpers.js +192 -0
  25. package/cljs.core.async.impl.ioc_helpers.js.map +1 -0
  26. package/cljs.core.async.impl.protocols.js +368 -0
  27. package/cljs.core.async.impl.protocols.js.map +1 -0
  28. package/cljs.core.async.impl.timers.js +510 -0
  29. package/cljs.core.async.impl.timers.js.map +1 -0
  30. package/cljs.core.async.js +8813 -0
  31. package/cljs.core.async.js.map +1 -0
  32. package/cljs.core.js +38764 -0
  33. package/cljs.core.js.map +1 -0
  34. package/cljs.env.js +60 -0
  35. package/cljs.env.js.map +1 -0
  36. package/cljs.nodejs.js +80 -0
  37. package/cljs.nodejs.js.map +1 -0
  38. package/cljs.reader.js +462 -0
  39. package/cljs.reader.js.map +1 -0
  40. package/cljs.spec.alpha.js +5312 -0
  41. package/cljs.spec.alpha.js.map +1 -0
  42. package/cljs.spec.gen.alpha.js +2020 -0
  43. package/cljs.spec.gen.alpha.js.map +1 -0
  44. package/cljs.tagged_literals.js +103 -0
  45. package/cljs.tagged_literals.js.map +1 -0
  46. package/cljs.tools.reader.edn.js +960 -0
  47. package/cljs.tools.reader.edn.js.map +1 -0
  48. package/cljs.tools.reader.impl.commons.js +217 -0
  49. package/cljs.tools.reader.impl.commons.js.map +1 -0
  50. package/cljs.tools.reader.impl.errors.js +441 -0
  51. package/cljs.tools.reader.impl.errors.js.map +1 -0
  52. package/cljs.tools.reader.impl.inspect.js +182 -0
  53. package/cljs.tools.reader.impl.inspect.js.map +1 -0
  54. package/cljs.tools.reader.impl.utils.js +429 -0
  55. package/cljs.tools.reader.impl.utils.js.map +1 -0
  56. package/cljs.tools.reader.js +1830 -0
  57. package/cljs.tools.reader.js.map +1 -0
  58. package/cljs.tools.reader.reader_types.js +838 -0
  59. package/cljs.tools.reader.reader_types.js.map +1 -0
  60. package/cljs_env.js +18192 -0
  61. package/cljs_node_io.core.js +1278 -0
  62. package/cljs_node_io.core.js.map +1 -0
  63. package/cljs_node_io.file.js +918 -0
  64. package/cljs_node_io.file.js.map +1 -0
  65. package/cljs_node_io.fs.js +3911 -0
  66. package/cljs_node_io.fs.js.map +1 -0
  67. package/clojure.data.js +319 -0
  68. package/clojure.data.js.map +1 -0
  69. package/clojure.edn.js +119 -0
  70. package/clojure.edn.js.map +1 -0
  71. package/clojure.set.js +406 -0
  72. package/clojure.set.js.map +1 -0
  73. package/clojure.string.js +502 -0
  74. package/clojure.string.js.map +1 -0
  75. package/clojure.walk.js +156 -0
  76. package/clojure.walk.js.map +1 -0
  77. package/datahike.api.impl.js +621 -0
  78. package/datahike.api.impl.js.map +1 -0
  79. package/datahike.api.specification.js +85 -0
  80. package/datahike.api.specification.js.map +1 -0
  81. package/datahike.array.js +275 -0
  82. package/datahike.array.js.map +1 -0
  83. package/datahike.config.js +437 -0
  84. package/datahike.config.js.map +1 -0
  85. package/datahike.connections.js +55 -0
  86. package/datahike.connections.js.map +1 -0
  87. package/datahike.connector.js +1248 -0
  88. package/datahike.connector.js.map +1 -0
  89. package/datahike.constants.js +66 -0
  90. package/datahike.constants.js.map +1 -0
  91. package/datahike.core.js +628 -0
  92. package/datahike.core.js.map +1 -0
  93. package/datahike.datom.js +963 -0
  94. package/datahike.datom.js.map +1 -0
  95. package/datahike.db.interface.js +819 -0
  96. package/datahike.db.interface.js.map +1 -0
  97. package/datahike.db.js +3095 -0
  98. package/datahike.db.js.map +1 -0
  99. package/datahike.db.search.js +1004 -0
  100. package/datahike.db.search.js.map +1 -0
  101. package/datahike.db.transaction.js +1904 -0
  102. package/datahike.db.transaction.js.map +1 -0
  103. package/datahike.db.utils.js +642 -0
  104. package/datahike.db.utils.js.map +1 -0
  105. package/datahike.gc.js +1618 -0
  106. package/datahike.gc.js.map +1 -0
  107. package/datahike.impl.entity.js +604 -0
  108. package/datahike.impl.entity.js.map +1 -0
  109. package/datahike.index.interface.js +484 -0
  110. package/datahike.index.interface.js.map +1 -0
  111. package/datahike.index.js +50 -0
  112. package/datahike.index.js.map +1 -0
  113. package/datahike.index.persistent_set.js +1250 -0
  114. package/datahike.index.persistent_set.js.map +1 -0
  115. package/datahike.js.api.js +2211 -0
  116. package/datahike.js.api.js.map +1 -0
  117. package/datahike.lru.js +404 -0
  118. package/datahike.lru.js.map +1 -0
  119. package/datahike.pull_api.js +533 -0
  120. package/datahike.pull_api.js.map +1 -0
  121. package/datahike.query.js +11891 -0
  122. package/datahike.query.js.map +1 -0
  123. package/datahike.query_stats.js +152 -0
  124. package/datahike.query_stats.js.map +1 -0
  125. package/datahike.readers.js +166 -0
  126. package/datahike.readers.js.map +1 -0
  127. package/datahike.schema.js +251 -0
  128. package/datahike.schema.js.map +1 -0
  129. package/datahike.schema_cache.js +66 -0
  130. package/datahike.schema_cache.js.map +1 -0
  131. package/datahike.spec.js +70 -0
  132. package/datahike.spec.js.map +1 -0
  133. package/datahike.store.js +514 -0
  134. package/datahike.store.js.map +1 -0
  135. package/datahike.tools.js +436 -0
  136. package/datahike.tools.js.map +1 -0
  137. package/datahike.writer.js +3463 -0
  138. package/datahike.writer.js.map +1 -0
  139. package/datahike.writing.js +3168 -0
  140. package/datahike.writing.js.map +1 -0
  141. package/datalog.parser.impl.js +1421 -0
  142. package/datalog.parser.impl.js.map +1 -0
  143. package/datalog.parser.impl.proto.js +213 -0
  144. package/datalog.parser.impl.proto.js.map +1 -0
  145. package/datalog.parser.impl.util.js +117 -0
  146. package/datalog.parser.impl.util.js.map +1 -0
  147. package/datalog.parser.js +47 -0
  148. package/datalog.parser.js.map +1 -0
  149. package/datalog.parser.pull.js +2603 -0
  150. package/datalog.parser.pull.js.map +1 -0
  151. package/datalog.parser.type.js +7502 -0
  152. package/datalog.parser.type.js.map +1 -0
  153. package/datalog.parser.util.js +60 -0
  154. package/datalog.parser.util.js.map +1 -0
  155. package/environ.core.js +263 -0
  156. package/environ.core.js.map +1 -0
  157. package/fress.api.js +607 -0
  158. package/fress.api.js.map +1 -0
  159. package/fress.impl.adler32.js +435 -0
  160. package/fress.impl.adler32.js.map +1 -0
  161. package/fress.impl.bigint.js +185 -0
  162. package/fress.impl.bigint.js.map +1 -0
  163. package/fress.impl.buffer.js +1087 -0
  164. package/fress.impl.buffer.js.map +1 -0
  165. package/fress.impl.codes.js +105 -0
  166. package/fress.impl.codes.js.map +1 -0
  167. package/fress.impl.hopmap.js +603 -0
  168. package/fress.impl.hopmap.js.map +1 -0
  169. package/fress.impl.ranges.js +49 -0
  170. package/fress.impl.ranges.js.map +1 -0
  171. package/fress.impl.raw_input.js +837 -0
  172. package/fress.impl.raw_input.js.map +1 -0
  173. package/fress.impl.raw_output.js +653 -0
  174. package/fress.impl.raw_output.js.map +1 -0
  175. package/fress.impl.table.js +133 -0
  176. package/fress.impl.table.js.map +1 -0
  177. package/fress.reader.js +2312 -0
  178. package/fress.reader.js.map +1 -0
  179. package/fress.util.js +458 -0
  180. package/fress.util.js.map +1 -0
  181. package/fress.writer.js +2141 -0
  182. package/fress.writer.js.map +1 -0
  183. package/geheimnis.aes.js +132 -0
  184. package/geheimnis.aes.js.map +1 -0
  185. package/hasch.base64.js +42 -0
  186. package/hasch.base64.js.map +1 -0
  187. package/hasch.benc.js +201 -0
  188. package/hasch.benc.js.map +1 -0
  189. package/hasch.core.js +188 -0
  190. package/hasch.core.js.map +1 -0
  191. package/hasch.platform.js +221 -0
  192. package/hasch.platform.js.map +1 -0
  193. package/incognito.base.js +276 -0
  194. package/incognito.base.js.map +1 -0
  195. package/incognito.edn.js +54 -0
  196. package/incognito.edn.js.map +1 -0
  197. package/incognito.fressian.js +330 -0
  198. package/incognito.fressian.js.map +1 -0
  199. package/index.d.ts +660 -0
  200. package/is.simm.partial_cps.async.js +142 -0
  201. package/is.simm.partial_cps.async.js.map +1 -0
  202. package/is.simm.partial_cps.runtime.js +65 -0
  203. package/is.simm.partial_cps.runtime.js.map +1 -0
  204. package/is.simm.partial_cps.sequence.js +1255 -0
  205. package/is.simm.partial_cps.sequence.js.map +1 -0
  206. package/konserve.cache.js +2519 -0
  207. package/konserve.cache.js.map +1 -0
  208. package/konserve.compressor.js +502 -0
  209. package/konserve.compressor.js.map +1 -0
  210. package/konserve.core.js +8052 -0
  211. package/konserve.core.js.map +1 -0
  212. package/konserve.encryptor.js +553 -0
  213. package/konserve.encryptor.js.map +1 -0
  214. package/konserve.gc.js +541 -0
  215. package/konserve.gc.js.map +1 -0
  216. package/konserve.impl.defaults.js +8290 -0
  217. package/konserve.impl.defaults.js.map +1 -0
  218. package/konserve.impl.storage_layout.js +849 -0
  219. package/konserve.impl.storage_layout.js.map +1 -0
  220. package/konserve.memory.js +2102 -0
  221. package/konserve.memory.js.map +1 -0
  222. package/konserve.node_filestore.js +2951 -0
  223. package/konserve.node_filestore.js.map +1 -0
  224. package/konserve.protocols.js +590 -0
  225. package/konserve.protocols.js.map +1 -0
  226. package/konserve.serializers.js +562 -0
  227. package/konserve.serializers.js.map +1 -0
  228. package/konserve.store.js +2245 -0
  229. package/konserve.store.js.map +1 -0
  230. package/konserve.tiered.js +9574 -0
  231. package/konserve.tiered.js.map +1 -0
  232. package/konserve.utils.js +180 -0
  233. package/konserve.utils.js.map +1 -0
  234. package/me.tonsky.persistent_sorted_set.arrays.js +66 -0
  235. package/me.tonsky.persistent_sorted_set.arrays.js.map +1 -0
  236. package/me.tonsky.persistent_sorted_set.branch.js +2779 -0
  237. package/me.tonsky.persistent_sorted_set.branch.js.map +1 -0
  238. package/me.tonsky.persistent_sorted_set.btset.js +14196 -0
  239. package/me.tonsky.persistent_sorted_set.btset.js.map +1 -0
  240. package/me.tonsky.persistent_sorted_set.impl.node.js +324 -0
  241. package/me.tonsky.persistent_sorted_set.impl.node.js.map +1 -0
  242. package/me.tonsky.persistent_sorted_set.impl.storage.js +123 -0
  243. package/me.tonsky.persistent_sorted_set.impl.storage.js.map +1 -0
  244. package/me.tonsky.persistent_sorted_set.js +890 -0
  245. package/me.tonsky.persistent_sorted_set.js.map +1 -0
  246. package/me.tonsky.persistent_sorted_set.leaf.js +561 -0
  247. package/me.tonsky.persistent_sorted_set.leaf.js.map +1 -0
  248. package/me.tonsky.persistent_sorted_set.util.js +402 -0
  249. package/me.tonsky.persistent_sorted_set.util.js.map +1 -0
  250. package/medley.core.js +1857 -0
  251. package/medley.core.js.map +1 -0
  252. package/package.json +38 -0
  253. package/spec_tools.core.js +1925 -0
  254. package/spec_tools.core.js.map +1 -0
  255. package/spec_tools.data_spec.js +1291 -0
  256. package/spec_tools.data_spec.js.map +1 -0
  257. package/spec_tools.form.js +185 -0
  258. package/spec_tools.form.js.map +1 -0
  259. package/spec_tools.impl.js +362 -0
  260. package/spec_tools.impl.js.map +1 -0
  261. package/spec_tools.parse.js +427 -0
  262. package/spec_tools.parse.js.map +1 -0
  263. package/spec_tools.transform.js +288 -0
  264. package/spec_tools.transform.js.map +1 -0
  265. package/superv.async.js +8617 -0
  266. package/superv.async.js.map +1 -0
  267. package/tailrecursion.priority_map.js +994 -0
  268. package/tailrecursion.priority_map.js.map +1 -0
  269. package/taoensso.encore.js +12385 -0
  270. package/taoensso.encore.js.map +1 -0
  271. package/taoensso.timbre.appenders.core.js +239 -0
  272. package/taoensso.timbre.appenders.core.js.map +1 -0
  273. package/taoensso.timbre.js +1264 -0
  274. package/taoensso.timbre.js.map +1 -0
  275. package/taoensso.truss.impl.js +442 -0
  276. package/taoensso.truss.impl.js.map +1 -0
  277. package/taoensso.truss.js +743 -0
  278. package/taoensso.truss.js.map +1 -0
  279. package/test-config-keys.js +33 -0
  280. package/test-final.js +36 -0
  281. package/test-key-duplication.js +67 -0
  282. package/test.js +557 -0
@@ -0,0 +1,1421 @@
1
+ var $CLJS = require("./cljs_env");
2
+ var $jscomp = $CLJS.$jscomp;
3
+ var COMPILED = false;
4
+ require("./cljs.core.js");
5
+ require("./clojure.set.js");
6
+ require("./datalog.parser.type.js");
7
+ require("./datalog.parser.impl.proto.js");
8
+ require("./datalog.parser.impl.util.js");
9
+ var environ=$CLJS.environ || ($CLJS.environ = {});
10
+ var fress=$CLJS.fress || ($CLJS.fress = {});
11
+ var datahike=$CLJS.datahike || ($CLJS.datahike = {});
12
+ var clojure=$CLJS.clojure || ($CLJS.clojure = {});
13
+ var hasch=$CLJS.hasch || ($CLJS.hasch = {});
14
+ var tailrecursion=$CLJS.tailrecursion || ($CLJS.tailrecursion = {});
15
+ var superv=$CLJS.superv || ($CLJS.superv = {});
16
+ var geheimnis=$CLJS.geheimnis || ($CLJS.geheimnis = {});
17
+ var is=$CLJS.is || ($CLJS.is = {});
18
+ var cljs=$CLJS.cljs || ($CLJS.cljs = {});
19
+ var cljs_node_io=$CLJS.cljs_node_io || ($CLJS.cljs_node_io = {});
20
+ var goog=$CLJS.goog || ($CLJS.goog = {});
21
+ var konserve=$CLJS.konserve || ($CLJS.konserve = {});
22
+ var datalog=$CLJS.datalog || ($CLJS.datalog = {});
23
+ var spec_tools=$CLJS.spec_tools || ($CLJS.spec_tools = {});
24
+ var taoensso=$CLJS.taoensso || ($CLJS.taoensso = {});
25
+ var incognito=$CLJS.incognito || ($CLJS.incognito = {});
26
+ var medley=$CLJS.medley || ($CLJS.medley = {});
27
+ var me=$CLJS.me || ($CLJS.me = {});
28
+
29
+ $CLJS.SHADOW_ENV.setLoaded("datalog.parser.impl.js");
30
+
31
+ goog.provide('datalog.parser.impl');
32
+
33
+
34
+ datalog.parser.impl.of_size_QMARK_ = (function datalog$parser$impl$of_size_QMARK_(form,size){
35
+ return ((cljs.core.sequential_QMARK_(form)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(form),size)));
36
+ });
37
+ datalog.parser.impl.parse_seq = (function datalog$parser$impl$parse_seq(parse_el,form){
38
+ if(cljs.core.sequential_QMARK_(form)){
39
+ return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function datalog$parser$impl$parse_seq_$_item_parser(acc,el){
40
+ var temp__5802__auto__ = (parse_el.cljs$core$IFn$_invoke$arity$1 ? parse_el.cljs$core$IFn$_invoke$arity$1(el) : parse_el.call(null, el));
41
+ if(cljs.core.truth_(temp__5802__auto__)){
42
+ var parsed = temp__5802__auto__;
43
+ return cljs.core.conj.cljs$core$IFn$_invoke$arity$2(acc,parsed);
44
+ } else {
45
+ return cljs.core.reduced(null);
46
+ }
47
+ }),cljs.core.PersistentVector.EMPTY,form);
48
+ } else {
49
+ return null;
50
+ }
51
+ });
52
+ datalog.parser.impl.collect_type = (function datalog$parser$impl$collect_type(var_args){
53
+ var G__113517 = arguments.length;
54
+ switch (G__113517) {
55
+ case 2:
56
+ return datalog.parser.impl.collect_type.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
57
+
58
+ break;
59
+ case 3:
60
+ return datalog.parser.impl.collect_type.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
61
+
62
+ break;
63
+ default:
64
+ throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
65
+
66
+ }
67
+ });
68
+
69
+ (datalog.parser.impl.collect_type.cljs$core$IFn$_invoke$arity$2 = (function (t,form){
70
+ return datalog.parser.impl.collect_type.cljs$core$IFn$_invoke$arity$3(t,form,cljs.core.PersistentVector.EMPTY);
71
+ }));
72
+
73
+ (datalog.parser.impl.collect_type.cljs$core$IFn$_invoke$arity$3 = (function (t,form,acc){
74
+ return datalog.parser.impl.util.collect.cljs$core$IFn$_invoke$arity$3((function (p1__113514_SHARP_){
75
+ return (p1__113514_SHARP_ instanceof t);
76
+ }),form,acc);
77
+ }));
78
+
79
+ (datalog.parser.impl.collect_type.cljs$lang$maxFixedArity = 3);
80
+
81
+ datalog.parser.impl.distinct_QMARK_ = (function datalog$parser$impl$distinct_QMARK_(coll){
82
+ var or__5002__auto__ = cljs.core.empty_QMARK_(coll);
83
+ if(or__5002__auto__){
84
+ return or__5002__auto__;
85
+ } else {
86
+ return cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.distinct_QMARK_,coll);
87
+ }
88
+ });
89
+ datalog.parser.impl.with_source = (function datalog$parser$impl$with_source(obj,source){
90
+ return cljs.core.vary_meta.cljs$core$IFn$_invoke$arity$4(obj,cljs.core.assoc,new cljs.core.Keyword(null,"source","source",-433931539),source);
91
+ });
92
+ datalog.parser.impl.get_source = (function datalog$parser$impl$get_source(obj){
93
+ var or__5002__auto__ = new cljs.core.Keyword(null,"source","source",-433931539).cljs$core$IFn$_invoke$arity$1(cljs.core.meta(obj));
94
+ if(cljs.core.truth_(or__5002__auto__)){
95
+ return or__5002__auto__;
96
+ } else {
97
+ return obj;
98
+ }
99
+ });
100
+ datalog.parser.impl.parse_placeholder = (function datalog$parser$impl$parse_placeholder(form){
101
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"_","_",-1201019570,null),form)){
102
+ return (new datalog.parser.type.Placeholder(null,null,null));
103
+ } else {
104
+ return null;
105
+ }
106
+ });
107
+ datalog.parser.impl.parse_variable = (function datalog$parser$impl$parse_variable(form){
108
+ if((((form instanceof cljs.core.Symbol)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(cljs.core.name(form)),"?")))){
109
+ return (new datalog.parser.type.Variable(form,null,null,null));
110
+ } else {
111
+ return null;
112
+ }
113
+ });
114
+ datalog.parser.impl.parse_src_var = (function datalog$parser$impl$parse_src_var(form){
115
+ if((((form instanceof cljs.core.Symbol)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(cljs.core.name(form)),"$")))){
116
+ return (new datalog.parser.type.SrcVar(form,null,null,null));
117
+ } else {
118
+ return null;
119
+ }
120
+ });
121
+ datalog.parser.impl.parse_rules_var = (function datalog$parser$impl$parse_rules_var(form){
122
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"%","%",-950237169,null),form)){
123
+ return (new datalog.parser.type.RulesVar(null,null,null));
124
+ } else {
125
+ return null;
126
+ }
127
+ });
128
+ datalog.parser.impl.parse_constant = (function datalog$parser$impl$parse_constant(form){
129
+ if((((form instanceof cljs.core.Symbol)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(cljs.core.name(form)),"?")))){
130
+ return null;
131
+ } else {
132
+ return (new datalog.parser.type.Constant(form,null,null,null));
133
+ }
134
+ });
135
+ datalog.parser.impl.parse_plain_symbol = (function datalog$parser$impl$parse_plain_symbol(form){
136
+ if((((form instanceof cljs.core.Symbol)) && (((cljs.core.not(datalog.parser.impl.parse_variable(form))) && (((cljs.core.not(datalog.parser.impl.parse_src_var(form))) && (((cljs.core.not(datalog.parser.impl.parse_rules_var(form))) && (cljs.core.not(datalog.parser.impl.parse_placeholder(form))))))))))){
137
+ return (new datalog.parser.type.PlainSymbol(form,null,null,null));
138
+ } else {
139
+ return null;
140
+ }
141
+ });
142
+ datalog.parser.impl.parse_plain_variable = (function datalog$parser$impl$parse_plain_variable(form){
143
+ if(cljs.core.truth_(datalog.parser.impl.parse_plain_symbol(form))){
144
+ return (new datalog.parser.type.Variable(form,null,null,null));
145
+ } else {
146
+ return null;
147
+ }
148
+ });
149
+ datalog.parser.impl.parse_fn_arg = (function datalog$parser$impl$parse_fn_arg(form){
150
+ var or__5002__auto__ = datalog.parser.impl.parse_variable(form);
151
+ if(cljs.core.truth_(or__5002__auto__)){
152
+ return or__5002__auto__;
153
+ } else {
154
+ var or__5002__auto____$1 = datalog.parser.impl.parse_src_var(form);
155
+ if(cljs.core.truth_(or__5002__auto____$1)){
156
+ return or__5002__auto____$1;
157
+ } else {
158
+ return datalog.parser.impl.parse_constant(form);
159
+ }
160
+ }
161
+ });
162
+ datalog.parser.impl.parse_rule_vars = (function datalog$parser$impl$parse_rule_vars(form){
163
+ if(cljs.core.sequential_QMARK_(form)){
164
+ var vec__113528 = ((cljs.core.sequential_QMARK_(cljs.core.first(form)))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first(form),cljs.core.next(form)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,form], null));
165
+ var required = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113528,(0),null);
166
+ var rest = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113528,(1),null);
167
+ var required_STAR_ = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_variable,required);
168
+ var free_STAR_ = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_variable,rest);
169
+ if(((cljs.core.empty_QMARK_(required_STAR_)) && (cljs.core.empty_QMARK_(free_STAR_)))){
170
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse rule-vars, expected [ variable+ | ([ variable+ ] variable*) ]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","rule-vars","parser/rule-vars",-1493174969),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
171
+ } else {
172
+ }
173
+
174
+ if(cljs.core.truth_(datalog.parser.impl.distinct_QMARK_(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(required_STAR_,free_STAR_)))){
175
+ } else {
176
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Rule variables should be distinct",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","rule-vars","parser/rule-vars",-1493174969),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
177
+ }
178
+
179
+ return (new datalog.parser.type.RuleVars(required_STAR_,free_STAR_,null,null,null));
180
+ } else {
181
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse rule-vars, expected [ variable+ | ([ variable+ ] variable*) ]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","rule-vars","parser/rule-vars",-1493174969),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
182
+ }
183
+ });
184
+ datalog.parser.impl.flatten_rule_vars = (function datalog$parser$impl$flatten_rule_vars(rule_vars){
185
+ return cljs.core.concat.cljs$core$IFn$_invoke$arity$2((cljs.core.truth_(new cljs.core.Keyword(null,"required","required",1807647006).cljs$core$IFn$_invoke$arity$1(rule_vars))?new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"symbol","symbol",-1038572696),new cljs.core.Keyword(null,"required","required",1807647006).cljs$core$IFn$_invoke$arity$1(rule_vars))], null):null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"symbol","symbol",-1038572696),new cljs.core.Keyword(null,"free","free",801364328).cljs$core$IFn$_invoke$arity$1(rule_vars)));
186
+ });
187
+ datalog.parser.impl.rule_vars_arity = (function datalog$parser$impl$rule_vars_arity(rule_vars){
188
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.count(new cljs.core.Keyword(null,"required","required",1807647006).cljs$core$IFn$_invoke$arity$1(rule_vars)),cljs.core.count(new cljs.core.Keyword(null,"free","free",801364328).cljs$core$IFn$_invoke$arity$1(rule_vars))], null);
189
+ });
190
+ datalog.parser.impl.parse_bind_ignore = (function datalog$parser$impl$parse_bind_ignore(form){
191
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"_","_",-1201019570,null),form)){
192
+ return datalog.parser.impl.with_source((new datalog.parser.type.BindIgnore(null,null,null)),form);
193
+ } else {
194
+ return null;
195
+ }
196
+ });
197
+ datalog.parser.impl.parse_bind_scalar = (function datalog$parser$impl$parse_bind_scalar(form){
198
+ var temp__5804__auto__ = datalog.parser.impl.parse_variable(form);
199
+ if(cljs.core.truth_(temp__5804__auto__)){
200
+ var var$ = temp__5804__auto__;
201
+ return datalog.parser.impl.with_source((new datalog.parser.type.BindScalar(var$,null,null,null)),form);
202
+ } else {
203
+ return null;
204
+ }
205
+ });
206
+ datalog.parser.impl.parse_bind_coll = (function datalog$parser$impl$parse_bind_coll(form){
207
+ if(((datalog.parser.impl.of_size_QMARK_(form,(2))) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.second(form),new cljs.core.Symbol(null,"...","...",-1926939749,null))))){
208
+ var temp__5802__auto__ = (function (){var G__113538 = cljs.core.first(form);
209
+ return (datalog.parser.impl.parse_binding.cljs$core$IFn$_invoke$arity$1 ? datalog.parser.impl.parse_binding.cljs$core$IFn$_invoke$arity$1(G__113538) : datalog.parser.impl.parse_binding.call(null, G__113538));
210
+ })();
211
+ if(cljs.core.truth_(temp__5802__auto__)){
212
+ var sub_bind = temp__5802__auto__;
213
+ return datalog.parser.impl.with_source((new datalog.parser.type.BindColl(sub_bind,null,null,null)),form);
214
+ } else {
215
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse collection binding",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","binding","parser/binding",-346395752),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
216
+ }
217
+ } else {
218
+ return null;
219
+ }
220
+ });
221
+ datalog.parser.impl.parse_tuple_el = (function datalog$parser$impl$parse_tuple_el(form){
222
+ var or__5002__auto__ = datalog.parser.impl.parse_bind_ignore(form);
223
+ if(cljs.core.truth_(or__5002__auto__)){
224
+ return or__5002__auto__;
225
+ } else {
226
+ return (datalog.parser.impl.parse_binding.cljs$core$IFn$_invoke$arity$1 ? datalog.parser.impl.parse_binding.cljs$core$IFn$_invoke$arity$1(form) : datalog.parser.impl.parse_binding.call(null, form));
227
+ }
228
+ });
229
+ datalog.parser.impl.parse_bind_tuple = (function datalog$parser$impl$parse_bind_tuple(form){
230
+ var temp__5804__auto__ = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_tuple_el,form);
231
+ if(cljs.core.truth_(temp__5804__auto__)){
232
+ var sub_bindings = temp__5804__auto__;
233
+ if((!(cljs.core.empty_QMARK_(sub_bindings)))){
234
+ return datalog.parser.impl.with_source((new datalog.parser.type.BindTuple(sub_bindings,null,null,null)),form);
235
+ } else {
236
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Tuple binding cannot be empty",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","binding","parser/binding",-346395752),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
237
+ }
238
+ } else {
239
+ return null;
240
+ }
241
+ });
242
+ datalog.parser.impl.parse_bind_rel = (function datalog$parser$impl$parse_bind_rel(form){
243
+ if(((datalog.parser.impl.of_size_QMARK_(form,(1))) && (cljs.core.sequential_QMARK_(cljs.core.first(form))))){
244
+ return datalog.parser.impl.with_source((new datalog.parser.type.BindColl(datalog.parser.impl.parse_bind_tuple(cljs.core.first(form)),null,null,null)),form);
245
+ } else {
246
+ return null;
247
+ }
248
+ });
249
+ datalog.parser.impl.parse_binding = (function datalog$parser$impl$parse_binding(form){
250
+ var or__5002__auto__ = datalog.parser.impl.parse_bind_coll(form);
251
+ if(cljs.core.truth_(or__5002__auto__)){
252
+ return or__5002__auto__;
253
+ } else {
254
+ var or__5002__auto____$1 = datalog.parser.impl.parse_bind_rel(form);
255
+ if(cljs.core.truth_(or__5002__auto____$1)){
256
+ return or__5002__auto____$1;
257
+ } else {
258
+ var or__5002__auto____$2 = datalog.parser.impl.parse_bind_tuple(form);
259
+ if(cljs.core.truth_(or__5002__auto____$2)){
260
+ return or__5002__auto____$2;
261
+ } else {
262
+ var or__5002__auto____$3 = datalog.parser.impl.parse_bind_ignore(form);
263
+ if(cljs.core.truth_(or__5002__auto____$3)){
264
+ return or__5002__auto____$3;
265
+ } else {
266
+ var or__5002__auto____$4 = datalog.parser.impl.parse_bind_scalar(form);
267
+ if(cljs.core.truth_(or__5002__auto____$4)){
268
+ return or__5002__auto____$4;
269
+ } else {
270
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse binding, expected (bind-scalar | bind-tuple | bind-coll | bind-rel)",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","binding","parser/binding",-346395752),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
271
+ }
272
+ }
273
+ }
274
+ }
275
+ }
276
+ });
277
+ datalog.parser.impl.find_vars = (function datalog$parser$impl$find_vars(find){
278
+ return cljs.core.mapcat.cljs$core$IFn$_invoke$arity$variadic(datalog.parser.impl.proto._find_vars,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datalog.parser.impl.proto.find_elements(find)], 0));
279
+ });
280
+ datalog.parser.impl.parse_aggregate = (function datalog$parser$impl$parse_aggregate(form){
281
+ if(((cljs.core.sequential_QMARK_(form)) && ((cljs.core.count(form) >= (2))))){
282
+ var vec__113546 = form;
283
+ var seq__113547 = cljs.core.seq(vec__113546);
284
+ var first__113548 = cljs.core.first(seq__113547);
285
+ var seq__113547__$1 = cljs.core.next(seq__113547);
286
+ var fn = first__113548;
287
+ var args = seq__113547__$1;
288
+ var fn_STAR_ = datalog.parser.impl.parse_plain_symbol(fn);
289
+ var args_STAR_ = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_fn_arg,args);
290
+ if(cljs.core.truth_((function (){var and__5000__auto__ = fn_STAR_;
291
+ if(cljs.core.truth_(and__5000__auto__)){
292
+ return args_STAR_;
293
+ } else {
294
+ return and__5000__auto__;
295
+ }
296
+ })())){
297
+ return (new datalog.parser.type.Aggregate(fn_STAR_,args_STAR_,null,null,null));
298
+ } else {
299
+ return null;
300
+ }
301
+ } else {
302
+ return null;
303
+ }
304
+ });
305
+ datalog.parser.impl.parse_aggregate_custom = (function datalog$parser$impl$parse_aggregate_custom(form){
306
+ if(((cljs.core.sequential_QMARK_(form)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(form),new cljs.core.Symbol(null,"aggregate","aggregate",-1142967327,null))))){
307
+ if((cljs.core.count(form) >= (3))){
308
+ var vec__113551 = form;
309
+ var seq__113552 = cljs.core.seq(vec__113551);
310
+ var first__113553 = cljs.core.first(seq__113552);
311
+ var seq__113552__$1 = cljs.core.next(seq__113552);
312
+ var _ = first__113553;
313
+ var first__113553__$1 = cljs.core.first(seq__113552__$1);
314
+ var seq__113552__$2 = cljs.core.next(seq__113552__$1);
315
+ var fn = first__113553__$1;
316
+ var args = seq__113552__$2;
317
+ var fn_STAR_ = datalog.parser.impl.parse_variable(fn);
318
+ var args_STAR_ = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_fn_arg,args);
319
+ if(cljs.core.truth_((function (){var and__5000__auto__ = fn_STAR_;
320
+ if(cljs.core.truth_(and__5000__auto__)){
321
+ return args_STAR_;
322
+ } else {
323
+ return and__5000__auto__;
324
+ }
325
+ })())){
326
+ return (new datalog.parser.type.Aggregate(fn_STAR_,args_STAR_,null,null,null));
327
+ } else {
328
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse custom aggregate call, expect ['aggregate' variable fn-arg+]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","find","parser/find",-801023103),new cljs.core.Keyword(null,"fragment","fragment",826775688),form], null));
329
+ }
330
+ } else {
331
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse custom aggregate call, expect ['aggregate' variable fn-arg+]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","find","parser/find",-801023103),new cljs.core.Keyword(null,"fragment","fragment",826775688),form], null));
332
+ }
333
+ } else {
334
+ return null;
335
+ }
336
+ });
337
+ datalog.parser.impl.parse_pull_expr = (function datalog$parser$impl$parse_pull_expr(form){
338
+ if(((cljs.core.sequential_QMARK_(form)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.first(form),new cljs.core.Symbol(null,"pull","pull",779986722,null))))){
339
+ if(((((3) <= cljs.core.count(form))) && ((cljs.core.count(form) <= (4))))){
340
+ var long_QMARK_ = cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(form),(4));
341
+ var src = ((long_QMARK_)?cljs.core.nth.cljs$core$IFn$_invoke$arity$2(form,(1)):new cljs.core.Symbol(null,"$","$",-1580747756,null));
342
+ var vec__113556 = ((long_QMARK_)?cljs.core.nnext(form):cljs.core.next(form));
343
+ var var$ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113556,(0),null);
344
+ var pattern = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113556,(1),null);
345
+ var src_STAR_ = datalog.parser.impl.parse_src_var(src);
346
+ var var_STAR_ = datalog.parser.impl.parse_variable(var$);
347
+ var pattern_STAR_ = (function (){var or__5002__auto__ = datalog.parser.impl.parse_variable(pattern);
348
+ if(cljs.core.truth_(or__5002__auto__)){
349
+ return or__5002__auto__;
350
+ } else {
351
+ var or__5002__auto____$1 = datalog.parser.impl.parse_plain_variable(pattern);
352
+ if(cljs.core.truth_(or__5002__auto____$1)){
353
+ return or__5002__auto____$1;
354
+ } else {
355
+ return datalog.parser.impl.parse_constant(pattern);
356
+ }
357
+ }
358
+ })();
359
+ if(cljs.core.truth_((function (){var and__5000__auto__ = src_STAR_;
360
+ if(cljs.core.truth_(and__5000__auto__)){
361
+ var and__5000__auto____$1 = var_STAR_;
362
+ if(cljs.core.truth_(and__5000__auto____$1)){
363
+ return pattern_STAR_;
364
+ } else {
365
+ return and__5000__auto____$1;
366
+ }
367
+ } else {
368
+ return and__5000__auto__;
369
+ }
370
+ })())){
371
+ return (new datalog.parser.type.Pull(src_STAR_,var_STAR_,pattern_STAR_,null,null,null));
372
+ } else {
373
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse pull expression, expect ['pull' src-var? variable (constant | variable | plain-symbol)]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","find","parser/find",-801023103),new cljs.core.Keyword(null,"fragment","fragment",826775688),form], null));
374
+ }
375
+ } else {
376
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse pull expression, expect ['pull' src-var? variable (constant | variable | plain-symbol)]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","find","parser/find",-801023103),new cljs.core.Keyword(null,"fragment","fragment",826775688),form], null));
377
+ }
378
+ } else {
379
+ return null;
380
+ }
381
+ });
382
+ datalog.parser.impl.parse_find_elem = (function datalog$parser$impl$parse_find_elem(form){
383
+ var or__5002__auto__ = datalog.parser.impl.parse_variable(form);
384
+ if(cljs.core.truth_(or__5002__auto__)){
385
+ return or__5002__auto__;
386
+ } else {
387
+ var or__5002__auto____$1 = datalog.parser.impl.parse_pull_expr(form);
388
+ if(cljs.core.truth_(or__5002__auto____$1)){
389
+ return or__5002__auto____$1;
390
+ } else {
391
+ var or__5002__auto____$2 = datalog.parser.impl.parse_aggregate_custom(form);
392
+ if(cljs.core.truth_(or__5002__auto____$2)){
393
+ return or__5002__auto____$2;
394
+ } else {
395
+ return datalog.parser.impl.parse_aggregate(form);
396
+ }
397
+ }
398
+ }
399
+ });
400
+ datalog.parser.impl.parse_find_rel = (function datalog$parser$impl$parse_find_rel(form){
401
+ var G__113562 = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_find_elem,form);
402
+ if((G__113562 == null)){
403
+ return null;
404
+ } else {
405
+ return (new datalog.parser.type.FindRel(G__113562,null,null,null));
406
+ }
407
+ });
408
+ datalog.parser.impl.parse_find_coll = (function datalog$parser$impl$parse_find_coll(form){
409
+ if(((cljs.core.sequential_QMARK_(form)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(form),(1))))){
410
+ var inner = cljs.core.first(form);
411
+ if(((cljs.core.sequential_QMARK_(inner)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(inner),(2))) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.second(inner),new cljs.core.Symbol(null,"...","...",-1926939749,null))))))){
412
+ var G__113564 = datalog.parser.impl.parse_find_elem(cljs.core.first(inner));
413
+ if((G__113564 == null)){
414
+ return null;
415
+ } else {
416
+ return (new datalog.parser.type.FindColl(G__113564,null,null,null));
417
+ }
418
+ } else {
419
+ return null;
420
+ }
421
+ } else {
422
+ return null;
423
+ }
424
+ });
425
+ datalog.parser.impl.parse_find_scalar = (function datalog$parser$impl$parse_find_scalar(form){
426
+ if(((cljs.core.sequential_QMARK_(form)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(form),(2))) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.second(form),new cljs.core.Symbol(null,".",".",1975675962,null))))))){
427
+ var G__113566 = datalog.parser.impl.parse_find_elem(cljs.core.first(form));
428
+ if((G__113566 == null)){
429
+ return null;
430
+ } else {
431
+ return (new datalog.parser.type.FindScalar(G__113566,null,null,null));
432
+ }
433
+ } else {
434
+ return null;
435
+ }
436
+ });
437
+ datalog.parser.impl.parse_find_tuple = (function datalog$parser$impl$parse_find_tuple(form){
438
+ if(((cljs.core.sequential_QMARK_(form)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(form),(1))))){
439
+ var inner = cljs.core.first(form);
440
+ var G__113568 = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_find_elem,inner);
441
+ if((G__113568 == null)){
442
+ return null;
443
+ } else {
444
+ return (new datalog.parser.type.FindTuple(G__113568,null,null,null));
445
+ }
446
+ } else {
447
+ return null;
448
+ }
449
+ });
450
+ datalog.parser.impl.parse_find = (function datalog$parser$impl$parse_find(form){
451
+ var or__5002__auto__ = datalog.parser.impl.parse_find_rel(form);
452
+ if(cljs.core.truth_(or__5002__auto__)){
453
+ return or__5002__auto__;
454
+ } else {
455
+ var or__5002__auto____$1 = datalog.parser.impl.parse_find_coll(form);
456
+ if(cljs.core.truth_(or__5002__auto____$1)){
457
+ return or__5002__auto____$1;
458
+ } else {
459
+ var or__5002__auto____$2 = datalog.parser.impl.parse_find_scalar(form);
460
+ if(cljs.core.truth_(or__5002__auto____$2)){
461
+ return or__5002__auto____$2;
462
+ } else {
463
+ var or__5002__auto____$3 = datalog.parser.impl.parse_find_tuple(form);
464
+ if(cljs.core.truth_(or__5002__auto____$3)){
465
+ return or__5002__auto____$3;
466
+ } else {
467
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse :find, expected: (find-rel | find-coll | find-tuple | find-scalar)",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","find","parser/find",-801023103),new cljs.core.Keyword(null,"fragment","fragment",826775688),form], null));
468
+ }
469
+ }
470
+ }
471
+ }
472
+ });
473
+ datalog.parser.impl.parse_with = (function datalog$parser$impl$parse_with(form){
474
+ var or__5002__auto__ = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_variable,form);
475
+ if(cljs.core.truth_(or__5002__auto__)){
476
+ return or__5002__auto__;
477
+ } else {
478
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse :with clause, expected [ variable+ ]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","with","parser/with",-386255821),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
479
+ }
480
+ });
481
+ datalog.parser.impl.parse_in_binding = (function datalog$parser$impl$parse_in_binding(form){
482
+ var temp__5802__auto__ = (function (){var or__5002__auto__ = datalog.parser.impl.parse_src_var(form);
483
+ if(cljs.core.truth_(or__5002__auto__)){
484
+ return or__5002__auto__;
485
+ } else {
486
+ var or__5002__auto____$1 = datalog.parser.impl.parse_rules_var(form);
487
+ if(cljs.core.truth_(or__5002__auto____$1)){
488
+ return or__5002__auto____$1;
489
+ } else {
490
+ return datalog.parser.impl.parse_plain_variable(form);
491
+ }
492
+ }
493
+ })();
494
+ if(cljs.core.truth_(temp__5802__auto__)){
495
+ var var$ = temp__5802__auto__;
496
+ return datalog.parser.impl.with_source((new datalog.parser.type.BindScalar(var$,null,null,null)),form);
497
+ } else {
498
+ return datalog.parser.impl.parse_binding(form);
499
+ }
500
+ });
501
+ datalog.parser.impl.parse_in = (function datalog$parser$impl$parse_in(form){
502
+ var or__5002__auto__ = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_in_binding,form);
503
+ if(cljs.core.truth_(or__5002__auto__)){
504
+ return or__5002__auto__;
505
+ } else {
506
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse :in clause, expected (src-var | % | plain-symbol | bind-scalar | bind-tuple | bind-coll | bind-rel)",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","in","parser/in",1617442048),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
507
+ }
508
+ });
509
+ datalog.parser.impl.parse_pattern_el = (function datalog$parser$impl$parse_pattern_el(form){
510
+ var or__5002__auto__ = datalog.parser.impl.parse_placeholder(form);
511
+ if(cljs.core.truth_(or__5002__auto__)){
512
+ return or__5002__auto__;
513
+ } else {
514
+ var or__5002__auto____$1 = datalog.parser.impl.parse_variable(form);
515
+ if(cljs.core.truth_(or__5002__auto____$1)){
516
+ return or__5002__auto____$1;
517
+ } else {
518
+ return datalog.parser.impl.parse_constant(form);
519
+ }
520
+ }
521
+ });
522
+ datalog.parser.impl.take_source = (function datalog$parser$impl$take_source(form){
523
+ if(cljs.core.sequential_QMARK_(form)){
524
+ var temp__5802__auto__ = datalog.parser.impl.parse_src_var(cljs.core.first(form));
525
+ if(cljs.core.truth_(temp__5802__auto__)){
526
+ var source_STAR_ = temp__5802__auto__;
527
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [source_STAR_,cljs.core.next(form)], null);
528
+ } else {
529
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new datalog.parser.type.DefaultSrc(null,null,null)),form], null);
530
+ }
531
+ } else {
532
+ return null;
533
+ }
534
+ });
535
+ datalog.parser.impl.parse_pattern = (function datalog$parser$impl$parse_pattern(form){
536
+ var temp__5804__auto__ = datalog.parser.impl.take_source(form);
537
+ if(cljs.core.truth_(temp__5804__auto__)){
538
+ var vec__113573 = temp__5804__auto__;
539
+ var source_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113573,(0),null);
540
+ var next_form = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113573,(1),null);
541
+ var temp__5804__auto____$1 = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_pattern_el,next_form);
542
+ if(cljs.core.truth_(temp__5804__auto____$1)){
543
+ var pattern_STAR_ = temp__5804__auto____$1;
544
+ if((!(cljs.core.empty_QMARK_(pattern_STAR_)))){
545
+ return datalog.parser.impl.with_source((new datalog.parser.type.Pattern(source_STAR_,pattern_STAR_,null,null,null)),form);
546
+ } else {
547
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Pattern could not be empty",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
548
+ }
549
+ } else {
550
+ return null;
551
+ }
552
+ } else {
553
+ return null;
554
+ }
555
+ });
556
+ datalog.parser.impl.parse_call = (function datalog$parser$impl$parse_call(form){
557
+ if(cljs.core.sequential_QMARK_(form)){
558
+ var vec__113578 = form;
559
+ var seq__113579 = cljs.core.seq(vec__113578);
560
+ var first__113580 = cljs.core.first(seq__113579);
561
+ var seq__113579__$1 = cljs.core.next(seq__113579);
562
+ var fn = first__113580;
563
+ var args = seq__113579__$1;
564
+ var args__$1 = (((args == null))?cljs.core.PersistentVector.EMPTY:args);
565
+ var fn_STAR_ = (function (){var or__5002__auto__ = datalog.parser.impl.parse_plain_symbol(fn);
566
+ if(cljs.core.truth_(or__5002__auto__)){
567
+ return or__5002__auto__;
568
+ } else {
569
+ return datalog.parser.impl.parse_variable(fn);
570
+ }
571
+ })();
572
+ var args_STAR_ = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_fn_arg,args__$1);
573
+ if(cljs.core.truth_((function (){var and__5000__auto__ = fn_STAR_;
574
+ if(cljs.core.truth_(and__5000__auto__)){
575
+ return args_STAR_;
576
+ } else {
577
+ return and__5000__auto__;
578
+ }
579
+ })())){
580
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [fn_STAR_,args_STAR_], null);
581
+ } else {
582
+ return null;
583
+ }
584
+ } else {
585
+ return null;
586
+ }
587
+ });
588
+ datalog.parser.impl.parse_pred = (function datalog$parser$impl$parse_pred(form){
589
+ if(datalog.parser.impl.of_size_QMARK_(form,(1))){
590
+ var temp__5804__auto__ = datalog.parser.impl.parse_call(cljs.core.first(form));
591
+ if(cljs.core.truth_(temp__5804__auto__)){
592
+ var vec__113582 = temp__5804__auto__;
593
+ var fn_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113582,(0),null);
594
+ var args_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113582,(1),null);
595
+ return datalog.parser.impl.with_source((new datalog.parser.type.Predicate(fn_STAR_,args_STAR_,null,null,null)),form);
596
+ } else {
597
+ return null;
598
+ }
599
+ } else {
600
+ return null;
601
+ }
602
+ });
603
+ datalog.parser.impl.parse_fn = (function datalog$parser$impl$parse_fn(form){
604
+ if(datalog.parser.impl.of_size_QMARK_(form,(2))){
605
+ var vec__113586 = form;
606
+ var call = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113586,(0),null);
607
+ var binding = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113586,(1),null);
608
+ var temp__5804__auto__ = datalog.parser.impl.parse_call(call);
609
+ if(cljs.core.truth_(temp__5804__auto__)){
610
+ var vec__113589 = temp__5804__auto__;
611
+ var fn_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113589,(0),null);
612
+ var args_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113589,(1),null);
613
+ var temp__5804__auto____$1 = datalog.parser.impl.parse_binding(binding);
614
+ if(cljs.core.truth_(temp__5804__auto____$1)){
615
+ var binding_STAR_ = temp__5804__auto____$1;
616
+ return datalog.parser.impl.with_source((new datalog.parser.type.Function(fn_STAR_,args_STAR_,binding_STAR_,null,null,null)),form);
617
+ } else {
618
+ return null;
619
+ }
620
+ } else {
621
+ return null;
622
+ }
623
+ } else {
624
+ return null;
625
+ }
626
+ });
627
+ datalog.parser.impl.parse_rule_expr = (function datalog$parser$impl$parse_rule_expr(form){
628
+ var temp__5804__auto__ = datalog.parser.impl.take_source(form);
629
+ if(cljs.core.truth_(temp__5804__auto__)){
630
+ var vec__113593 = temp__5804__auto__;
631
+ var source_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113593,(0),null);
632
+ var next_form = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113593,(1),null);
633
+ var vec__113596 = next_form;
634
+ var seq__113597 = cljs.core.seq(vec__113596);
635
+ var first__113598 = cljs.core.first(seq__113597);
636
+ var seq__113597__$1 = cljs.core.next(seq__113597);
637
+ var name = first__113598;
638
+ var args = seq__113597__$1;
639
+ var name_STAR_ = datalog.parser.impl.parse_plain_symbol(name);
640
+ var args_STAR_ = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_pattern_el,args);
641
+ if(cljs.core.truth_(name_STAR_)){
642
+ if(cljs.core.empty_QMARK_(args)){
643
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("rule-expr requires at least one argument",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
644
+ } else {
645
+ if((args_STAR_ == null)){
646
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([["Cannot parse rule-expr arguments, expected"," [ (variable | constant | '_')+ ]"].join('')], 0)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
647
+ } else {
648
+ return (new datalog.parser.type.RuleExpr(source_STAR_,name_STAR_,args_STAR_,null,null,null));
649
+
650
+ }
651
+ }
652
+ } else {
653
+ return null;
654
+ }
655
+ } else {
656
+ return null;
657
+ }
658
+ });
659
+ datalog.parser.impl.collect_vars_distinct = (function datalog$parser$impl$collect_vars_distinct(form){
660
+ return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,cljs.core.distinct.cljs$core$IFn$_invoke$arity$1(datalog.parser.type.collect_vars.cljs$core$IFn$_invoke$arity$1(form)));
661
+ });
662
+ datalog.parser.impl.validate_join_vars = (function datalog$parser$impl$validate_join_vars(vars,clauses,form){
663
+ var undeclared_114143 = clojure.set.difference.cljs$core$IFn$_invoke$arity$2(cljs.core.set(vars),datalog.parser.type.collect_vars.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,clauses));
664
+ if(cljs.core.empty_QMARK_(undeclared_114143)){
665
+ } else {
666
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Join variable not declared inside clauses: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"symbol","symbol",-1038572696),undeclared_114143)], 0))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
667
+ }
668
+
669
+ if(cljs.core.empty_QMARK_(vars)){
670
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Join variables should not be empty",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
671
+ } else {
672
+ return null;
673
+ }
674
+ });
675
+ datalog.parser.impl.validate_or_join_vars = (function datalog$parser$impl$validate_or_join_vars(vars,clauses,form){
676
+ if(cljs.core.empty_QMARK_(vars)){
677
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Join variables should not be empty",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
678
+ } else {
679
+ return null;
680
+ }
681
+ });
682
+ datalog.parser.impl.validate_not = (function datalog$parser$impl$validate_not(clause,form){
683
+ datalog.parser.impl.validate_join_vars(new cljs.core.Keyword(null,"vars","vars",-2046957217).cljs$core$IFn$_invoke$arity$1(clause),new cljs.core.Keyword(null,"clauses","clauses",1454841241).cljs$core$IFn$_invoke$arity$1(clause),form);
684
+
685
+ return clause;
686
+ });
687
+ datalog.parser.impl.parse_not = (function datalog$parser$impl$parse_not(form){
688
+ var temp__5804__auto__ = datalog.parser.impl.take_source(form);
689
+ if(cljs.core.truth_(temp__5804__auto__)){
690
+ var vec__113643 = temp__5804__auto__;
691
+ var source_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113643,(0),null);
692
+ var next_form = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113643,(1),null);
693
+ var vec__113648 = next_form;
694
+ var seq__113649 = cljs.core.seq(vec__113648);
695
+ var first__113650 = cljs.core.first(seq__113649);
696
+ var seq__113649__$1 = cljs.core.next(seq__113649);
697
+ var sym = first__113650;
698
+ var clauses = seq__113649__$1;
699
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"not","not",1044554643,null),sym)){
700
+ var temp__5802__auto__ = (datalog.parser.impl.parse_clauses.cljs$core$IFn$_invoke$arity$1 ? datalog.parser.impl.parse_clauses.cljs$core$IFn$_invoke$arity$1(clauses) : datalog.parser.impl.parse_clauses.call(null, clauses));
701
+ if(cljs.core.truth_(temp__5802__auto__)){
702
+ var clauses_STAR_ = temp__5802__auto__;
703
+ return datalog.parser.impl.validate_not(datalog.parser.impl.with_source((new datalog.parser.type.Not(source_STAR_,datalog.parser.impl.collect_vars_distinct(clauses_STAR_),clauses_STAR_,null,null,null)),form),form);
704
+ } else {
705
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse 'not' clause, expected [ src-var? 'not' clause+ ]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
706
+ }
707
+ } else {
708
+ return null;
709
+ }
710
+ } else {
711
+ return null;
712
+ }
713
+ });
714
+ datalog.parser.impl.parse_not_join = (function datalog$parser$impl$parse_not_join(form){
715
+ var temp__5804__auto__ = datalog.parser.impl.take_source(form);
716
+ if(cljs.core.truth_(temp__5804__auto__)){
717
+ var vec__113696 = temp__5804__auto__;
718
+ var source_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113696,(0),null);
719
+ var next_form = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113696,(1),null);
720
+ var vec__113701 = next_form;
721
+ var seq__113702 = cljs.core.seq(vec__113701);
722
+ var first__113703 = cljs.core.first(seq__113702);
723
+ var seq__113702__$1 = cljs.core.next(seq__113702);
724
+ var sym = first__113703;
725
+ var first__113703__$1 = cljs.core.first(seq__113702__$1);
726
+ var seq__113702__$2 = cljs.core.next(seq__113702__$1);
727
+ var vars = first__113703__$1;
728
+ var clauses = seq__113702__$2;
729
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"not-join","not-join",-645515756,null),sym)){
730
+ var vars_STAR_ = datalog.parser.impl.parse_seq(datalog.parser.impl.parse_variable,vars);
731
+ var clauses_STAR_ = (datalog.parser.impl.parse_clauses.cljs$core$IFn$_invoke$arity$1 ? datalog.parser.impl.parse_clauses.cljs$core$IFn$_invoke$arity$1(clauses) : datalog.parser.impl.parse_clauses.call(null, clauses));
732
+ if(cljs.core.truth_((function (){var and__5000__auto__ = vars_STAR_;
733
+ if(cljs.core.truth_(and__5000__auto__)){
734
+ return clauses_STAR_;
735
+ } else {
736
+ return and__5000__auto__;
737
+ }
738
+ })())){
739
+ return datalog.parser.impl.validate_not(datalog.parser.impl.with_source((new datalog.parser.type.Not(source_STAR_,vars_STAR_,clauses_STAR_,null,null,null)),form),form);
740
+ } else {
741
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse 'not-join' clause, expected [ src-var? 'not-join' [variable+] clause+ ]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
742
+ }
743
+ } else {
744
+ return null;
745
+ }
746
+ } else {
747
+ return null;
748
+ }
749
+ });
750
+ datalog.parser.impl.validate_or = (function datalog$parser$impl$validate_or(clause,form){
751
+ var map__113719 = clause;
752
+ var map__113719__$1 = cljs.core.__destructure_map(map__113719);
753
+ var map__113720 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__113719__$1,new cljs.core.Keyword(null,"rule-vars","rule-vars",1665972520));
754
+ var map__113720__$1 = cljs.core.__destructure_map(map__113720);
755
+ var required = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__113720__$1,new cljs.core.Keyword(null,"required","required",1807647006));
756
+ var free = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__113720__$1,new cljs.core.Keyword(null,"free","free",801364328));
757
+ var vars = cljs.core.concat.cljs$core$IFn$_invoke$arity$2(required,free);
758
+ var seq__113724_114222 = cljs.core.seq(new cljs.core.Keyword(null,"clauses","clauses",1454841241).cljs$core$IFn$_invoke$arity$1(clause));
759
+ var chunk__113725_114223 = null;
760
+ var count__113726_114224 = (0);
761
+ var i__113727_114225 = (0);
762
+ while(true){
763
+ if((i__113727_114225 < count__113726_114224)){
764
+ var clause_114227__$1 = chunk__113725_114223.cljs$core$IIndexed$_nth$arity$2(null, i__113727_114225);
765
+ datalog.parser.impl.validate_join_vars(vars,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [clause_114227__$1], null),form);
766
+
767
+
768
+ var G__114228 = seq__113724_114222;
769
+ var G__114229 = chunk__113725_114223;
770
+ var G__114230 = count__113726_114224;
771
+ var G__114231 = (i__113727_114225 + (1));
772
+ seq__113724_114222 = G__114228;
773
+ chunk__113725_114223 = G__114229;
774
+ count__113726_114224 = G__114230;
775
+ i__113727_114225 = G__114231;
776
+ continue;
777
+ } else {
778
+ var temp__5804__auto___114234 = cljs.core.seq(seq__113724_114222);
779
+ if(temp__5804__auto___114234){
780
+ var seq__113724_114236__$1 = temp__5804__auto___114234;
781
+ if(cljs.core.chunked_seq_QMARK_(seq__113724_114236__$1)){
782
+ var c__5525__auto___114237 = cljs.core.chunk_first(seq__113724_114236__$1);
783
+ var G__114238 = cljs.core.chunk_rest(seq__113724_114236__$1);
784
+ var G__114239 = c__5525__auto___114237;
785
+ var G__114240 = cljs.core.count(c__5525__auto___114237);
786
+ var G__114241 = (0);
787
+ seq__113724_114222 = G__114238;
788
+ chunk__113725_114223 = G__114239;
789
+ count__113726_114224 = G__114240;
790
+ i__113727_114225 = G__114241;
791
+ continue;
792
+ } else {
793
+ var clause_114242__$1 = cljs.core.first(seq__113724_114236__$1);
794
+ datalog.parser.impl.validate_join_vars(vars,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [clause_114242__$1], null),form);
795
+
796
+
797
+ var G__114243 = cljs.core.next(seq__113724_114236__$1);
798
+ var G__114244 = null;
799
+ var G__114245 = (0);
800
+ var G__114246 = (0);
801
+ seq__113724_114222 = G__114243;
802
+ chunk__113725_114223 = G__114244;
803
+ count__113726_114224 = G__114245;
804
+ i__113727_114225 = G__114246;
805
+ continue;
806
+ }
807
+ } else {
808
+ }
809
+ }
810
+ break;
811
+ }
812
+
813
+ return clause;
814
+ });
815
+ datalog.parser.impl.validate_or_join = (function datalog$parser$impl$validate_or_join(clause,form){
816
+ var map__113741 = clause;
817
+ var map__113741__$1 = cljs.core.__destructure_map(map__113741);
818
+ var map__113743 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__113741__$1,new cljs.core.Keyword(null,"rule-vars","rule-vars",1665972520));
819
+ var map__113743__$1 = cljs.core.__destructure_map(map__113743);
820
+ var required = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__113743__$1,new cljs.core.Keyword(null,"required","required",1807647006));
821
+ var free = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__113743__$1,new cljs.core.Keyword(null,"free","free",801364328));
822
+ var vars = cljs.core.concat.cljs$core$IFn$_invoke$arity$2(required,free);
823
+ var seq__113745_114250 = cljs.core.seq(new cljs.core.Keyword(null,"clauses","clauses",1454841241).cljs$core$IFn$_invoke$arity$1(clause));
824
+ var chunk__113746_114251 = null;
825
+ var count__113747_114252 = (0);
826
+ var i__113748_114253 = (0);
827
+ while(true){
828
+ if((i__113748_114253 < count__113747_114252)){
829
+ var clause_114254__$1 = chunk__113746_114251.cljs$core$IIndexed$_nth$arity$2(null, i__113748_114253);
830
+ datalog.parser.impl.validate_or_join_vars(vars,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [clause_114254__$1], null),form);
831
+
832
+
833
+ var G__114256 = seq__113745_114250;
834
+ var G__114257 = chunk__113746_114251;
835
+ var G__114258 = count__113747_114252;
836
+ var G__114259 = (i__113748_114253 + (1));
837
+ seq__113745_114250 = G__114256;
838
+ chunk__113746_114251 = G__114257;
839
+ count__113747_114252 = G__114258;
840
+ i__113748_114253 = G__114259;
841
+ continue;
842
+ } else {
843
+ var temp__5804__auto___114260 = cljs.core.seq(seq__113745_114250);
844
+ if(temp__5804__auto___114260){
845
+ var seq__113745_114261__$1 = temp__5804__auto___114260;
846
+ if(cljs.core.chunked_seq_QMARK_(seq__113745_114261__$1)){
847
+ var c__5525__auto___114262 = cljs.core.chunk_first(seq__113745_114261__$1);
848
+ var G__114263 = cljs.core.chunk_rest(seq__113745_114261__$1);
849
+ var G__114264 = c__5525__auto___114262;
850
+ var G__114265 = cljs.core.count(c__5525__auto___114262);
851
+ var G__114266 = (0);
852
+ seq__113745_114250 = G__114263;
853
+ chunk__113746_114251 = G__114264;
854
+ count__113747_114252 = G__114265;
855
+ i__113748_114253 = G__114266;
856
+ continue;
857
+ } else {
858
+ var clause_114267__$1 = cljs.core.first(seq__113745_114261__$1);
859
+ datalog.parser.impl.validate_or_join_vars(vars,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [clause_114267__$1], null),form);
860
+
861
+
862
+ var G__114268 = cljs.core.next(seq__113745_114261__$1);
863
+ var G__114269 = null;
864
+ var G__114270 = (0);
865
+ var G__114271 = (0);
866
+ seq__113745_114250 = G__114268;
867
+ chunk__113746_114251 = G__114269;
868
+ count__113747_114252 = G__114270;
869
+ i__113748_114253 = G__114271;
870
+ continue;
871
+ }
872
+ } else {
873
+ }
874
+ }
875
+ break;
876
+ }
877
+
878
+ return clause;
879
+ });
880
+ datalog.parser.impl.parse_and = (function datalog$parser$impl$parse_and(form){
881
+ if(((cljs.core.sequential_QMARK_(form)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"and","and",668631710,null),cljs.core.first(form))))){
882
+ var clauses_STAR_ = (function (){var G__113770 = cljs.core.next(form);
883
+ return (datalog.parser.impl.parse_clauses.cljs$core$IFn$_invoke$arity$1 ? datalog.parser.impl.parse_clauses.cljs$core$IFn$_invoke$arity$1(G__113770) : datalog.parser.impl.parse_clauses.call(null, G__113770));
884
+ })();
885
+ if(cljs.core.truth_(cljs.core.not_empty(clauses_STAR_))){
886
+ return (new datalog.parser.type.And(clauses_STAR_,null,null,null));
887
+ } else {
888
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse 'and' clause, expected [ 'and' clause+ ]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
889
+ }
890
+ } else {
891
+ return null;
892
+ }
893
+ });
894
+ datalog.parser.impl.parse_or = (function datalog$parser$impl$parse_or(form){
895
+ var temp__5804__auto__ = datalog.parser.impl.take_source(form);
896
+ if(cljs.core.truth_(temp__5804__auto__)){
897
+ var vec__113771 = temp__5804__auto__;
898
+ var source_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113771,(0),null);
899
+ var next_form = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113771,(1),null);
900
+ var vec__113774 = next_form;
901
+ var seq__113775 = cljs.core.seq(vec__113774);
902
+ var first__113776 = cljs.core.first(seq__113775);
903
+ var seq__113775__$1 = cljs.core.next(seq__113775);
904
+ var sym = first__113776;
905
+ var clauses = seq__113775__$1;
906
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"or","or",1876275696,null),sym)){
907
+ var temp__5802__auto__ = datalog.parser.impl.parse_seq(cljs.core.some_fn.cljs$core$IFn$_invoke$arity$2(datalog.parser.impl.parse_and,datalog.parser.impl.parse_clause),clauses);
908
+ if(cljs.core.truth_(temp__5802__auto__)){
909
+ var clauses_STAR_ = temp__5802__auto__;
910
+ return datalog.parser.impl.validate_or(datalog.parser.impl.with_source((new datalog.parser.type.Or(source_STAR_,(new datalog.parser.type.RuleVars(null,datalog.parser.impl.collect_vars_distinct(clauses_STAR_),null,null,null)),clauses_STAR_,null,null,null)),form),form);
911
+ } else {
912
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse 'or' clause, expected [ src-var? 'or' clause+ ]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
913
+ }
914
+ } else {
915
+ return null;
916
+ }
917
+ } else {
918
+ return null;
919
+ }
920
+ });
921
+ datalog.parser.impl.parse_or_join = (function datalog$parser$impl$parse_or_join(form){
922
+ var temp__5804__auto__ = datalog.parser.impl.take_source(form);
923
+ if(cljs.core.truth_(temp__5804__auto__)){
924
+ var vec__113777 = temp__5804__auto__;
925
+ var source_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113777,(0),null);
926
+ var next_form = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113777,(1),null);
927
+ var vec__113780 = next_form;
928
+ var seq__113781 = cljs.core.seq(vec__113780);
929
+ var first__113782 = cljs.core.first(seq__113781);
930
+ var seq__113781__$1 = cljs.core.next(seq__113781);
931
+ var sym = first__113782;
932
+ var first__113782__$1 = cljs.core.first(seq__113781__$1);
933
+ var seq__113781__$2 = cljs.core.next(seq__113781__$1);
934
+ var vars = first__113782__$1;
935
+ var clauses = seq__113781__$2;
936
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Symbol(null,"or-join","or-join",591375469,null),sym)){
937
+ var vars_STAR_ = datalog.parser.impl.parse_rule_vars(vars);
938
+ var clauses_STAR_ = datalog.parser.impl.parse_seq(cljs.core.some_fn.cljs$core$IFn$_invoke$arity$2(datalog.parser.impl.parse_and,datalog.parser.impl.parse_clause),clauses);
939
+ if(cljs.core.truth_((function (){var and__5000__auto__ = vars_STAR_;
940
+ if(cljs.core.truth_(and__5000__auto__)){
941
+ return clauses_STAR_;
942
+ } else {
943
+ return and__5000__auto__;
944
+ }
945
+ })())){
946
+ return datalog.parser.impl.validate_or_join(datalog.parser.impl.with_source((new datalog.parser.type.Or(source_STAR_,vars_STAR_,clauses_STAR_,null,null,null)),form),form);
947
+ } else {
948
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse 'or-join' clause, expected [ src-var? 'or-join' [variable+] clause+ ]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
949
+ }
950
+ } else {
951
+ return null;
952
+ }
953
+ } else {
954
+ return null;
955
+ }
956
+ });
957
+ datalog.parser.impl.parse_clause = (function datalog$parser$impl$parse_clause(form){
958
+ var or__5002__auto__ = datalog.parser.impl.parse_not(form);
959
+ if(cljs.core.truth_(or__5002__auto__)){
960
+ return or__5002__auto__;
961
+ } else {
962
+ var or__5002__auto____$1 = datalog.parser.impl.parse_not_join(form);
963
+ if(cljs.core.truth_(or__5002__auto____$1)){
964
+ return or__5002__auto____$1;
965
+ } else {
966
+ var or__5002__auto____$2 = datalog.parser.impl.parse_or(form);
967
+ if(cljs.core.truth_(or__5002__auto____$2)){
968
+ return or__5002__auto____$2;
969
+ } else {
970
+ var or__5002__auto____$3 = datalog.parser.impl.parse_or_join(form);
971
+ if(cljs.core.truth_(or__5002__auto____$3)){
972
+ return or__5002__auto____$3;
973
+ } else {
974
+ var or__5002__auto____$4 = datalog.parser.impl.parse_pred(form);
975
+ if(cljs.core.truth_(or__5002__auto____$4)){
976
+ return or__5002__auto____$4;
977
+ } else {
978
+ var or__5002__auto____$5 = datalog.parser.impl.parse_fn(form);
979
+ if(cljs.core.truth_(or__5002__auto____$5)){
980
+ return or__5002__auto____$5;
981
+ } else {
982
+ var or__5002__auto____$6 = datalog.parser.impl.parse_rule_expr(form);
983
+ if(cljs.core.truth_(or__5002__auto____$6)){
984
+ return or__5002__auto____$6;
985
+ } else {
986
+ var or__5002__auto____$7 = datalog.parser.impl.parse_pattern(form);
987
+ if(cljs.core.truth_(or__5002__auto____$7)){
988
+ return or__5002__auto____$7;
989
+ } else {
990
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([["Cannot parse clause, expected (data-pattern | pred-expr |"," fn-expr | rule-expr | not-clause | not-join-clause |"," or-clause | or-join-clause)"].join('')], 0)),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
991
+ }
992
+ }
993
+ }
994
+ }
995
+ }
996
+ }
997
+ }
998
+ }
999
+ });
1000
+ datalog.parser.impl.parse_clauses = (function datalog$parser$impl$parse_clauses(clauses){
1001
+ return datalog.parser.impl.parse_seq(datalog.parser.impl.parse_clause,clauses);
1002
+ });
1003
+ /**
1004
+ * Parse pagination limit
1005
+ */
1006
+ datalog.parser.impl.parse_limit = (function datalog$parser$impl$parse_limit(limit){
1007
+ if(cljs.core.truth_(limit)){
1008
+ if(cljs.core.integer_QMARK_(cljs.core.first(limit))){
1009
+ return cljs.core.first(limit);
1010
+ } else {
1011
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse :limit, expected integer",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","limit","parser/limit",1920766092),new cljs.core.Keyword(null,"limit","limit",-1355822363),limit], null));
1012
+ }
1013
+ } else {
1014
+ return null;
1015
+ }
1016
+ });
1017
+ /**
1018
+ * Parse pagination offset
1019
+ */
1020
+ datalog.parser.impl.parse_offset = (function datalog$parser$impl$parse_offset(offset){
1021
+ if(cljs.core.truth_(offset)){
1022
+ if(cljs.core.integer_QMARK_(cljs.core.first(offset))){
1023
+ return cljs.core.first(offset);
1024
+ } else {
1025
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse :offset, expected integer",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","offset","parser/offset",-708845464),new cljs.core.Keyword(null,"offset","offset",296498311),offset], null));
1026
+ }
1027
+ } else {
1028
+ return null;
1029
+ }
1030
+ });
1031
+ /**
1032
+ * Parse request to return maps
1033
+ */
1034
+ datalog.parser.impl.parse_return_maps = (function datalog$parser$impl$parse_return_maps(return_maps){
1035
+ var type = cljs.core.first(cljs.core.keys(return_maps));
1036
+ var toomany = (cljs.core.count(cljs.core.keys(return_maps)) > (1));
1037
+ if(toomany){
1038
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Only one of these three options is allowed: :keys :strs :syms",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","return-maps","parser/return-maps",-365100870),new cljs.core.Keyword(null,"return-maps","return-maps",1328559319),return_maps], null));
1039
+ } else {
1040
+ if(cljs.core.truth_(type)){
1041
+ return (new datalog.parser.type.ReturnMaps(type,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__113783_SHARP_){
1042
+ return (new datalog.parser.type.MappingKey(p1__113783_SHARP_,null,null,null));
1043
+ }),cljs.core.get.cljs$core$IFn$_invoke$arity$2(return_maps,type)),null,null,null));
1044
+ } else {
1045
+ return null;
1046
+ }
1047
+ }
1048
+ });
1049
+ datalog.parser.impl.parse_where = (function datalog$parser$impl$parse_where(form){
1050
+ var or__5002__auto__ = datalog.parser.impl.parse_clauses(form);
1051
+ if(cljs.core.truth_(or__5002__auto__)){
1052
+ return or__5002__auto__;
1053
+ } else {
1054
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse :where clause, expected [clause+]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","where","parser/where",-966053850),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
1055
+ }
1056
+ });
1057
+ datalog.parser.impl.parse_rule = (function datalog$parser$impl$parse_rule(form){
1058
+ if(cljs.core.sequential_QMARK_(form)){
1059
+ var vec__113784 = form;
1060
+ var seq__113785 = cljs.core.seq(vec__113784);
1061
+ var first__113786 = cljs.core.first(seq__113785);
1062
+ var seq__113785__$1 = cljs.core.next(seq__113785);
1063
+ var head = first__113786;
1064
+ var clauses = seq__113785__$1;
1065
+ if(cljs.core.sequential_QMARK_(head)){
1066
+ var vec__113787 = head;
1067
+ var seq__113788 = cljs.core.seq(vec__113787);
1068
+ var first__113789 = cljs.core.first(seq__113788);
1069
+ var seq__113788__$1 = cljs.core.next(seq__113788);
1070
+ var name = first__113789;
1071
+ var vars = seq__113788__$1;
1072
+ var name_STAR_ = (function (){var or__5002__auto__ = datalog.parser.impl.parse_plain_symbol(name);
1073
+ if(cljs.core.truth_(or__5002__auto__)){
1074
+ return or__5002__auto__;
1075
+ } else {
1076
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse rule name, expected plain-symbol",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","rule","parser/rule",-464044566),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
1077
+ }
1078
+ })();
1079
+ var vars_STAR_ = datalog.parser.impl.parse_rule_vars(vars);
1080
+ var clauses_STAR_ = (function (){var or__5002__auto__ = cljs.core.not_empty(datalog.parser.impl.parse_clauses(clauses));
1081
+ if(cljs.core.truth_(or__5002__auto__)){
1082
+ return or__5002__auto__;
1083
+ } else {
1084
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Rule branch should have clauses",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","rule","parser/rule",-464044566),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
1085
+ }
1086
+ })();
1087
+ return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"name","name",1843675177),name_STAR_,new cljs.core.Keyword(null,"vars","vars",-2046957217),vars_STAR_,new cljs.core.Keyword(null,"clauses","clauses",1454841241),clauses_STAR_], null);
1088
+ } else {
1089
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse rule head, expected [rule-name rule-vars]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","rule","parser/rule",-464044566),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
1090
+ }
1091
+ } else {
1092
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Cannot parse rule, expected [rule-head clause+]",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","rule","parser/rule",-464044566),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
1093
+ }
1094
+ });
1095
+ datalog.parser.impl.validate_arity = (function datalog$parser$impl$validate_arity(name,branches){
1096
+ var vars0 = new cljs.core.Keyword(null,"vars","vars",-2046957217).cljs$core$IFn$_invoke$arity$1(cljs.core.first(branches));
1097
+ var arity0 = datalog.parser.impl.rule_vars_arity(vars0);
1098
+ var seq__113790 = cljs.core.seq(cljs.core.next(branches));
1099
+ var chunk__113792 = null;
1100
+ var count__113793 = (0);
1101
+ var i__113794 = (0);
1102
+ while(true){
1103
+ if((i__113794 < count__113793)){
1104
+ var b = chunk__113792.cljs$core$IIndexed$_nth$arity$2(null, i__113794);
1105
+ var vars_114322 = new cljs.core.Keyword(null,"vars","vars",-2046957217).cljs$core$IFn$_invoke$arity$1(b);
1106
+ if(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(arity0,datalog.parser.impl.rule_vars_arity(vars_114322))){
1107
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Arity mismatch for rule '",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"symbol","symbol",-1038572696).cljs$core$IFn$_invoke$arity$1(name)], 0)),"': ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datalog.parser.impl.flatten_rule_vars(vars0)], 0))," vs. ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datalog.parser.impl.flatten_rule_vars(vars_114322)], 0))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","rule","parser/rule",-464044566),new cljs.core.Keyword(null,"rule","rule",729973257),name], null));
1108
+ } else {
1109
+ }
1110
+
1111
+
1112
+ var G__114323 = seq__113790;
1113
+ var G__114324 = chunk__113792;
1114
+ var G__114325 = count__113793;
1115
+ var G__114326 = (i__113794 + (1));
1116
+ seq__113790 = G__114323;
1117
+ chunk__113792 = G__114324;
1118
+ count__113793 = G__114325;
1119
+ i__113794 = G__114326;
1120
+ continue;
1121
+ } else {
1122
+ var temp__5804__auto__ = cljs.core.seq(seq__113790);
1123
+ if(temp__5804__auto__){
1124
+ var seq__113790__$1 = temp__5804__auto__;
1125
+ if(cljs.core.chunked_seq_QMARK_(seq__113790__$1)){
1126
+ var c__5525__auto__ = cljs.core.chunk_first(seq__113790__$1);
1127
+ var G__114327 = cljs.core.chunk_rest(seq__113790__$1);
1128
+ var G__114328 = c__5525__auto__;
1129
+ var G__114329 = cljs.core.count(c__5525__auto__);
1130
+ var G__114330 = (0);
1131
+ seq__113790 = G__114327;
1132
+ chunk__113792 = G__114328;
1133
+ count__113793 = G__114329;
1134
+ i__113794 = G__114330;
1135
+ continue;
1136
+ } else {
1137
+ var b = cljs.core.first(seq__113790__$1);
1138
+ var vars_114331 = new cljs.core.Keyword(null,"vars","vars",-2046957217).cljs$core$IFn$_invoke$arity$1(b);
1139
+ if(cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(arity0,datalog.parser.impl.rule_vars_arity(vars_114331))){
1140
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Arity mismatch for rule '",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"symbol","symbol",-1038572696).cljs$core$IFn$_invoke$arity$1(name)], 0)),"': ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datalog.parser.impl.flatten_rule_vars(vars0)], 0))," vs. ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([datalog.parser.impl.flatten_rule_vars(vars_114331)], 0))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","rule","parser/rule",-464044566),new cljs.core.Keyword(null,"rule","rule",729973257),name], null));
1141
+ } else {
1142
+ }
1143
+
1144
+
1145
+ var G__114333 = cljs.core.next(seq__113790__$1);
1146
+ var G__114334 = null;
1147
+ var G__114335 = (0);
1148
+ var G__114336 = (0);
1149
+ seq__113790 = G__114333;
1150
+ chunk__113792 = G__114334;
1151
+ count__113793 = G__114335;
1152
+ i__113794 = G__114336;
1153
+ continue;
1154
+ }
1155
+ } else {
1156
+ return null;
1157
+ }
1158
+ }
1159
+ break;
1160
+ }
1161
+ });
1162
+ datalog.parser.impl.parse_rules = (function datalog$parser$impl$parse_rules(form){
1163
+ var name__GT_branch = cljs.core.group_by(new cljs.core.Keyword(null,"name","name",1843675177),datalog.parser.impl.parse_seq(datalog.parser.impl.parse_rule,form));
1164
+ return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,(function (){var iter__5480__auto__ = (function datalog$parser$impl$parse_rules_$_iter__113796(s__113797){
1165
+ return (new cljs.core.LazySeq(null,(function (){
1166
+ var s__113797__$1 = s__113797;
1167
+ while(true){
1168
+ var temp__5804__auto__ = cljs.core.seq(s__113797__$1);
1169
+ if(temp__5804__auto__){
1170
+ var s__113797__$2 = temp__5804__auto__;
1171
+ if(cljs.core.chunked_seq_QMARK_(s__113797__$2)){
1172
+ var c__5478__auto__ = cljs.core.chunk_first(s__113797__$2);
1173
+ var size__5479__auto__ = cljs.core.count(c__5478__auto__);
1174
+ var b__113799 = cljs.core.chunk_buffer(size__5479__auto__);
1175
+ if((function (){var i__113798 = (0);
1176
+ while(true){
1177
+ if((i__113798 < size__5479__auto__)){
1178
+ var vec__113800 = cljs.core._nth(c__5478__auto__,i__113798);
1179
+ var name = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113800,(0),null);
1180
+ var branches = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113800,(1),null);
1181
+ var branches__$1 = cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,(function (){var iter__5480__auto__ = ((function (i__113798,vec__113800,name,branches,c__5478__auto__,size__5479__auto__,b__113799,s__113797__$2,temp__5804__auto__,name__GT_branch){
1182
+ return (function datalog$parser$impl$parse_rules_$_iter__113796_$_iter__113803(s__113804){
1183
+ return (new cljs.core.LazySeq(null,((function (i__113798,vec__113800,name,branches,c__5478__auto__,size__5479__auto__,b__113799,s__113797__$2,temp__5804__auto__,name__GT_branch){
1184
+ return (function (){
1185
+ var s__113804__$1 = s__113804;
1186
+ while(true){
1187
+ var temp__5804__auto____$1 = cljs.core.seq(s__113804__$1);
1188
+ if(temp__5804__auto____$1){
1189
+ var s__113804__$2 = temp__5804__auto____$1;
1190
+ if(cljs.core.chunked_seq_QMARK_(s__113804__$2)){
1191
+ var c__5478__auto____$1 = cljs.core.chunk_first(s__113804__$2);
1192
+ var size__5479__auto____$1 = cljs.core.count(c__5478__auto____$1);
1193
+ var b__113806 = cljs.core.chunk_buffer(size__5479__auto____$1);
1194
+ if((function (){var i__113805 = (0);
1195
+ while(true){
1196
+ if((i__113805 < size__5479__auto____$1)){
1197
+ var b = cljs.core._nth(c__5478__auto____$1,i__113805);
1198
+ cljs.core.chunk_append(b__113806,(new datalog.parser.type.RuleBranch(new cljs.core.Keyword(null,"vars","vars",-2046957217).cljs$core$IFn$_invoke$arity$1(b),new cljs.core.Keyword(null,"clauses","clauses",1454841241).cljs$core$IFn$_invoke$arity$1(b),null,null,null)));
1199
+
1200
+ var G__114342 = (i__113805 + (1));
1201
+ i__113805 = G__114342;
1202
+ continue;
1203
+ } else {
1204
+ return true;
1205
+ }
1206
+ break;
1207
+ }
1208
+ })()){
1209
+ return cljs.core.chunk_cons(cljs.core.chunk(b__113806),datalog$parser$impl$parse_rules_$_iter__113796_$_iter__113803(cljs.core.chunk_rest(s__113804__$2)));
1210
+ } else {
1211
+ return cljs.core.chunk_cons(cljs.core.chunk(b__113806),null);
1212
+ }
1213
+ } else {
1214
+ var b = cljs.core.first(s__113804__$2);
1215
+ return cljs.core.cons((new datalog.parser.type.RuleBranch(new cljs.core.Keyword(null,"vars","vars",-2046957217).cljs$core$IFn$_invoke$arity$1(b),new cljs.core.Keyword(null,"clauses","clauses",1454841241).cljs$core$IFn$_invoke$arity$1(b),null,null,null)),datalog$parser$impl$parse_rules_$_iter__113796_$_iter__113803(cljs.core.rest(s__113804__$2)));
1216
+ }
1217
+ } else {
1218
+ return null;
1219
+ }
1220
+ break;
1221
+ }
1222
+ });})(i__113798,vec__113800,name,branches,c__5478__auto__,size__5479__auto__,b__113799,s__113797__$2,temp__5804__auto__,name__GT_branch))
1223
+ ,null,null));
1224
+ });})(i__113798,vec__113800,name,branches,c__5478__auto__,size__5479__auto__,b__113799,s__113797__$2,temp__5804__auto__,name__GT_branch))
1225
+ ;
1226
+ return iter__5480__auto__(branches);
1227
+ })());
1228
+ cljs.core.chunk_append(b__113799,(function (){
1229
+ datalog.parser.impl.validate_arity(name,branches__$1);
1230
+
1231
+ return (new datalog.parser.type.Rule(name,branches__$1,null,null,null));
1232
+ })()
1233
+ );
1234
+
1235
+ var G__114348 = (i__113798 + (1));
1236
+ i__113798 = G__114348;
1237
+ continue;
1238
+ } else {
1239
+ return true;
1240
+ }
1241
+ break;
1242
+ }
1243
+ })()){
1244
+ return cljs.core.chunk_cons(cljs.core.chunk(b__113799),datalog$parser$impl$parse_rules_$_iter__113796(cljs.core.chunk_rest(s__113797__$2)));
1245
+ } else {
1246
+ return cljs.core.chunk_cons(cljs.core.chunk(b__113799),null);
1247
+ }
1248
+ } else {
1249
+ var vec__113807 = cljs.core.first(s__113797__$2);
1250
+ var name = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113807,(0),null);
1251
+ var branches = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__113807,(1),null);
1252
+ var branches__$1 = cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,(function (){var iter__5480__auto__ = ((function (vec__113807,name,branches,s__113797__$2,temp__5804__auto__,name__GT_branch){
1253
+ return (function datalog$parser$impl$parse_rules_$_iter__113796_$_iter__113810(s__113811){
1254
+ return (new cljs.core.LazySeq(null,(function (){
1255
+ var s__113811__$1 = s__113811;
1256
+ while(true){
1257
+ var temp__5804__auto____$1 = cljs.core.seq(s__113811__$1);
1258
+ if(temp__5804__auto____$1){
1259
+ var s__113811__$2 = temp__5804__auto____$1;
1260
+ if(cljs.core.chunked_seq_QMARK_(s__113811__$2)){
1261
+ var c__5478__auto__ = cljs.core.chunk_first(s__113811__$2);
1262
+ var size__5479__auto__ = cljs.core.count(c__5478__auto__);
1263
+ var b__113813 = cljs.core.chunk_buffer(size__5479__auto__);
1264
+ if((function (){var i__113812 = (0);
1265
+ while(true){
1266
+ if((i__113812 < size__5479__auto__)){
1267
+ var b = cljs.core._nth(c__5478__auto__,i__113812);
1268
+ cljs.core.chunk_append(b__113813,(new datalog.parser.type.RuleBranch(new cljs.core.Keyword(null,"vars","vars",-2046957217).cljs$core$IFn$_invoke$arity$1(b),new cljs.core.Keyword(null,"clauses","clauses",1454841241).cljs$core$IFn$_invoke$arity$1(b),null,null,null)));
1269
+
1270
+ var G__114359 = (i__113812 + (1));
1271
+ i__113812 = G__114359;
1272
+ continue;
1273
+ } else {
1274
+ return true;
1275
+ }
1276
+ break;
1277
+ }
1278
+ })()){
1279
+ return cljs.core.chunk_cons(cljs.core.chunk(b__113813),datalog$parser$impl$parse_rules_$_iter__113796_$_iter__113810(cljs.core.chunk_rest(s__113811__$2)));
1280
+ } else {
1281
+ return cljs.core.chunk_cons(cljs.core.chunk(b__113813),null);
1282
+ }
1283
+ } else {
1284
+ var b = cljs.core.first(s__113811__$2);
1285
+ return cljs.core.cons((new datalog.parser.type.RuleBranch(new cljs.core.Keyword(null,"vars","vars",-2046957217).cljs$core$IFn$_invoke$arity$1(b),new cljs.core.Keyword(null,"clauses","clauses",1454841241).cljs$core$IFn$_invoke$arity$1(b),null,null,null)),datalog$parser$impl$parse_rules_$_iter__113796_$_iter__113810(cljs.core.rest(s__113811__$2)));
1286
+ }
1287
+ } else {
1288
+ return null;
1289
+ }
1290
+ break;
1291
+ }
1292
+ }),null,null));
1293
+ });})(vec__113807,name,branches,s__113797__$2,temp__5804__auto__,name__GT_branch))
1294
+ ;
1295
+ return iter__5480__auto__(branches);
1296
+ })());
1297
+ return cljs.core.cons((function (){
1298
+ datalog.parser.impl.validate_arity(name,branches__$1);
1299
+
1300
+ return (new datalog.parser.type.Rule(name,branches__$1,null,null,null));
1301
+ })()
1302
+ ,datalog$parser$impl$parse_rules_$_iter__113796(cljs.core.rest(s__113797__$2)));
1303
+ }
1304
+ } else {
1305
+ return null;
1306
+ }
1307
+ break;
1308
+ }
1309
+ }),null,null));
1310
+ });
1311
+ return iter__5480__auto__(name__GT_branch);
1312
+ })());
1313
+ });
1314
+ datalog.parser.impl.query__GT_map = (function datalog$parser$impl$query__GT_map(query){
1315
+ var allowed_keys = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 9, [new cljs.core.Keyword(null,"find","find",496279456),null,new cljs.core.Keyword(null,"where","where",-2044795965),null,new cljs.core.Keyword(null,"limit","limit",-1355822363),null,new cljs.core.Keyword(null,"offset","offset",296498311),null,new cljs.core.Keyword(null,"syms","syms",-1575891762),null,new cljs.core.Keyword(null,"keys","keys",1068423698),null,new cljs.core.Keyword(null,"with","with",-1536296876),null,new cljs.core.Keyword(null,"strs","strs",1175537277),null,new cljs.core.Keyword(null,"in","in",-1531184865),null], null), null);
1316
+ var parsed = cljs.core.PersistentArrayMap.EMPTY;
1317
+ var key = null;
1318
+ var qs = query;
1319
+ while(true){
1320
+ var temp__5802__auto__ = cljs.core.not_empty(qs);
1321
+ if(cljs.core.truth_(temp__5802__auto__)){
1322
+ var vec__113817 = temp__5802__auto__;
1323
+ var seq__113818 = cljs.core.seq(vec__113817);
1324
+ var first__113819 = cljs.core.first(seq__113818);
1325
+ var seq__113818__$1 = cljs.core.next(seq__113818);
1326
+ var q = first__113819;
1327
+ var qs__$1 = seq__113818__$1;
1328
+ if(cljs.core.truth_((allowed_keys.cljs$core$IFn$_invoke$arity$1 ? allowed_keys.cljs$core$IFn$_invoke$arity$1(q) : allowed_keys.call(null, q)))){
1329
+ var G__114371 = parsed;
1330
+ var G__114372 = q;
1331
+ var G__114373 = qs__$1;
1332
+ parsed = G__114371;
1333
+ key = G__114372;
1334
+ qs = G__114373;
1335
+ continue;
1336
+ } else {
1337
+ var G__114374 = cljs.core.update.cljs$core$IFn$_invoke$arity$4(parsed,key,cljs.core.fnil.cljs$core$IFn$_invoke$arity$2(cljs.core.conj,cljs.core.PersistentVector.EMPTY),q);
1338
+ var G__114375 = key;
1339
+ var G__114376 = qs__$1;
1340
+ parsed = G__114374;
1341
+ key = G__114375;
1342
+ qs = G__114376;
1343
+ continue;
1344
+ }
1345
+ } else {
1346
+ return parsed;
1347
+ }
1348
+ break;
1349
+ }
1350
+ });
1351
+ datalog.parser.impl.assert_valid = (function datalog$parser$impl$assert_valid(q,form,p__113820){
1352
+ var map__113821 = p__113820;
1353
+ var map__113821__$1 = cljs.core.__destructure_map(map__113821);
1354
+ var _mform = map__113821__$1;
1355
+ var find = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__113821__$1,new cljs.core.Keyword(null,"find","find",496279456));
1356
+ var find_vars_114381 = datalog.parser.type.collect_vars.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,"qfind","qfind",1529332972).cljs$core$IFn$_invoke$arity$1(q));
1357
+ var with_vars_114382 = cljs.core.set(new cljs.core.Keyword(null,"qwith","qwith",-45809392).cljs$core$IFn$_invoke$arity$1(q));
1358
+ var in_vars_114383 = datalog.parser.type.collect_vars.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,"qin","qin",1372651151).cljs$core$IFn$_invoke$arity$1(q));
1359
+ var where_vars_114385 = datalog.parser.type.collect_vars.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,"qwhere","qwhere",-1645067378).cljs$core$IFn$_invoke$arity$1(q));
1360
+ var mapping_keys_114386 = datalog.parser.type.collect_vars.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentHashSet.EMPTY,new cljs.core.Keyword(null,"qreturnmaps","qreturnmaps",994928630).cljs$core$IFn$_invoke$arity$1(q));
1361
+ var unknown_114387 = clojure.set.difference.cljs$core$IFn$_invoke$arity$2(clojure.set.union.cljs$core$IFn$_invoke$arity$2(find_vars_114381,with_vars_114382),clojure.set.union.cljs$core$IFn$_invoke$arity$2(where_vars_114385,in_vars_114383));
1362
+ var shared_114388 = clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(find_vars_114381,with_vars_114382);
1363
+ var mapped_QMARK__114389 = ((cljs.core.empty_QMARK_(mapping_keys_114386)) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.count(mapping_keys_114386),cljs.core.count(find))));
1364
+ if(cljs.core.empty_QMARK_(unknown_114387)){
1365
+ } else {
1366
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Query for unknown vars: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"symbol","symbol",-1038572696),unknown_114387)], 0))].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","query","parser/query",1877320671),new cljs.core.Keyword(null,"vars","vars",-2046957217),unknown_114387,new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
1367
+ }
1368
+
1369
+ if(cljs.core.empty_QMARK_(shared_114388)){
1370
+ } else {
1371
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2([":find and :with should not use same variables: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"symbol","symbol",-1038572696),shared_114388)], 0))].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","query","parser/query",1877320671),new cljs.core.Keyword(null,"vars","vars",-2046957217),shared_114388,new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
1372
+ }
1373
+
1374
+ if(mapped_QMARK__114389){
1375
+ } else {
1376
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Count of :keys/:strs/:syms must match count of :find",new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","query","parser/query",1877320671),new cljs.core.Keyword(null,"keys","keys",1068423698),mapping_keys_114386,new cljs.core.Keyword(null,"values","values",372645556),in_vars_114383,new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
1377
+ }
1378
+
1379
+ var in_vars_114412 = datalog.parser.type.collect_vars.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"qin","qin",1372651151).cljs$core$IFn$_invoke$arity$1(q));
1380
+ var in_sources_114413 = datalog.parser.impl.collect_type.cljs$core$IFn$_invoke$arity$2(datalog.parser.type.SrcVar,new cljs.core.Keyword(null,"qin","qin",1372651151).cljs$core$IFn$_invoke$arity$1(q));
1381
+ var in_rules_114414 = datalog.parser.impl.collect_type.cljs$core$IFn$_invoke$arity$2(datalog.parser.type.RulesVar,new cljs.core.Keyword(null,"qin","qin",1372651151).cljs$core$IFn$_invoke$arity$1(q));
1382
+ if(cljs.core.truth_((function (){var and__5000__auto__ = datalog.parser.impl.distinct_QMARK_(in_vars_114412);
1383
+ if(cljs.core.truth_(and__5000__auto__)){
1384
+ var and__5000__auto____$1 = datalog.parser.impl.distinct_QMARK_(in_sources_114413);
1385
+ if(cljs.core.truth_(and__5000__auto____$1)){
1386
+ return datalog.parser.impl.distinct_QMARK_(in_rules_114414);
1387
+ } else {
1388
+ return and__5000__auto____$1;
1389
+ }
1390
+ } else {
1391
+ return and__5000__auto__;
1392
+ }
1393
+ })())){
1394
+ } else {
1395
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Vars used in :in should be distinct",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","query","parser/query",1877320671),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
1396
+ }
1397
+
1398
+ var with_vars_114421 = datalog.parser.type.collect_vars.cljs$core$IFn$_invoke$arity$1(new cljs.core.Keyword(null,"qwith","qwith",-45809392).cljs$core$IFn$_invoke$arity$1(q));
1399
+ if(cljs.core.truth_(datalog.parser.impl.distinct_QMARK_(with_vars_114421))){
1400
+ } else {
1401
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Vars used in :with should be distinct",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","query","parser/query",1877320671),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
1402
+ }
1403
+
1404
+ var in_sources_114423 = datalog.parser.impl.collect_type.cljs$core$IFn$_invoke$arity$3(datalog.parser.type.SrcVar,new cljs.core.Keyword(null,"qin","qin",1372651151).cljs$core$IFn$_invoke$arity$1(q),cljs.core.PersistentHashSet.EMPTY);
1405
+ var where_sources_114424 = datalog.parser.impl.collect_type.cljs$core$IFn$_invoke$arity$3(datalog.parser.type.SrcVar,new cljs.core.Keyword(null,"qwhere","qwhere",-1645067378).cljs$core$IFn$_invoke$arity$1(q),cljs.core.PersistentHashSet.EMPTY);
1406
+ var unknown_114425 = clojure.set.difference.cljs$core$IFn$_invoke$arity$2(where_sources_114424,in_sources_114423);
1407
+ if(cljs.core.empty_QMARK_(unknown_114425)){
1408
+ } else {
1409
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Where uses unknown source vars: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"symbol","symbol",-1038572696),unknown_114425)], 0))].join(''),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","query","parser/query",1877320671),new cljs.core.Keyword(null,"vars","vars",-2046957217),unknown_114425,new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
1410
+ }
1411
+
1412
+ var rule_exprs = datalog.parser.impl.collect_type.cljs$core$IFn$_invoke$arity$2(datalog.parser.type.RuleExpr,new cljs.core.Keyword(null,"qwhere","qwhere",-1645067378).cljs$core$IFn$_invoke$arity$1(q));
1413
+ var rules_vars = datalog.parser.impl.collect_type.cljs$core$IFn$_invoke$arity$2(datalog.parser.type.RulesVar,new cljs.core.Keyword(null,"qin","qin",1372651151).cljs$core$IFn$_invoke$arity$1(q));
1414
+ if(((cljs.core.seq(rule_exprs)) && (cljs.core.empty_QMARK_(rules_vars)))){
1415
+ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("Missing rules var '%' in :in",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"error","error",-978969032),new cljs.core.Keyword("parser","query","parser/query",1877320671),new cljs.core.Keyword(null,"form","form",-1624062471),form], null));
1416
+ } else {
1417
+ return null;
1418
+ }
1419
+ });
1420
+
1421
+ //# sourceMappingURL=datalog.parser.impl.js.map