@higher.archi/boe 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (982) hide show
  1. package/dist/core/compilers/condition.compiler.d.ts +26 -0
  2. package/dist/core/compilers/condition.compiler.d.ts.map +1 -0
  3. package/dist/core/compilers/condition.compiler.js +159 -0
  4. package/dist/core/compilers/condition.compiler.js.map +1 -0
  5. package/dist/core/compilers/index.d.ts +5 -0
  6. package/dist/core/compilers/index.d.ts.map +1 -0
  7. package/dist/core/compilers/index.js +11 -0
  8. package/dist/core/compilers/index.js.map +1 -0
  9. package/dist/core/engine/engine.interface.d.ts +44 -0
  10. package/dist/core/engine/engine.interface.d.ts.map +1 -0
  11. package/dist/core/engine/engine.interface.js +10 -0
  12. package/dist/core/engine/engine.interface.js.map +1 -0
  13. package/dist/core/engine/index.d.ts +5 -0
  14. package/dist/core/engine/index.d.ts.map +1 -0
  15. package/dist/core/engine/index.js +6 -0
  16. package/dist/core/engine/index.js.map +1 -0
  17. package/dist/core/evaluation/condition.evaluator.d.ts +18 -0
  18. package/dist/core/evaluation/condition.evaluator.d.ts.map +1 -0
  19. package/dist/core/evaluation/condition.evaluator.js +179 -0
  20. package/dist/core/evaluation/condition.evaluator.js.map +1 -0
  21. package/dist/core/evaluation/index.d.ts +7 -0
  22. package/dist/core/evaluation/index.d.ts.map +1 -0
  23. package/dist/core/evaluation/index.js +19 -0
  24. package/dist/core/evaluation/index.js.map +1 -0
  25. package/dist/core/evaluation/temporal.d.ts +52 -0
  26. package/dist/core/evaluation/temporal.d.ts.map +1 -0
  27. package/dist/core/evaluation/temporal.js +166 -0
  28. package/dist/core/evaluation/temporal.js.map +1 -0
  29. package/dist/core/index.d.ts +25 -0
  30. package/dist/core/index.d.ts.map +1 -0
  31. package/dist/core/index.js +73 -0
  32. package/dist/core/index.js.map +1 -0
  33. package/dist/core/matching/activation.types.d.ts +11 -0
  34. package/dist/core/matching/activation.types.d.ts.map +1 -0
  35. package/dist/core/matching/activation.types.js +6 -0
  36. package/dist/core/matching/activation.types.js.map +1 -0
  37. package/dist/core/matching/index.d.ts +6 -0
  38. package/dist/core/matching/index.d.ts.map +1 -0
  39. package/dist/core/matching/index.js +10 -0
  40. package/dist/core/matching/index.js.map +1 -0
  41. package/dist/core/matching/matcher.d.ts +17 -0
  42. package/dist/core/matching/matcher.d.ts.map +1 -0
  43. package/dist/core/matching/matcher.js +93 -0
  44. package/dist/core/matching/matcher.js.map +1 -0
  45. package/dist/core/memory/index.d.ts +6 -0
  46. package/dist/core/memory/index.d.ts.map +1 -0
  47. package/dist/core/memory/index.js +9 -0
  48. package/dist/core/memory/index.js.map +1 -0
  49. package/dist/core/memory/working-memory.d.ts +26 -0
  50. package/dist/core/memory/working-memory.d.ts.map +1 -0
  51. package/dist/core/memory/working-memory.interface.d.ts +84 -0
  52. package/dist/core/memory/working-memory.interface.d.ts.map +1 -0
  53. package/dist/core/memory/working-memory.interface.js +6 -0
  54. package/dist/core/memory/working-memory.interface.js.map +1 -0
  55. package/dist/core/memory/working-memory.js +102 -0
  56. package/dist/core/memory/working-memory.js.map +1 -0
  57. package/dist/core/operators/adapters/context.adapter.d.ts +32 -0
  58. package/dist/core/operators/adapters/context.adapter.d.ts.map +1 -0
  59. package/dist/core/operators/adapters/context.adapter.js +36 -0
  60. package/dist/core/operators/adapters/context.adapter.js.map +1 -0
  61. package/dist/core/operators/adapters/index.d.ts +9 -0
  62. package/dist/core/operators/adapters/index.d.ts.map +1 -0
  63. package/dist/core/operators/adapters/index.js +22 -0
  64. package/dist/core/operators/adapters/index.js.map +1 -0
  65. package/dist/core/operators/adapters/operator.adapter.d.ts +94 -0
  66. package/dist/core/operators/adapters/operator.adapter.d.ts.map +1 -0
  67. package/dist/core/operators/adapters/operator.adapter.js +156 -0
  68. package/dist/core/operators/adapters/operator.adapter.js.map +1 -0
  69. package/dist/core/operators/arithmetic/add.d.ts +17 -0
  70. package/dist/core/operators/arithmetic/add.d.ts.map +1 -0
  71. package/dist/core/operators/arithmetic/add.js +35 -0
  72. package/dist/core/operators/arithmetic/add.js.map +1 -0
  73. package/dist/core/operators/arithmetic/average.d.ts +13 -0
  74. package/dist/core/operators/arithmetic/average.d.ts.map +1 -0
  75. package/dist/core/operators/arithmetic/average.js +21 -0
  76. package/dist/core/operators/arithmetic/average.js.map +1 -0
  77. package/dist/core/operators/arithmetic/divide.d.ts +17 -0
  78. package/dist/core/operators/arithmetic/divide.d.ts.map +1 -0
  79. package/dist/core/operators/arithmetic/divide.js +33 -0
  80. package/dist/core/operators/arithmetic/divide.js.map +1 -0
  81. package/dist/core/operators/arithmetic/index.d.ts +20 -0
  82. package/dist/core/operators/arithmetic/index.d.ts.map +1 -0
  83. package/dist/core/operators/arithmetic/index.js +59 -0
  84. package/dist/core/operators/arithmetic/index.js.map +1 -0
  85. package/dist/core/operators/arithmetic/min-max.d.ts +25 -0
  86. package/dist/core/operators/arithmetic/min-max.d.ts.map +1 -0
  87. package/dist/core/operators/arithmetic/min-max.js +51 -0
  88. package/dist/core/operators/arithmetic/min-max.js.map +1 -0
  89. package/dist/core/operators/arithmetic/multiply.d.ts +17 -0
  90. package/dist/core/operators/arithmetic/multiply.d.ts.map +1 -0
  91. package/dist/core/operators/arithmetic/multiply.js +31 -0
  92. package/dist/core/operators/arithmetic/multiply.js.map +1 -0
  93. package/dist/core/operators/arithmetic/number-checks.d.ts +41 -0
  94. package/dist/core/operators/arithmetic/number-checks.d.ts.map +1 -0
  95. package/dist/core/operators/arithmetic/number-checks.js +84 -0
  96. package/dist/core/operators/arithmetic/number-checks.js.map +1 -0
  97. package/dist/core/operators/arithmetic/power.d.ts +17 -0
  98. package/dist/core/operators/arithmetic/power.d.ts.map +1 -0
  99. package/dist/core/operators/arithmetic/power.js +31 -0
  100. package/dist/core/operators/arithmetic/power.js.map +1 -0
  101. package/dist/core/operators/arithmetic/rounding.d.ts +29 -0
  102. package/dist/core/operators/arithmetic/rounding.d.ts.map +1 -0
  103. package/dist/core/operators/arithmetic/rounding.js +59 -0
  104. package/dist/core/operators/arithmetic/rounding.js.map +1 -0
  105. package/dist/core/operators/arithmetic/subtract.d.ts +17 -0
  106. package/dist/core/operators/arithmetic/subtract.d.ts.map +1 -0
  107. package/dist/core/operators/arithmetic/subtract.js +32 -0
  108. package/dist/core/operators/arithmetic/subtract.js.map +1 -0
  109. package/dist/core/operators/array/contains.d.ts +29 -0
  110. package/dist/core/operators/array/contains.d.ts.map +1 -0
  111. package/dist/core/operators/array/contains.js +61 -0
  112. package/dist/core/operators/array/contains.js.map +1 -0
  113. package/dist/core/operators/array/index.d.ts +12 -0
  114. package/dist/core/operators/array/index.d.ts.map +1 -0
  115. package/dist/core/operators/array/index.js +35 -0
  116. package/dist/core/operators/array/index.js.map +1 -0
  117. package/dist/core/operators/comparison/approximately-equals.d.ts +17 -0
  118. package/dist/core/operators/comparison/approximately-equals.d.ts.map +1 -0
  119. package/dist/core/operators/comparison/approximately-equals.js +35 -0
  120. package/dist/core/operators/comparison/approximately-equals.js.map +1 -0
  121. package/dist/core/operators/comparison/equals.d.ts +18 -0
  122. package/dist/core/operators/comparison/equals.d.ts.map +1 -0
  123. package/dist/core/operators/comparison/equals.js +40 -0
  124. package/dist/core/operators/comparison/equals.js.map +1 -0
  125. package/dist/core/operators/comparison/greater-than.d.ts +18 -0
  126. package/dist/core/operators/comparison/greater-than.d.ts.map +1 -0
  127. package/dist/core/operators/comparison/greater-than.js +42 -0
  128. package/dist/core/operators/comparison/greater-than.js.map +1 -0
  129. package/dist/core/operators/comparison/index.d.ts +17 -0
  130. package/dist/core/operators/comparison/index.d.ts.map +1 -0
  131. package/dist/core/operators/comparison/index.js +50 -0
  132. package/dist/core/operators/comparison/index.js.map +1 -0
  133. package/dist/core/operators/comparison/less-than.d.ts +18 -0
  134. package/dist/core/operators/comparison/less-than.d.ts.map +1 -0
  135. package/dist/core/operators/comparison/less-than.js +42 -0
  136. package/dist/core/operators/comparison/less-than.js.map +1 -0
  137. package/dist/core/operators/comparison/not-equals.d.ts +18 -0
  138. package/dist/core/operators/comparison/not-equals.d.ts.map +1 -0
  139. package/dist/core/operators/comparison/not-equals.js +40 -0
  140. package/dist/core/operators/comparison/not-equals.js.map +1 -0
  141. package/dist/core/operators/comparison/nullish.d.ts +45 -0
  142. package/dist/core/operators/comparison/nullish.d.ts.map +1 -0
  143. package/dist/core/operators/comparison/nullish.js +110 -0
  144. package/dist/core/operators/comparison/nullish.js.map +1 -0
  145. package/dist/core/operators/date/arithmetic.d.ts +24 -0
  146. package/dist/core/operators/date/arithmetic.d.ts.map +1 -0
  147. package/dist/core/operators/date/arithmetic.js +170 -0
  148. package/dist/core/operators/date/arithmetic.js.map +1 -0
  149. package/dist/core/operators/date/boundaries.d.ts +18 -0
  150. package/dist/core/operators/date/boundaries.d.ts.map +1 -0
  151. package/dist/core/operators/date/boundaries.js +115 -0
  152. package/dist/core/operators/date/boundaries.js.map +1 -0
  153. package/dist/core/operators/date/checks.d.ts +16 -0
  154. package/dist/core/operators/date/checks.d.ts.map +1 -0
  155. package/dist/core/operators/date/checks.js +81 -0
  156. package/dist/core/operators/date/checks.js.map +1 -0
  157. package/dist/core/operators/date/comparisons.d.ts +16 -0
  158. package/dist/core/operators/date/comparisons.d.ts.map +1 -0
  159. package/dist/core/operators/date/comparisons.js +86 -0
  160. package/dist/core/operators/date/comparisons.js.map +1 -0
  161. package/dist/core/operators/date/constants.d.ts +38 -0
  162. package/dist/core/operators/date/constants.d.ts.map +1 -0
  163. package/dist/core/operators/date/constants.js +82 -0
  164. package/dist/core/operators/date/constants.js.map +1 -0
  165. package/dist/core/operators/date/differences.d.ts +18 -0
  166. package/dist/core/operators/date/differences.d.ts.map +1 -0
  167. package/dist/core/operators/date/differences.js +105 -0
  168. package/dist/core/operators/date/differences.js.map +1 -0
  169. package/dist/core/operators/date/extraction.d.ts +19 -0
  170. package/dist/core/operators/date/extraction.d.ts.map +1 -0
  171. package/dist/core/operators/date/extraction.js +98 -0
  172. package/dist/core/operators/date/extraction.js.map +1 -0
  173. package/dist/core/operators/date/generators.d.ts +24 -0
  174. package/dist/core/operators/date/generators.d.ts.map +1 -0
  175. package/dist/core/operators/date/generators.js +156 -0
  176. package/dist/core/operators/date/generators.js.map +1 -0
  177. package/dist/core/operators/date/index.d.ts +31 -0
  178. package/dist/core/operators/date/index.d.ts.map +1 -0
  179. package/dist/core/operators/date/index.js +80 -0
  180. package/dist/core/operators/date/index.js.map +1 -0
  181. package/dist/core/operators/date/range.d.ts +17 -0
  182. package/dist/core/operators/date/range.d.ts.map +1 -0
  183. package/dist/core/operators/date/range.js +34 -0
  184. package/dist/core/operators/date/range.js.map +1 -0
  185. package/dist/core/operators/evaluator.d.ts +71 -0
  186. package/dist/core/operators/evaluator.d.ts.map +1 -0
  187. package/dist/core/operators/evaluator.js +186 -0
  188. package/dist/core/operators/evaluator.js.map +1 -0
  189. package/dist/core/operators/examples.d.ts +8 -0
  190. package/dist/core/operators/examples.d.ts.map +1 -0
  191. package/dist/core/operators/examples.js +184 -0
  192. package/dist/core/operators/examples.js.map +1 -0
  193. package/dist/core/operators/index.d.ts +82 -0
  194. package/dist/core/operators/index.d.ts.map +1 -0
  195. package/dist/core/operators/index.js +142 -0
  196. package/dist/core/operators/index.js.map +1 -0
  197. package/dist/core/operators/logical/and.d.ts +13 -0
  198. package/dist/core/operators/logical/and.d.ts.map +1 -0
  199. package/dist/core/operators/logical/and.js +21 -0
  200. package/dist/core/operators/logical/and.js.map +1 -0
  201. package/dist/core/operators/logical/if.d.ts +19 -0
  202. package/dist/core/operators/logical/if.d.ts.map +1 -0
  203. package/dist/core/operators/logical/if.js +27 -0
  204. package/dist/core/operators/logical/if.js.map +1 -0
  205. package/dist/core/operators/logical/index.d.ts +16 -0
  206. package/dist/core/operators/logical/index.d.ts.map +1 -0
  207. package/dist/core/operators/logical/index.js +47 -0
  208. package/dist/core/operators/logical/index.js.map +1 -0
  209. package/dist/core/operators/logical/not.d.ts +13 -0
  210. package/dist/core/operators/logical/not.d.ts.map +1 -0
  211. package/dist/core/operators/logical/not.js +21 -0
  212. package/dist/core/operators/logical/not.js.map +1 -0
  213. package/dist/core/operators/logical/or.d.ts +13 -0
  214. package/dist/core/operators/logical/or.d.ts.map +1 -0
  215. package/dist/core/operators/logical/or.js +21 -0
  216. package/dist/core/operators/logical/or.js.map +1 -0
  217. package/dist/core/operators/logical/xor.d.ts +17 -0
  218. package/dist/core/operators/logical/xor.d.ts.map +1 -0
  219. package/dist/core/operators/logical/xor.js +31 -0
  220. package/dist/core/operators/logical/xor.js.map +1 -0
  221. package/dist/core/operators/operator.d.ts +171 -0
  222. package/dist/core/operators/operator.d.ts.map +1 -0
  223. package/dist/core/operators/operator.js +230 -0
  224. package/dist/core/operators/operator.js.map +1 -0
  225. package/dist/core/operators/phonetic/caverphone.d.ts +17 -0
  226. package/dist/core/operators/phonetic/caverphone.d.ts.map +1 -0
  227. package/dist/core/operators/phonetic/caverphone.js +31 -0
  228. package/dist/core/operators/phonetic/caverphone.js.map +1 -0
  229. package/dist/core/operators/phonetic/index.d.ts +14 -0
  230. package/dist/core/operators/phonetic/index.d.ts.map +1 -0
  231. package/dist/core/operators/phonetic/index.js +41 -0
  232. package/dist/core/operators/phonetic/index.js.map +1 -0
  233. package/dist/core/operators/phonetic/nysiis.d.ts +17 -0
  234. package/dist/core/operators/phonetic/nysiis.d.ts.map +1 -0
  235. package/dist/core/operators/phonetic/nysiis.js +31 -0
  236. package/dist/core/operators/phonetic/nysiis.js.map +1 -0
  237. package/dist/core/operators/phonetic/soundex.d.ts +17 -0
  238. package/dist/core/operators/phonetic/soundex.d.ts.map +1 -0
  239. package/dist/core/operators/phonetic/soundex.js +32 -0
  240. package/dist/core/operators/phonetic/soundex.js.map +1 -0
  241. package/dist/core/operators/registry.d.ts +89 -0
  242. package/dist/core/operators/registry.d.ts.map +1 -0
  243. package/dist/core/operators/registry.js +217 -0
  244. package/dist/core/operators/registry.js.map +1 -0
  245. package/dist/core/operators/similarity/cosine.d.ts +13 -0
  246. package/dist/core/operators/similarity/cosine.d.ts.map +1 -0
  247. package/dist/core/operators/similarity/cosine.js +23 -0
  248. package/dist/core/operators/similarity/cosine.js.map +1 -0
  249. package/dist/core/operators/similarity/index.d.ts +12 -0
  250. package/dist/core/operators/similarity/index.d.ts.map +1 -0
  251. package/dist/core/operators/similarity/index.js +35 -0
  252. package/dist/core/operators/similarity/index.js.map +1 -0
  253. package/dist/core/operators/string/contains.d.ts +17 -0
  254. package/dist/core/operators/string/contains.d.ts.map +1 -0
  255. package/dist/core/operators/string/contains.js +33 -0
  256. package/dist/core/operators/string/contains.js.map +1 -0
  257. package/dist/core/operators/string/empty.d.ts +21 -0
  258. package/dist/core/operators/string/empty.d.ts.map +1 -0
  259. package/dist/core/operators/string/empty.js +41 -0
  260. package/dist/core/operators/string/empty.js.map +1 -0
  261. package/dist/core/operators/string/ends-with.d.ts +17 -0
  262. package/dist/core/operators/string/ends-with.d.ts.map +1 -0
  263. package/dist/core/operators/string/ends-with.js +31 -0
  264. package/dist/core/operators/string/ends-with.js.map +1 -0
  265. package/dist/core/operators/string/index.d.ts +16 -0
  266. package/dist/core/operators/string/index.d.ts.map +1 -0
  267. package/dist/core/operators/string/index.js +47 -0
  268. package/dist/core/operators/string/index.js.map +1 -0
  269. package/dist/core/operators/string/regex.d.ts +17 -0
  270. package/dist/core/operators/string/regex.d.ts.map +1 -0
  271. package/dist/core/operators/string/regex.js +33 -0
  272. package/dist/core/operators/string/regex.js.map +1 -0
  273. package/dist/core/operators/string/starts-with.d.ts +17 -0
  274. package/dist/core/operators/string/starts-with.d.ts.map +1 -0
  275. package/dist/core/operators/string/starts-with.js +31 -0
  276. package/dist/core/operators/string/starts-with.js.map +1 -0
  277. package/dist/core/operators/transform/case.d.ts +25 -0
  278. package/dist/core/operators/transform/case.d.ts.map +1 -0
  279. package/dist/core/operators/transform/case.js +54 -0
  280. package/dist/core/operators/transform/case.js.map +1 -0
  281. package/dist/core/operators/transform/concat.d.ts +21 -0
  282. package/dist/core/operators/transform/concat.d.ts.map +1 -0
  283. package/dist/core/operators/transform/concat.js +40 -0
  284. package/dist/core/operators/transform/concat.js.map +1 -0
  285. package/dist/core/operators/transform/index.d.ts +18 -0
  286. package/dist/core/operators/transform/index.d.ts.map +1 -0
  287. package/dist/core/operators/transform/index.js +53 -0
  288. package/dist/core/operators/transform/index.js.map +1 -0
  289. package/dist/core/operators/transform/length.d.ts +17 -0
  290. package/dist/core/operators/transform/length.d.ts.map +1 -0
  291. package/dist/core/operators/transform/length.js +35 -0
  292. package/dist/core/operators/transform/length.js.map +1 -0
  293. package/dist/core/operators/transform/pad.d.ts +17 -0
  294. package/dist/core/operators/transform/pad.d.ts.map +1 -0
  295. package/dist/core/operators/transform/pad.js +31 -0
  296. package/dist/core/operators/transform/pad.js.map +1 -0
  297. package/dist/core/operators/transform/replace.d.ts +17 -0
  298. package/dist/core/operators/transform/replace.d.ts.map +1 -0
  299. package/dist/core/operators/transform/replace.js +29 -0
  300. package/dist/core/operators/transform/replace.js.map +1 -0
  301. package/dist/core/operators/transform/substring.d.ts +25 -0
  302. package/dist/core/operators/transform/substring.d.ts.map +1 -0
  303. package/dist/core/operators/transform/substring.js +50 -0
  304. package/dist/core/operators/transform/substring.js.map +1 -0
  305. package/dist/core/operators/transform/trim.d.ts +21 -0
  306. package/dist/core/operators/transform/trim.d.ts.map +1 -0
  307. package/dist/core/operators/transform/trim.js +40 -0
  308. package/dist/core/operators/transform/trim.js.map +1 -0
  309. package/dist/core/operators/types.d.ts +109 -0
  310. package/dist/core/operators/types.d.ts.map +1 -0
  311. package/dist/core/operators/types.js +9 -0
  312. package/dist/core/operators/types.js.map +1 -0
  313. package/dist/core/parser/errors.d.ts +50 -0
  314. package/dist/core/parser/errors.d.ts.map +1 -0
  315. package/dist/core/parser/errors.js +77 -0
  316. package/dist/core/parser/errors.js.map +1 -0
  317. package/dist/core/parser/index.d.ts +73 -0
  318. package/dist/core/parser/index.d.ts.map +1 -0
  319. package/dist/core/parser/index.js +120 -0
  320. package/dist/core/parser/index.js.map +1 -0
  321. package/dist/core/parser/operators/aliases.d.ts +50 -0
  322. package/dist/core/parser/operators/aliases.d.ts.map +1 -0
  323. package/dist/core/parser/operators/aliases.js +288 -0
  324. package/dist/core/parser/operators/aliases.js.map +1 -0
  325. package/dist/core/parser/operators/index.d.ts +17 -0
  326. package/dist/core/parser/operators/index.d.ts.map +1 -0
  327. package/dist/core/parser/operators/index.js +34 -0
  328. package/dist/core/parser/operators/index.js.map +1 -0
  329. package/dist/core/parser/operators/operator-table.d.ts +33 -0
  330. package/dist/core/parser/operators/operator-table.d.ts.map +1 -0
  331. package/dist/core/parser/operators/operator-table.js +91 -0
  332. package/dist/core/parser/operators/operator-table.js.map +1 -0
  333. package/dist/core/parser/operators/precedence.d.ts +58 -0
  334. package/dist/core/parser/operators/precedence.d.ts.map +1 -0
  335. package/dist/core/parser/operators/precedence.js +76 -0
  336. package/dist/core/parser/operators/precedence.js.map +1 -0
  337. package/dist/core/parser/parser/expression.parser.d.ts +34 -0
  338. package/dist/core/parser/parser/expression.parser.d.ts.map +1 -0
  339. package/dist/core/parser/parser/expression.parser.js +250 -0
  340. package/dist/core/parser/parser/expression.parser.js.map +1 -0
  341. package/dist/core/parser/parser/function.parser.d.ts +26 -0
  342. package/dist/core/parser/parser/function.parser.d.ts.map +1 -0
  343. package/dist/core/parser/parser/function.parser.js +86 -0
  344. package/dist/core/parser/parser/function.parser.js.map +1 -0
  345. package/dist/core/parser/parser/index.d.ts +19 -0
  346. package/dist/core/parser/parser/index.d.ts.map +1 -0
  347. package/dist/core/parser/parser/index.js +24 -0
  348. package/dist/core/parser/parser/index.js.map +1 -0
  349. package/dist/core/parser/parser/primary.parser.d.ts +17 -0
  350. package/dist/core/parser/parser/primary.parser.d.ts.map +1 -0
  351. package/dist/core/parser/parser/primary.parser.js +110 -0
  352. package/dist/core/parser/parser/primary.parser.js.map +1 -0
  353. package/dist/core/parser/parser/types.d.ts +36 -0
  354. package/dist/core/parser/parser/types.d.ts.map +1 -0
  355. package/dist/core/parser/parser/types.js +3 -0
  356. package/dist/core/parser/parser/types.js.map +1 -0
  357. package/dist/core/parser/tokenizer/index.d.ts +32 -0
  358. package/dist/core/parser/tokenizer/index.d.ts.map +1 -0
  359. package/dist/core/parser/tokenizer/index.js +68 -0
  360. package/dist/core/parser/tokenizer/index.js.map +1 -0
  361. package/dist/core/parser/tokenizer/readers/identifier.reader.d.ts +30 -0
  362. package/dist/core/parser/tokenizer/readers/identifier.reader.d.ts.map +1 -0
  363. package/dist/core/parser/tokenizer/readers/identifier.reader.js +109 -0
  364. package/dist/core/parser/tokenizer/readers/identifier.reader.js.map +1 -0
  365. package/dist/core/parser/tokenizer/readers/index.d.ts +20 -0
  366. package/dist/core/parser/tokenizer/readers/index.d.ts.map +1 -0
  367. package/dist/core/parser/tokenizer/readers/index.js +29 -0
  368. package/dist/core/parser/tokenizer/readers/index.js.map +1 -0
  369. package/dist/core/parser/tokenizer/readers/number.reader.d.ts +43 -0
  370. package/dist/core/parser/tokenizer/readers/number.reader.d.ts.map +1 -0
  371. package/dist/core/parser/tokenizer/readers/number.reader.js +115 -0
  372. package/dist/core/parser/tokenizer/readers/number.reader.js.map +1 -0
  373. package/dist/core/parser/tokenizer/readers/property-ref.reader.d.ts +20 -0
  374. package/dist/core/parser/tokenizer/readers/property-ref.reader.d.ts.map +1 -0
  375. package/dist/core/parser/tokenizer/readers/property-ref.reader.js +114 -0
  376. package/dist/core/parser/tokenizer/readers/property-ref.reader.js.map +1 -0
  377. package/dist/core/parser/tokenizer/readers/string.reader.d.ts +22 -0
  378. package/dist/core/parser/tokenizer/readers/string.reader.d.ts.map +1 -0
  379. package/dist/core/parser/tokenizer/readers/string.reader.js +93 -0
  380. package/dist/core/parser/tokenizer/readers/string.reader.js.map +1 -0
  381. package/dist/core/parser/tokenizer/readers/symbol.reader.d.ts +22 -0
  382. package/dist/core/parser/tokenizer/readers/symbol.reader.d.ts.map +1 -0
  383. package/dist/core/parser/tokenizer/readers/symbol.reader.js +107 -0
  384. package/dist/core/parser/tokenizer/readers/symbol.reader.js.map +1 -0
  385. package/dist/core/parser/tokenizer/readers/whitespace.reader.d.ts +12 -0
  386. package/dist/core/parser/tokenizer/readers/whitespace.reader.d.ts.map +1 -0
  387. package/dist/core/parser/tokenizer/readers/whitespace.reader.js +20 -0
  388. package/dist/core/parser/tokenizer/readers/whitespace.reader.js.map +1 -0
  389. package/dist/core/parser/tokenizer/scanner.d.ts +74 -0
  390. package/dist/core/parser/tokenizer/scanner.d.ts.map +1 -0
  391. package/dist/core/parser/tokenizer/scanner.js +137 -0
  392. package/dist/core/parser/tokenizer/scanner.js.map +1 -0
  393. package/dist/core/parser/tokenizer/types.d.ts +55 -0
  394. package/dist/core/parser/tokenizer/types.d.ts.map +1 -0
  395. package/dist/core/parser/tokenizer/types.js +3 -0
  396. package/dist/core/parser/tokenizer/types.js.map +1 -0
  397. package/dist/core/parser/types.d.ts +83 -0
  398. package/dist/core/parser/types.d.ts.map +1 -0
  399. package/dist/core/parser/types.js +3 -0
  400. package/dist/core/parser/types.js.map +1 -0
  401. package/dist/core/refraction/index.d.ts +5 -0
  402. package/dist/core/refraction/index.d.ts.map +1 -0
  403. package/dist/core/refraction/index.js +9 -0
  404. package/dist/core/refraction/index.js.map +1 -0
  405. package/dist/core/refraction/refraction.d.ts +28 -0
  406. package/dist/core/refraction/refraction.d.ts.map +1 -0
  407. package/dist/core/refraction/refraction.js +62 -0
  408. package/dist/core/refraction/refraction.js.map +1 -0
  409. package/dist/core/resolution/conflict-resolver.d.ts +12 -0
  410. package/dist/core/resolution/conflict-resolver.d.ts.map +1 -0
  411. package/dist/core/resolution/conflict-resolver.js +57 -0
  412. package/dist/core/resolution/conflict-resolver.js.map +1 -0
  413. package/dist/core/resolution/index.d.ts +5 -0
  414. package/dist/core/resolution/index.d.ts.map +1 -0
  415. package/dist/core/resolution/index.js +10 -0
  416. package/dist/core/resolution/index.js.map +1 -0
  417. package/dist/core/shapes/index.d.ts +5 -0
  418. package/dist/core/shapes/index.d.ts.map +1 -0
  419. package/dist/core/shapes/index.js +9 -0
  420. package/dist/core/shapes/index.js.map +1 -0
  421. package/dist/core/shapes/shape.normalizer.d.ts +6 -0
  422. package/dist/core/shapes/shape.normalizer.d.ts.map +1 -0
  423. package/dist/core/shapes/shape.normalizer.js +61 -0
  424. package/dist/core/shapes/shape.normalizer.js.map +1 -0
  425. package/dist/core/types/condition.d.ts +87 -0
  426. package/dist/core/types/condition.d.ts.map +1 -0
  427. package/dist/core/types/condition.js +6 -0
  428. package/dist/core/types/condition.js.map +1 -0
  429. package/dist/core/types/fact.d.ts +23 -0
  430. package/dist/core/types/fact.d.ts.map +1 -0
  431. package/dist/core/types/fact.js +6 -0
  432. package/dist/core/types/fact.js.map +1 -0
  433. package/dist/core/types/index.d.ts +8 -0
  434. package/dist/core/types/index.d.ts.map +1 -0
  435. package/dist/core/types/index.js +6 -0
  436. package/dist/core/types/index.js.map +1 -0
  437. package/dist/core/types/rule.d.ts +72 -0
  438. package/dist/core/types/rule.d.ts.map +1 -0
  439. package/dist/core/types/rule.js +8 -0
  440. package/dist/core/types/rule.js.map +1 -0
  441. package/dist/core/types/schema.d.ts +16 -0
  442. package/dist/core/types/schema.d.ts.map +1 -0
  443. package/dist/core/types/schema.js +6 -0
  444. package/dist/core/types/schema.js.map +1 -0
  445. package/dist/engines/backward/compiler.d.ts +7 -0
  446. package/dist/engines/backward/compiler.d.ts.map +1 -0
  447. package/dist/engines/backward/compiler.js +94 -0
  448. package/dist/engines/backward/compiler.js.map +1 -0
  449. package/dist/engines/backward/engine.d.ts +54 -0
  450. package/dist/engines/backward/engine.d.ts.map +1 -0
  451. package/dist/engines/backward/engine.js +96 -0
  452. package/dist/engines/backward/engine.js.map +1 -0
  453. package/dist/engines/backward/index.d.ts +12 -0
  454. package/dist/engines/backward/index.d.ts.map +1 -0
  455. package/dist/engines/backward/index.js +22 -0
  456. package/dist/engines/backward/index.js.map +1 -0
  457. package/dist/engines/backward/strategy.d.ts +37 -0
  458. package/dist/engines/backward/strategy.d.ts.map +1 -0
  459. package/dist/engines/backward/strategy.js +161 -0
  460. package/dist/engines/backward/strategy.js.map +1 -0
  461. package/dist/engines/backward/types.d.ts +97 -0
  462. package/dist/engines/backward/types.d.ts.map +1 -0
  463. package/dist/engines/backward/types.js +6 -0
  464. package/dist/engines/backward/types.js.map +1 -0
  465. package/dist/engines/bayesian/compiler.d.ts +22 -0
  466. package/dist/engines/bayesian/compiler.d.ts.map +1 -0
  467. package/dist/engines/bayesian/compiler.js +308 -0
  468. package/dist/engines/bayesian/compiler.js.map +1 -0
  469. package/dist/engines/bayesian/engine.d.ts +53 -0
  470. package/dist/engines/bayesian/engine.d.ts.map +1 -0
  471. package/dist/engines/bayesian/engine.js +95 -0
  472. package/dist/engines/bayesian/engine.js.map +1 -0
  473. package/dist/engines/bayesian/index.d.ts +11 -0
  474. package/dist/engines/bayesian/index.d.ts.map +1 -0
  475. package/dist/engines/bayesian/index.js +26 -0
  476. package/dist/engines/bayesian/index.js.map +1 -0
  477. package/dist/engines/bayesian/strategy.d.ts +13 -0
  478. package/dist/engines/bayesian/strategy.d.ts.map +1 -0
  479. package/dist/engines/bayesian/strategy.js +213 -0
  480. package/dist/engines/bayesian/strategy.js.map +1 -0
  481. package/dist/engines/bayesian/types.d.ts +145 -0
  482. package/dist/engines/bayesian/types.d.ts.map +1 -0
  483. package/dist/engines/bayesian/types.js +25 -0
  484. package/dist/engines/bayesian/types.js.map +1 -0
  485. package/dist/engines/constraint/compiler.d.ts +9 -0
  486. package/dist/engines/constraint/compiler.d.ts.map +1 -0
  487. package/dist/engines/constraint/compiler.js +188 -0
  488. package/dist/engines/constraint/compiler.js.map +1 -0
  489. package/dist/engines/constraint/engine.d.ts +95 -0
  490. package/dist/engines/constraint/engine.d.ts.map +1 -0
  491. package/dist/engines/constraint/engine.js +144 -0
  492. package/dist/engines/constraint/engine.js.map +1 -0
  493. package/dist/engines/constraint/index.d.ts +11 -0
  494. package/dist/engines/constraint/index.d.ts.map +1 -0
  495. package/dist/engines/constraint/index.js +36 -0
  496. package/dist/engines/constraint/index.js.map +1 -0
  497. package/dist/engines/constraint/strategy.d.ts +22 -0
  498. package/dist/engines/constraint/strategy.d.ts.map +1 -0
  499. package/dist/engines/constraint/strategy.js +529 -0
  500. package/dist/engines/constraint/strategy.js.map +1 -0
  501. package/dist/engines/constraint/types.d.ts +332 -0
  502. package/dist/engines/constraint/types.d.ts.map +1 -0
  503. package/dist/engines/constraint/types.js +26 -0
  504. package/dist/engines/constraint/types.js.map +1 -0
  505. package/dist/engines/defeasible/compiler.d.ts +34 -0
  506. package/dist/engines/defeasible/compiler.d.ts.map +1 -0
  507. package/dist/engines/defeasible/compiler.js +251 -0
  508. package/dist/engines/defeasible/compiler.js.map +1 -0
  509. package/dist/engines/defeasible/engine.d.ts +73 -0
  510. package/dist/engines/defeasible/engine.d.ts.map +1 -0
  511. package/dist/engines/defeasible/engine.js +115 -0
  512. package/dist/engines/defeasible/engine.js.map +1 -0
  513. package/dist/engines/defeasible/index.d.ts +10 -0
  514. package/dist/engines/defeasible/index.d.ts.map +1 -0
  515. package/dist/engines/defeasible/index.js +20 -0
  516. package/dist/engines/defeasible/index.js.map +1 -0
  517. package/dist/engines/defeasible/strategy.d.ts +25 -0
  518. package/dist/engines/defeasible/strategy.d.ts.map +1 -0
  519. package/dist/engines/defeasible/strategy.js +459 -0
  520. package/dist/engines/defeasible/strategy.js.map +1 -0
  521. package/dist/engines/defeasible/types.d.ts +316 -0
  522. package/dist/engines/defeasible/types.d.ts.map +1 -0
  523. package/dist/engines/defeasible/types.js +35 -0
  524. package/dist/engines/defeasible/types.js.map +1 -0
  525. package/dist/engines/expert/compiler.d.ts +16 -0
  526. package/dist/engines/expert/compiler.d.ts.map +1 -0
  527. package/dist/engines/expert/compiler.js +205 -0
  528. package/dist/engines/expert/compiler.js.map +1 -0
  529. package/dist/engines/expert/doc/expert-loan-approval.d.ts +17 -0
  530. package/dist/engines/expert/doc/expert-loan-approval.d.ts.map +1 -0
  531. package/dist/engines/expert/doc/expert-loan-approval.js +430 -0
  532. package/dist/engines/expert/doc/expert-loan-approval.js.map +1 -0
  533. package/dist/engines/expert/engine.d.ts +159 -0
  534. package/dist/engines/expert/engine.d.ts.map +1 -0
  535. package/dist/engines/expert/engine.js +201 -0
  536. package/dist/engines/expert/engine.js.map +1 -0
  537. package/dist/engines/expert/formatter.d.ts +56 -0
  538. package/dist/engines/expert/formatter.d.ts.map +1 -0
  539. package/dist/engines/expert/formatter.js +182 -0
  540. package/dist/engines/expert/formatter.js.map +1 -0
  541. package/dist/engines/expert/index.d.ts +37 -0
  542. package/dist/engines/expert/index.d.ts.map +1 -0
  543. package/dist/engines/expert/index.js +59 -0
  544. package/dist/engines/expert/index.js.map +1 -0
  545. package/dist/engines/expert/interpolation.d.ts +83 -0
  546. package/dist/engines/expert/interpolation.d.ts.map +1 -0
  547. package/dist/engines/expert/interpolation.js +218 -0
  548. package/dist/engines/expert/interpolation.js.map +1 -0
  549. package/dist/engines/expert/strategy.d.ts +13 -0
  550. package/dist/engines/expert/strategy.d.ts.map +1 -0
  551. package/dist/engines/expert/strategy.js +281 -0
  552. package/dist/engines/expert/strategy.js.map +1 -0
  553. package/dist/engines/expert/types.d.ts +346 -0
  554. package/dist/engines/expert/types.d.ts.map +1 -0
  555. package/dist/engines/expert/types.js +30 -0
  556. package/dist/engines/expert/types.js.map +1 -0
  557. package/dist/engines/forward/compiler.d.ts +7 -0
  558. package/dist/engines/forward/compiler.d.ts.map +1 -0
  559. package/dist/engines/forward/compiler.js +160 -0
  560. package/dist/engines/forward/compiler.js.map +1 -0
  561. package/dist/engines/forward/engine.d.ts +69 -0
  562. package/dist/engines/forward/engine.d.ts.map +1 -0
  563. package/dist/engines/forward/engine.js +111 -0
  564. package/dist/engines/forward/engine.js.map +1 -0
  565. package/dist/engines/forward/index.d.ts +12 -0
  566. package/dist/engines/forward/index.d.ts.map +1 -0
  567. package/dist/engines/forward/index.js +22 -0
  568. package/dist/engines/forward/index.js.map +1 -0
  569. package/dist/engines/forward/strategy.d.ts +15 -0
  570. package/dist/engines/forward/strategy.d.ts.map +1 -0
  571. package/dist/engines/forward/strategy.js +139 -0
  572. package/dist/engines/forward/strategy.js.map +1 -0
  573. package/dist/engines/forward/types.d.ts +152 -0
  574. package/dist/engines/forward/types.d.ts.map +1 -0
  575. package/dist/engines/forward/types.js +6 -0
  576. package/dist/engines/forward/types.js.map +1 -0
  577. package/dist/engines/fuzzy/compiler.d.ts +29 -0
  578. package/dist/engines/fuzzy/compiler.d.ts.map +1 -0
  579. package/dist/engines/fuzzy/compiler.js +136 -0
  580. package/dist/engines/fuzzy/compiler.js.map +1 -0
  581. package/dist/engines/fuzzy/defuzzify.d.ts +7 -0
  582. package/dist/engines/fuzzy/defuzzify.d.ts.map +1 -0
  583. package/dist/engines/fuzzy/defuzzify.js +34 -0
  584. package/dist/engines/fuzzy/defuzzify.js.map +1 -0
  585. package/dist/engines/fuzzy/engine.d.ts +55 -0
  586. package/dist/engines/fuzzy/engine.d.ts.map +1 -0
  587. package/dist/engines/fuzzy/engine.js +96 -0
  588. package/dist/engines/fuzzy/engine.js.map +1 -0
  589. package/dist/engines/fuzzy/fuzzy.defuzzify.d.ts +116 -0
  590. package/dist/engines/fuzzy/fuzzy.defuzzify.d.ts.map +1 -0
  591. package/dist/engines/fuzzy/fuzzy.defuzzify.js +454 -0
  592. package/dist/engines/fuzzy/fuzzy.defuzzify.js.map +1 -0
  593. package/dist/engines/fuzzy/fuzzy.membership.d.ts +162 -0
  594. package/dist/engines/fuzzy/fuzzy.membership.d.ts.map +1 -0
  595. package/dist/engines/fuzzy/fuzzy.membership.js +492 -0
  596. package/dist/engines/fuzzy/fuzzy.membership.js.map +1 -0
  597. package/dist/engines/fuzzy/fuzzy.types.d.ts +213 -0
  598. package/dist/engines/fuzzy/fuzzy.types.d.ts.map +1 -0
  599. package/dist/engines/fuzzy/fuzzy.types.js +71 -0
  600. package/dist/engines/fuzzy/fuzzy.types.js.map +1 -0
  601. package/dist/engines/fuzzy/index.d.ts +16 -0
  602. package/dist/engines/fuzzy/index.d.ts.map +1 -0
  603. package/dist/engines/fuzzy/index.js +46 -0
  604. package/dist/engines/fuzzy/index.js.map +1 -0
  605. package/dist/engines/fuzzy/membership.d.ts +7 -0
  606. package/dist/engines/fuzzy/membership.d.ts.map +1 -0
  607. package/dist/engines/fuzzy/membership.js +19 -0
  608. package/dist/engines/fuzzy/membership.js.map +1 -0
  609. package/dist/engines/fuzzy/strategy.d.ts +59 -0
  610. package/dist/engines/fuzzy/strategy.d.ts.map +1 -0
  611. package/dist/engines/fuzzy/strategy.js +255 -0
  612. package/dist/engines/fuzzy/strategy.js.map +1 -0
  613. package/dist/engines/fuzzy/types.d.ts +24 -0
  614. package/dist/engines/fuzzy/types.d.ts.map +1 -0
  615. package/dist/engines/fuzzy/types.js +17 -0
  616. package/dist/engines/fuzzy/types.js.map +1 -0
  617. package/dist/engines/index.d.ts +20 -0
  618. package/dist/engines/index.d.ts.map +1 -0
  619. package/dist/engines/index.js +49 -0
  620. package/dist/engines/index.js.map +1 -0
  621. package/dist/engines/monte-carlo/compiler.d.ts +12 -0
  622. package/dist/engines/monte-carlo/compiler.d.ts.map +1 -0
  623. package/dist/engines/monte-carlo/compiler.js +378 -0
  624. package/dist/engines/monte-carlo/compiler.js.map +1 -0
  625. package/dist/engines/monte-carlo/engine.d.ts +62 -0
  626. package/dist/engines/monte-carlo/engine.d.ts.map +1 -0
  627. package/dist/engines/monte-carlo/engine.js +106 -0
  628. package/dist/engines/monte-carlo/engine.js.map +1 -0
  629. package/dist/engines/monte-carlo/index.d.ts +12 -0
  630. package/dist/engines/monte-carlo/index.d.ts.map +1 -0
  631. package/dist/engines/monte-carlo/index.js +21 -0
  632. package/dist/engines/monte-carlo/index.js.map +1 -0
  633. package/dist/engines/monte-carlo/sobol.d.ts +39 -0
  634. package/dist/engines/monte-carlo/sobol.d.ts.map +1 -0
  635. package/dist/engines/monte-carlo/sobol.js +267 -0
  636. package/dist/engines/monte-carlo/sobol.js.map +1 -0
  637. package/dist/engines/monte-carlo/strategy.d.ts +20 -0
  638. package/dist/engines/monte-carlo/strategy.d.ts.map +1 -0
  639. package/dist/engines/monte-carlo/strategy.js +443 -0
  640. package/dist/engines/monte-carlo/strategy.js.map +1 -0
  641. package/dist/engines/monte-carlo/types.d.ts +230 -0
  642. package/dist/engines/monte-carlo/types.d.ts.map +1 -0
  643. package/dist/engines/monte-carlo/types.js +40 -0
  644. package/dist/engines/monte-carlo/types.js.map +1 -0
  645. package/dist/engines/pricing/calculator.d.ts +100 -0
  646. package/dist/engines/pricing/calculator.d.ts.map +1 -0
  647. package/dist/engines/pricing/calculator.js +210 -0
  648. package/dist/engines/pricing/calculator.js.map +1 -0
  649. package/dist/engines/pricing/compiler.d.ts +18 -0
  650. package/dist/engines/pricing/compiler.d.ts.map +1 -0
  651. package/dist/engines/pricing/compiler.js +275 -0
  652. package/dist/engines/pricing/compiler.js.map +1 -0
  653. package/dist/engines/pricing/engine.d.ts +102 -0
  654. package/dist/engines/pricing/engine.d.ts.map +1 -0
  655. package/dist/engines/pricing/engine.js +131 -0
  656. package/dist/engines/pricing/engine.js.map +1 -0
  657. package/dist/engines/pricing/index.d.ts +66 -0
  658. package/dist/engines/pricing/index.d.ts.map +1 -0
  659. package/dist/engines/pricing/index.js +89 -0
  660. package/dist/engines/pricing/index.js.map +1 -0
  661. package/dist/engines/pricing/strategy.d.ts +22 -0
  662. package/dist/engines/pricing/strategy.d.ts.map +1 -0
  663. package/dist/engines/pricing/strategy.js +517 -0
  664. package/dist/engines/pricing/strategy.js.map +1 -0
  665. package/dist/engines/pricing/types.d.ts +620 -0
  666. package/dist/engines/pricing/types.d.ts.map +1 -0
  667. package/dist/engines/pricing/types.js +68 -0
  668. package/dist/engines/pricing/types.js.map +1 -0
  669. package/dist/engines/scoring/compiler.d.ts +7 -0
  670. package/dist/engines/scoring/compiler.d.ts.map +1 -0
  671. package/dist/engines/scoring/compiler.js +113 -0
  672. package/dist/engines/scoring/compiler.js.map +1 -0
  673. package/dist/engines/scoring/engine.d.ts +52 -0
  674. package/dist/engines/scoring/engine.d.ts.map +1 -0
  675. package/dist/engines/scoring/engine.js +94 -0
  676. package/dist/engines/scoring/engine.js.map +1 -0
  677. package/dist/engines/scoring/index.d.ts +11 -0
  678. package/dist/engines/scoring/index.d.ts.map +1 -0
  679. package/dist/engines/scoring/index.js +21 -0
  680. package/dist/engines/scoring/index.js.map +1 -0
  681. package/dist/engines/scoring/strategy.d.ts +13 -0
  682. package/dist/engines/scoring/strategy.d.ts.map +1 -0
  683. package/dist/engines/scoring/strategy.js +158 -0
  684. package/dist/engines/scoring/strategy.js.map +1 -0
  685. package/dist/engines/scoring/types.d.ts +159 -0
  686. package/dist/engines/scoring/types.d.ts.map +1 -0
  687. package/dist/engines/scoring/types.js +6 -0
  688. package/dist/engines/scoring/types.js.map +1 -0
  689. package/dist/engines/sequential/compiler.d.ts +7 -0
  690. package/dist/engines/sequential/compiler.d.ts.map +1 -0
  691. package/dist/engines/sequential/compiler.js +156 -0
  692. package/dist/engines/sequential/compiler.js.map +1 -0
  693. package/dist/engines/sequential/engine.d.ts +55 -0
  694. package/dist/engines/sequential/engine.d.ts.map +1 -0
  695. package/dist/engines/sequential/engine.js +97 -0
  696. package/dist/engines/sequential/engine.js.map +1 -0
  697. package/dist/engines/sequential/index.d.ts +11 -0
  698. package/dist/engines/sequential/index.d.ts.map +1 -0
  699. package/dist/engines/sequential/index.js +21 -0
  700. package/dist/engines/sequential/index.js.map +1 -0
  701. package/dist/engines/sequential/strategy.d.ts +13 -0
  702. package/dist/engines/sequential/strategy.d.ts.map +1 -0
  703. package/dist/engines/sequential/strategy.js +96 -0
  704. package/dist/engines/sequential/strategy.js.map +1 -0
  705. package/dist/engines/sequential/types.d.ts +65 -0
  706. package/dist/engines/sequential/types.d.ts.map +1 -0
  707. package/dist/engines/sequential/types.js +6 -0
  708. package/dist/engines/sequential/types.js.map +1 -0
  709. package/dist/engines/state-machine/compiler.d.ts +12 -0
  710. package/dist/engines/state-machine/compiler.d.ts.map +1 -0
  711. package/dist/engines/state-machine/compiler.js +205 -0
  712. package/dist/engines/state-machine/compiler.js.map +1 -0
  713. package/dist/engines/state-machine/engine.d.ts +83 -0
  714. package/dist/engines/state-machine/engine.d.ts.map +1 -0
  715. package/dist/engines/state-machine/engine.js +107 -0
  716. package/dist/engines/state-machine/engine.js.map +1 -0
  717. package/dist/engines/state-machine/index.d.ts +11 -0
  718. package/dist/engines/state-machine/index.d.ts.map +1 -0
  719. package/dist/engines/state-machine/index.js +21 -0
  720. package/dist/engines/state-machine/index.js.map +1 -0
  721. package/dist/engines/state-machine/strategy.d.ts +19 -0
  722. package/dist/engines/state-machine/strategy.d.ts.map +1 -0
  723. package/dist/engines/state-machine/strategy.js +535 -0
  724. package/dist/engines/state-machine/strategy.js.map +1 -0
  725. package/dist/engines/state-machine/types.d.ts +229 -0
  726. package/dist/engines/state-machine/types.d.ts.map +1 -0
  727. package/dist/engines/state-machine/types.js +9 -0
  728. package/dist/engines/state-machine/types.js.map +1 -0
  729. package/dist/engines/utility/compiler.d.ts +7 -0
  730. package/dist/engines/utility/compiler.d.ts.map +1 -0
  731. package/dist/engines/utility/compiler.js +170 -0
  732. package/dist/engines/utility/compiler.js.map +1 -0
  733. package/dist/engines/utility/engine.d.ts +108 -0
  734. package/dist/engines/utility/engine.d.ts.map +1 -0
  735. package/dist/engines/utility/engine.js +152 -0
  736. package/dist/engines/utility/engine.js.map +1 -0
  737. package/dist/engines/utility/index.d.ts +17 -0
  738. package/dist/engines/utility/index.d.ts.map +1 -0
  739. package/dist/engines/utility/index.js +30 -0
  740. package/dist/engines/utility/index.js.map +1 -0
  741. package/dist/engines/utility/strategy.d.ts +30 -0
  742. package/dist/engines/utility/strategy.d.ts.map +1 -0
  743. package/dist/engines/utility/strategy.js +248 -0
  744. package/dist/engines/utility/strategy.js.map +1 -0
  745. package/dist/engines/utility/types.d.ts +176 -0
  746. package/dist/engines/utility/types.d.ts.map +1 -0
  747. package/dist/engines/utility/types.js +35 -0
  748. package/dist/engines/utility/types.js.map +1 -0
  749. package/dist/functions/index.d.ts +9 -0
  750. package/dist/functions/index.d.ts.map +1 -0
  751. package/dist/functions/index.js +27 -0
  752. package/dist/functions/index.js.map +1 -0
  753. package/dist/functions/phonetic/caverphone2.d.ts +36 -0
  754. package/dist/functions/phonetic/caverphone2.d.ts.map +1 -0
  755. package/dist/functions/phonetic/caverphone2.js +151 -0
  756. package/dist/functions/phonetic/caverphone2.js.map +1 -0
  757. package/dist/functions/phonetic/index.d.ts +9 -0
  758. package/dist/functions/phonetic/index.d.ts.map +1 -0
  759. package/dist/functions/phonetic/index.js +18 -0
  760. package/dist/functions/phonetic/index.js.map +1 -0
  761. package/dist/functions/phonetic/nysiis.d.ts +38 -0
  762. package/dist/functions/phonetic/nysiis.d.ts.map +1 -0
  763. package/dist/functions/phonetic/nysiis.js +162 -0
  764. package/dist/functions/phonetic/nysiis.js.map +1 -0
  765. package/dist/functions/phonetic/soundex.d.ts +48 -0
  766. package/dist/functions/phonetic/soundex.d.ts.map +1 -0
  767. package/dist/functions/phonetic/soundex.js +103 -0
  768. package/dist/functions/phonetic/soundex.js.map +1 -0
  769. package/dist/functions/similarity/cosine-similarity.d.ts +31 -0
  770. package/dist/functions/similarity/cosine-similarity.d.ts.map +1 -0
  771. package/dist/functions/similarity/cosine-similarity.js +75 -0
  772. package/dist/functions/similarity/cosine-similarity.js.map +1 -0
  773. package/dist/functions/similarity/index.d.ts +7 -0
  774. package/dist/functions/similarity/index.d.ts.map +1 -0
  775. package/dist/functions/similarity/index.js +11 -0
  776. package/dist/functions/similarity/index.js.map +1 -0
  777. package/dist/index.d.ts +56 -0
  778. package/dist/index.d.ts.map +1 -0
  779. package/dist/index.js +172 -0
  780. package/dist/index.js.map +1 -0
  781. package/dist/runtime/index.d.ts +15 -0
  782. package/dist/runtime/index.d.ts.map +1 -0
  783. package/dist/runtime/index.js +17 -0
  784. package/dist/runtime/index.js.map +1 -0
  785. package/package.json +41 -0
  786. package/src/core/compilers/condition.compiler.ts +176 -0
  787. package/src/core/compilers/index.ts +9 -0
  788. package/src/core/engine/engine.interface.ts +49 -0
  789. package/src/core/engine/index.ts +5 -0
  790. package/src/core/evaluation/condition.evaluator.ts +185 -0
  791. package/src/core/evaluation/index.ts +20 -0
  792. package/src/core/evaluation/temporal.ts +222 -0
  793. package/src/core/index.ts +75 -0
  794. package/src/core/matching/activation.types.ts +12 -0
  795. package/src/core/matching/index.ts +6 -0
  796. package/src/core/matching/matcher.ts +127 -0
  797. package/src/core/memory/index.ts +6 -0
  798. package/src/core/memory/working-memory.interface.ts +95 -0
  799. package/src/core/memory/working-memory.ts +123 -0
  800. package/src/core/operators/adapters/context.adapter.ts +53 -0
  801. package/src/core/operators/adapters/index.ts +25 -0
  802. package/src/core/operators/adapters/operator.adapter.ts +173 -0
  803. package/src/core/operators/arithmetic/add.ts +44 -0
  804. package/src/core/operators/arithmetic/average.ts +25 -0
  805. package/src/core/operators/arithmetic/divide.ts +42 -0
  806. package/src/core/operators/arithmetic/index.ts +42 -0
  807. package/src/core/operators/arithmetic/min-max.ts +70 -0
  808. package/src/core/operators/arithmetic/multiply.ts +40 -0
  809. package/src/core/operators/arithmetic/number-checks.ts +123 -0
  810. package/src/core/operators/arithmetic/power.ts +40 -0
  811. package/src/core/operators/arithmetic/rounding.ts +83 -0
  812. package/src/core/operators/arithmetic/subtract.ts +41 -0
  813. package/src/core/operators/array/contains.ts +85 -0
  814. package/src/core/operators/array/index.ts +18 -0
  815. package/src/core/operators/comparison/approximately-equals.ts +45 -0
  816. package/src/core/operators/comparison/equals.ts +49 -0
  817. package/src/core/operators/comparison/greater-than.ts +53 -0
  818. package/src/core/operators/comparison/index.ts +33 -0
  819. package/src/core/operators/comparison/less-than.ts +53 -0
  820. package/src/core/operators/comparison/not-equals.ts +49 -0
  821. package/src/core/operators/comparison/nullish.ts +155 -0
  822. package/src/core/operators/date/arithmetic.ts +246 -0
  823. package/src/core/operators/date/boundaries.ts +155 -0
  824. package/src/core/operators/date/checks.ts +116 -0
  825. package/src/core/operators/date/comparisons.ts +124 -0
  826. package/src/core/operators/date/constants.ts +102 -0
  827. package/src/core/operators/date/differences.ts +150 -0
  828. package/src/core/operators/date/extraction.ts +145 -0
  829. package/src/core/operators/date/generators.ts +232 -0
  830. package/src/core/operators/date/index.ts +63 -0
  831. package/src/core/operators/date/range.ts +39 -0
  832. package/src/core/operators/evaluator.ts +245 -0
  833. package/src/core/operators/examples.ts +233 -0
  834. package/src/core/operators/index.ts +135 -0
  835. package/src/core/operators/logical/and.ts +25 -0
  836. package/src/core/operators/logical/if.ts +31 -0
  837. package/src/core/operators/logical/index.ts +30 -0
  838. package/src/core/operators/logical/not.ts +25 -0
  839. package/src/core/operators/logical/or.ts +25 -0
  840. package/src/core/operators/logical/xor.ts +40 -0
  841. package/src/core/operators/operator.ts +338 -0
  842. package/src/core/operators/phonetic/caverphone.ts +40 -0
  843. package/src/core/operators/phonetic/index.ts +24 -0
  844. package/src/core/operators/phonetic/nysiis.ts +40 -0
  845. package/src/core/operators/phonetic/soundex.ts +41 -0
  846. package/src/core/operators/registry.ts +254 -0
  847. package/src/core/operators/similarity/cosine.ts +27 -0
  848. package/src/core/operators/similarity/index.ts +18 -0
  849. package/src/core/operators/string/contains.ts +42 -0
  850. package/src/core/operators/string/empty.ts +55 -0
  851. package/src/core/operators/string/ends-with.ts +40 -0
  852. package/src/core/operators/string/index.ts +30 -0
  853. package/src/core/operators/string/regex.ts +42 -0
  854. package/src/core/operators/string/starts-with.ts +40 -0
  855. package/src/core/operators/transform/case.ts +74 -0
  856. package/src/core/operators/transform/concat.ts +54 -0
  857. package/src/core/operators/transform/index.ts +36 -0
  858. package/src/core/operators/transform/length.ts +37 -0
  859. package/src/core/operators/transform/pad.ts +40 -0
  860. package/src/core/operators/transform/replace.ts +38 -0
  861. package/src/core/operators/transform/substring.ts +69 -0
  862. package/src/core/operators/transform/trim.ts +54 -0
  863. package/src/core/operators/types.ts +140 -0
  864. package/src/core/parser/errors.ts +77 -0
  865. package/src/core/parser/index.ts +133 -0
  866. package/src/core/parser/operators/aliases.ts +358 -0
  867. package/src/core/parser/operators/index.ts +35 -0
  868. package/src/core/parser/operators/operator-table.ts +107 -0
  869. package/src/core/parser/operators/precedence.ts +94 -0
  870. package/src/core/parser/parser/expression.parser.ts +308 -0
  871. package/src/core/parser/parser/function.parser.ts +113 -0
  872. package/src/core/parser/parser/index.ts +20 -0
  873. package/src/core/parser/parser/primary.parser.ts +149 -0
  874. package/src/core/parser/parser/types.ts +51 -0
  875. package/src/core/parser/tokenizer/index.ts +85 -0
  876. package/src/core/parser/tokenizer/readers/identifier.reader.ts +118 -0
  877. package/src/core/parser/tokenizer/readers/index.ts +20 -0
  878. package/src/core/parser/tokenizer/readers/number.reader.ts +132 -0
  879. package/src/core/parser/tokenizer/readers/property-ref.reader.ts +130 -0
  880. package/src/core/parser/tokenizer/readers/string.reader.ts +110 -0
  881. package/src/core/parser/tokenizer/readers/symbol.reader.ts +118 -0
  882. package/src/core/parser/tokenizer/readers/whitespace.reader.ts +18 -0
  883. package/src/core/parser/tokenizer/scanner.ts +137 -0
  884. package/src/core/parser/tokenizer/types.ts +63 -0
  885. package/src/core/parser/types.ts +102 -0
  886. package/src/core/refraction/index.ts +5 -0
  887. package/src/core/refraction/refraction.ts +71 -0
  888. package/src/core/resolution/conflict-resolver.ts +87 -0
  889. package/src/core/resolution/index.ts +10 -0
  890. package/src/core/shapes/index.ts +5 -0
  891. package/src/core/shapes/shape.normalizer.ts +68 -0
  892. package/src/core/types/condition.ts +185 -0
  893. package/src/core/types/fact.ts +26 -0
  894. package/src/core/types/index.ts +55 -0
  895. package/src/core/types/rule.ts +108 -0
  896. package/src/core/types/schema.ts +18 -0
  897. package/src/engines/backward/compiler.ts +118 -0
  898. package/src/engines/backward/engine.ts +123 -0
  899. package/src/engines/backward/index.ts +39 -0
  900. package/src/engines/backward/strategy.ts +229 -0
  901. package/src/engines/backward/types.ts +125 -0
  902. package/src/engines/bayesian/compiler.ts +402 -0
  903. package/src/engines/bayesian/engine.ts +122 -0
  904. package/src/engines/bayesian/index.ts +50 -0
  905. package/src/engines/bayesian/strategy.ts +273 -0
  906. package/src/engines/bayesian/types.ts +219 -0
  907. package/src/engines/constraint/compiler.ts +267 -0
  908. package/src/engines/constraint/engine.ts +175 -0
  909. package/src/engines/constraint/index.ts +18 -0
  910. package/src/engines/constraint/strategy.ts +725 -0
  911. package/src/engines/constraint/types.ts +415 -0
  912. package/src/engines/defeasible/compiler.ts +306 -0
  913. package/src/engines/defeasible/engine.ts +142 -0
  914. package/src/engines/defeasible/index.ts +48 -0
  915. package/src/engines/defeasible/strategy.ts +573 -0
  916. package/src/engines/defeasible/types.ts +409 -0
  917. package/src/engines/expert/README.md +343 -0
  918. package/src/engines/expert/compiler.ts +277 -0
  919. package/src/engines/expert/doc/expert-loan-approval.ts +458 -0
  920. package/src/engines/expert/engine.ts +228 -0
  921. package/src/engines/expert/formatter.ts +242 -0
  922. package/src/engines/expert/index.ts +85 -0
  923. package/src/engines/expert/interpolation.ts +278 -0
  924. package/src/engines/expert/strategy.ts +413 -0
  925. package/src/engines/expert/types.ts +442 -0
  926. package/src/engines/forward/compiler.ts +205 -0
  927. package/src/engines/forward/engine.ts +138 -0
  928. package/src/engines/forward/index.ts +51 -0
  929. package/src/engines/forward/strategy.ts +197 -0
  930. package/src/engines/forward/types.ts +205 -0
  931. package/src/engines/fuzzy/compiler.ts +182 -0
  932. package/src/engines/fuzzy/defuzzify.ts +39 -0
  933. package/src/engines/fuzzy/engine.ts +124 -0
  934. package/src/engines/fuzzy/fuzzy.defuzzify.ts +564 -0
  935. package/src/engines/fuzzy/fuzzy.membership.ts +604 -0
  936. package/src/engines/fuzzy/fuzzy.types.ts +357 -0
  937. package/src/engines/fuzzy/index.ts +38 -0
  938. package/src/engines/fuzzy/membership.ts +22 -0
  939. package/src/engines/fuzzy/strategy.ts +373 -0
  940. package/src/engines/fuzzy/types.ts +84 -0
  941. package/src/engines/index.ts +45 -0
  942. package/src/engines/monte-carlo/compiler.ts +459 -0
  943. package/src/engines/monte-carlo/engine.ts +134 -0
  944. package/src/engines/monte-carlo/index.ts +44 -0
  945. package/src/engines/monte-carlo/strategy.ts +565 -0
  946. package/src/engines/monte-carlo/types.ts +320 -0
  947. package/src/engines/pricing/calculator.ts +272 -0
  948. package/src/engines/pricing/compiler.ts +381 -0
  949. package/src/engines/pricing/engine.ts +152 -0
  950. package/src/engines/pricing/index.ts +156 -0
  951. package/src/engines/pricing/strategy.ts +736 -0
  952. package/src/engines/pricing/types.ts +782 -0
  953. package/src/engines/scoring/compiler.ts +139 -0
  954. package/src/engines/scoring/engine.ts +121 -0
  955. package/src/engines/scoring/index.ts +46 -0
  956. package/src/engines/scoring/strategy.ts +190 -0
  957. package/src/engines/scoring/types.ts +201 -0
  958. package/src/engines/sequential/compiler.ts +201 -0
  959. package/src/engines/sequential/engine.ts +124 -0
  960. package/src/engines/sequential/index.ts +38 -0
  961. package/src/engines/sequential/strategy.ts +125 -0
  962. package/src/engines/sequential/types.ts +101 -0
  963. package/src/engines/state-machine/compiler.ts +266 -0
  964. package/src/engines/state-machine/engine.ts +128 -0
  965. package/src/engines/state-machine/index.ts +45 -0
  966. package/src/engines/state-machine/strategy.ts +634 -0
  967. package/src/engines/state-machine/types.ts +254 -0
  968. package/src/engines/utility/compiler.ts +208 -0
  969. package/src/engines/utility/engine.ts +200 -0
  970. package/src/engines/utility/index.ts +53 -0
  971. package/src/engines/utility/strategy.ts +315 -0
  972. package/src/engines/utility/types.ts +225 -0
  973. package/src/functions/README.md +63 -0
  974. package/src/functions/index.ts +12 -0
  975. package/src/functions/phonetic/caverphone2.ts +172 -0
  976. package/src/functions/phonetic/index.ts +9 -0
  977. package/src/functions/phonetic/nysiis.ts +164 -0
  978. package/src/functions/phonetic/soundex.ts +111 -0
  979. package/src/functions/similarity/cosine-similarity.ts +83 -0
  980. package/src/functions/similarity/index.ts +7 -0
  981. package/src/index.ts +362 -0
  982. package/src/runtime/index.ts +16 -0
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildOperatorTable = buildOperatorTable;
4
+ exports.createDefaultOperatorTable = createDefaultOperatorTable;
5
+ exports.isKnownOperator = isKnownOperator;
6
+ exports.getCanonicalName = getCanonicalName;
7
+ const aliases_1 = require("./aliases");
8
+ const precedence_1 = require("./precedence");
9
+ /**
10
+ * Builds the operator lookup table.
11
+ *
12
+ * The table maps every possible operator form (symbol, short name,
13
+ * full name) to its OperatorInfo. This allows O(1) lookup when
14
+ * tokenizing and parsing.
15
+ *
16
+ * Sources:
17
+ * 1. Static definitions in aliases.ts (core operators)
18
+ * 2. Dynamic operators from the registry (temporal, custom, etc.)
19
+ *
20
+ * @param registryOperators - Optional map of additional operators from registry
21
+ * @returns Complete operator table with all aliases resolved
22
+ */
23
+ function buildOperatorTable(registryOperators) {
24
+ const table = new Map();
25
+ // ─────────────────────────────────────────────────────────────────────
26
+ // Add static operator definitions
27
+ // ─────────────────────────────────────────────────────────────────────
28
+ for (const [canonical, { def, aliases }] of Object.entries(aliases_1.OPERATOR_DEFINITIONS)) {
29
+ const info = {
30
+ canonical,
31
+ ...def
32
+ };
33
+ // Add the canonical name itself
34
+ table.set(canonical, info);
35
+ // Add all aliases pointing to same info
36
+ for (const alias of aliases) {
37
+ table.set(alias, info);
38
+ }
39
+ }
40
+ // ─────────────────────────────────────────────────────────────────────
41
+ // Add dynamic operators from registry (if provided)
42
+ // ─────────────────────────────────────────────────────────────────────
43
+ if (registryOperators) {
44
+ for (const [name, opDef] of registryOperators) {
45
+ // Skip if already defined in static definitions
46
+ if (table.has(name)) {
47
+ continue;
48
+ }
49
+ // Create operator info with sensible defaults
50
+ // Most registry operators are functions (temporal, etc.)
51
+ const info = {
52
+ canonical: name,
53
+ precedence: precedence_1.PRECEDENCE_PRIMARY, // Functions have highest precedence
54
+ associativity: 'none',
55
+ arity: 'binary' // Default assumption, parser handles variadic
56
+ };
57
+ table.set(name, info);
58
+ // Add any aliases
59
+ if (opDef.aliases) {
60
+ for (const alias of opDef.aliases) {
61
+ if (!table.has(alias)) {
62
+ table.set(alias, info);
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ return table;
69
+ }
70
+ /**
71
+ * Creates a default operator table with just the static definitions.
72
+ * Use this when you don't have access to the full operator registry.
73
+ */
74
+ function createDefaultOperatorTable() {
75
+ return buildOperatorTable();
76
+ }
77
+ /**
78
+ * Checks if a string is a known operator (in any form).
79
+ */
80
+ function isKnownOperator(table, name) {
81
+ return table.has(name);
82
+ }
83
+ /**
84
+ * Gets the canonical name for an operator, or returns the input
85
+ * if it's not a known operator (might be a function).
86
+ */
87
+ function getCanonicalName(table, name) {
88
+ const info = table.get(name);
89
+ return info ? info.canonical : name;
90
+ }
91
+ //# sourceMappingURL=operator-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operator-table.js","sourceRoot":"","sources":["../../../../src/core/parser/operators/operator-table.ts"],"names":[],"mappings":";;AAkBA,gDA0DC;AAMD,gEAEC;AAKD,0CAKC;AAMD,4CAMC;AAzGD,uCAAiD;AACjD,6CAAkD;AAElD;;;;;;;;;;;;;GAaG;AACH,SAAgB,kBAAkB,CAChC,iBAAuD;IAEvD,MAAM,KAAK,GAAkB,IAAI,GAAG,EAAE,CAAC;IAEvC,wEAAwE;IACxE,kCAAkC;IAClC,wEAAwE;IACxE,KAAK,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CACxD,8BAAoB,CACrB,EAAE,CAAC;QACF,MAAM,IAAI,GAAiB;YACzB,SAAS;YACT,GAAG,GAAG;SACP,CAAC;QAEF,gCAAgC;QAChC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAE3B,wCAAwC;QACxC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,oDAAoD;IACpD,wEAAwE;IACxE,IAAI,iBAAiB,EAAE,CAAC;QACtB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,iBAAiB,EAAE,CAAC;YAC9C,gDAAgD;YAChD,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACpB,SAAS;YACX,CAAC;YAED,8CAA8C;YAC9C,yDAAyD;YACzD,MAAM,IAAI,GAAiB;gBACzB,SAAS,EAAE,IAAI;gBACf,UAAU,EAAE,+BAAkB,EAAE,oCAAoC;gBACpE,aAAa,EAAE,MAAM;gBACrB,KAAK,EAAE,QAAQ,CAAC,8CAA8C;aAC/D,CAAC;YAEF,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEtB,kBAAkB;YAClB,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;wBACtB,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAgB,0BAA0B;IACxC,OAAO,kBAAkB,EAAE,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAC7B,KAAoB,EACpB,IAAY;IAEZ,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAC9B,KAAoB,EACpB,IAAY;IAEZ,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7B,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Operator Precedence Levels
3
+ *
4
+ * These constants define the binding power of operators.
5
+ * Higher numbers bind more tightly than lower numbers.
6
+ *
7
+ * For example, in "$a + $b * $c":
8
+ * - * has higher precedence than +
9
+ * - So it parses as $a + ($b * $c), not ($a + $b) * $c
10
+ *
11
+ * Precedence Scale (1-8):
12
+ * 1 - Logical OR (lowest, evaluated last)
13
+ * 2 - Logical AND
14
+ * 3 - Logical NOT (unary prefix)
15
+ * 4 - Comparison operators
16
+ * 5 - Addition and subtraction
17
+ * 6 - Multiplication and division
18
+ * 7 - Unary minus (negation)
19
+ * 8 - Function calls, literals, parentheses (highest)
20
+ *
21
+ * Note: Parentheses override precedence - they're always evaluated first.
22
+ */
23
+ /** Logical OR: or, || */
24
+ export declare const PRECEDENCE_OR = 1;
25
+ /** Logical AND: and, && */
26
+ export declare const PRECEDENCE_AND = 2;
27
+ /** Logical NOT (unary): not, ! */
28
+ export declare const PRECEDENCE_NOT = 3;
29
+ /**
30
+ * Comparison operators:
31
+ * - Relational: >, >=, <, <=, gt, gte, lt, lte
32
+ * - Equality: ==, !=, equals, notEquals
33
+ * - String: contains, startsWith, endsWith, matches
34
+ * - Membership: in, notIn
35
+ * - Temporal: isBefore, isAfter, isBetween
36
+ */
37
+ export declare const PRECEDENCE_COMPARISON = 4;
38
+ /** Addition and subtraction: +, - (binary) */
39
+ export declare const PRECEDENCE_ADDITIVE = 5;
40
+ /** Multiplication, division, modulo: *, /, % */
41
+ export declare const PRECEDENCE_MULTIPLICATIVE = 6;
42
+ /** Unary minus (negation): -$x */
43
+ export declare const PRECEDENCE_UNARY = 7;
44
+ /**
45
+ * Highest precedence:
46
+ * - Function calls: daysAgo(7), now()
47
+ * - Literals: 42, "hello", true
48
+ * - Property refs: $age, $user.name
49
+ * - Parenthesized expressions: ($a + $b)
50
+ */
51
+ export declare const PRECEDENCE_PRIMARY = 8;
52
+ /**
53
+ * Maps operator categories to their precedence level.
54
+ * Used by the operator table builder to assign precedence.
55
+ */
56
+ export type OperatorCategory = 'logical-or' | 'logical-and' | 'logical-not' | 'comparison' | 'additive' | 'multiplicative' | 'unary' | 'primary';
57
+ export declare function getPrecedenceForCategory(category: OperatorCategory): number;
58
+ //# sourceMappingURL=precedence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"precedence.d.ts","sourceRoot":"","sources":["../../../../src/core/parser/operators/precedence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,yBAAyB;AACzB,eAAO,MAAM,aAAa,IAAI,CAAC;AAE/B,2BAA2B;AAC3B,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,kCAAkC;AAClC,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAEvC,8CAA8C;AAC9C,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,gDAAgD;AAChD,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,kCAAkC;AAClC,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAEpC;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ,aAAa,GACb,aAAa,GACb,YAAY,GACZ,UAAU,GACV,gBAAgB,GAChB,OAAO,GACP,SAAS,CAAC;AAEd,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,MAAM,CAmB3E"}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ /**
3
+ * Operator Precedence Levels
4
+ *
5
+ * These constants define the binding power of operators.
6
+ * Higher numbers bind more tightly than lower numbers.
7
+ *
8
+ * For example, in "$a + $b * $c":
9
+ * - * has higher precedence than +
10
+ * - So it parses as $a + ($b * $c), not ($a + $b) * $c
11
+ *
12
+ * Precedence Scale (1-8):
13
+ * 1 - Logical OR (lowest, evaluated last)
14
+ * 2 - Logical AND
15
+ * 3 - Logical NOT (unary prefix)
16
+ * 4 - Comparison operators
17
+ * 5 - Addition and subtraction
18
+ * 6 - Multiplication and division
19
+ * 7 - Unary minus (negation)
20
+ * 8 - Function calls, literals, parentheses (highest)
21
+ *
22
+ * Note: Parentheses override precedence - they're always evaluated first.
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.PRECEDENCE_PRIMARY = exports.PRECEDENCE_UNARY = exports.PRECEDENCE_MULTIPLICATIVE = exports.PRECEDENCE_ADDITIVE = exports.PRECEDENCE_COMPARISON = exports.PRECEDENCE_NOT = exports.PRECEDENCE_AND = exports.PRECEDENCE_OR = void 0;
26
+ exports.getPrecedenceForCategory = getPrecedenceForCategory;
27
+ /** Logical OR: or, || */
28
+ exports.PRECEDENCE_OR = 1;
29
+ /** Logical AND: and, && */
30
+ exports.PRECEDENCE_AND = 2;
31
+ /** Logical NOT (unary): not, ! */
32
+ exports.PRECEDENCE_NOT = 3;
33
+ /**
34
+ * Comparison operators:
35
+ * - Relational: >, >=, <, <=, gt, gte, lt, lte
36
+ * - Equality: ==, !=, equals, notEquals
37
+ * - String: contains, startsWith, endsWith, matches
38
+ * - Membership: in, notIn
39
+ * - Temporal: isBefore, isAfter, isBetween
40
+ */
41
+ exports.PRECEDENCE_COMPARISON = 4;
42
+ /** Addition and subtraction: +, - (binary) */
43
+ exports.PRECEDENCE_ADDITIVE = 5;
44
+ /** Multiplication, division, modulo: *, /, % */
45
+ exports.PRECEDENCE_MULTIPLICATIVE = 6;
46
+ /** Unary minus (negation): -$x */
47
+ exports.PRECEDENCE_UNARY = 7;
48
+ /**
49
+ * Highest precedence:
50
+ * - Function calls: daysAgo(7), now()
51
+ * - Literals: 42, "hello", true
52
+ * - Property refs: $age, $user.name
53
+ * - Parenthesized expressions: ($a + $b)
54
+ */
55
+ exports.PRECEDENCE_PRIMARY = 8;
56
+ function getPrecedenceForCategory(category) {
57
+ switch (category) {
58
+ case 'logical-or':
59
+ return exports.PRECEDENCE_OR;
60
+ case 'logical-and':
61
+ return exports.PRECEDENCE_AND;
62
+ case 'logical-not':
63
+ return exports.PRECEDENCE_NOT;
64
+ case 'comparison':
65
+ return exports.PRECEDENCE_COMPARISON;
66
+ case 'additive':
67
+ return exports.PRECEDENCE_ADDITIVE;
68
+ case 'multiplicative':
69
+ return exports.PRECEDENCE_MULTIPLICATIVE;
70
+ case 'unary':
71
+ return exports.PRECEDENCE_UNARY;
72
+ case 'primary':
73
+ return exports.PRECEDENCE_PRIMARY;
74
+ }
75
+ }
76
+ //# sourceMappingURL=precedence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"precedence.js","sourceRoot":"","sources":["../../../../src/core/parser/operators/precedence.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAqDH,4DAmBC;AAtED,yBAAyB;AACZ,QAAA,aAAa,GAAG,CAAC,CAAC;AAE/B,2BAA2B;AACd,QAAA,cAAc,GAAG,CAAC,CAAC;AAEhC,kCAAkC;AACrB,QAAA,cAAc,GAAG,CAAC,CAAC;AAEhC;;;;;;;GAOG;AACU,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAEvC,8CAA8C;AACjC,QAAA,mBAAmB,GAAG,CAAC,CAAC;AAErC,gDAAgD;AACnC,QAAA,yBAAyB,GAAG,CAAC,CAAC;AAE3C,kCAAkC;AACrB,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC;;;;;;GAMG;AACU,QAAA,kBAAkB,GAAG,CAAC,CAAC;AAgBpC,SAAgB,wBAAwB,CAAC,QAA0B;IACjE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,YAAY;YACf,OAAO,qBAAa,CAAC;QACvB,KAAK,aAAa;YAChB,OAAO,sBAAc,CAAC;QACxB,KAAK,aAAa;YAChB,OAAO,sBAAc,CAAC;QACxB,KAAK,YAAY;YACf,OAAO,6BAAqB,CAAC;QAC/B,KAAK,UAAU;YACb,OAAO,2BAAmB,CAAC;QAC7B,KAAK,gBAAgB;YACnB,OAAO,iCAAyB,CAAC;QACnC,KAAK,OAAO;YACV,OAAO,wBAAgB,CAAC;QAC1B,KAAK,SAAS;YACZ,OAAO,0BAAkB,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -0,0 +1,34 @@
1
+ import type { Token, OperatorTable } from '../types';
2
+ /**
3
+ * Pratt Parser for Expressions
4
+ *
5
+ * This parser uses Vaughan Pratt's "top-down operator precedence" algorithm.
6
+ * It's elegant and handles operator precedence and associativity naturally.
7
+ *
8
+ * Key Insight:
9
+ * ────────────
10
+ * Each operator has a "binding power" (precedence). We parse the left side,
11
+ * then loop: if the next operator binds tighter than our current minimum,
12
+ * we consume it and recursively parse the right side.
13
+ *
14
+ * This creates the correct parse tree without complex grammar rules.
15
+ *
16
+ * Example: "$a + $b * $c"
17
+ * 1. Parse $a (primary)
18
+ * 2. See '+' (precedence 5), consume it
19
+ * 3. Parse right side with minPrecedence=6 (to get tighter ops)
20
+ * 4. That parses "$b * $c" as ['multiply', '$b', '$c']
21
+ * 5. Result: ['add', '$a', ['multiply', '$b', '$c']]
22
+ *
23
+ * Multi-Value Shorthand:
24
+ * ─────────────────────
25
+ * Special handling for patterns like: $status == 'a' or 'b' or 'c'
26
+ * This becomes: ['in', '$status', ['a', 'b', 'c']]
27
+ *
28
+ * Detection: When we see '==' or '!=' followed by 'or' with bare literals.
29
+ */
30
+ /**
31
+ * Main parsing function - entry point for the Pratt parser.
32
+ */
33
+ export declare function parseExpressionFromTokens(tokens: Token[], operatorTable: OperatorTable, input: string): any;
34
+ //# sourceMappingURL=expression.parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.parser.d.ts","sourceRoot":"","sources":["../../../../src/core/parser/parser/expression.parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAKrD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,KAAK,EAAE,EACf,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,MAAM,GACZ,GAAG,CAqBL"}
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseExpressionFromTokens = parseExpressionFromTokens;
4
+ const errors_1 = require("../errors");
5
+ const primary_parser_1 = require("./primary.parser");
6
+ /**
7
+ * Pratt Parser for Expressions
8
+ *
9
+ * This parser uses Vaughan Pratt's "top-down operator precedence" algorithm.
10
+ * It's elegant and handles operator precedence and associativity naturally.
11
+ *
12
+ * Key Insight:
13
+ * ────────────
14
+ * Each operator has a "binding power" (precedence). We parse the left side,
15
+ * then loop: if the next operator binds tighter than our current minimum,
16
+ * we consume it and recursively parse the right side.
17
+ *
18
+ * This creates the correct parse tree without complex grammar rules.
19
+ *
20
+ * Example: "$a + $b * $c"
21
+ * 1. Parse $a (primary)
22
+ * 2. See '+' (precedence 5), consume it
23
+ * 3. Parse right side with minPrecedence=6 (to get tighter ops)
24
+ * 4. That parses "$b * $c" as ['multiply', '$b', '$c']
25
+ * 5. Result: ['add', '$a', ['multiply', '$b', '$c']]
26
+ *
27
+ * Multi-Value Shorthand:
28
+ * ─────────────────────
29
+ * Special handling for patterns like: $status == 'a' or 'b' or 'c'
30
+ * This becomes: ['in', '$status', ['a', 'b', 'c']]
31
+ *
32
+ * Detection: When we see '==' or '!=' followed by 'or' with bare literals.
33
+ */
34
+ /**
35
+ * Main parsing function - entry point for the Pratt parser.
36
+ */
37
+ function parseExpressionFromTokens(tokens, operatorTable, input) {
38
+ const state = {
39
+ tokens,
40
+ position: 0,
41
+ operatorTable,
42
+ input
43
+ };
44
+ const result = parseExpr(state, 0);
45
+ // Ensure we consumed all tokens (except EOF)
46
+ const remaining = peek(state);
47
+ if (remaining.type !== 'EOF') {
48
+ throw new errors_1.SyntaxError(`Unexpected token after expression: ${remaining.type}`, remaining.position, input);
49
+ }
50
+ return result;
51
+ }
52
+ /**
53
+ * Recursive expression parser with precedence climbing.
54
+ *
55
+ * @param state - Parser state
56
+ * @param minPrecedence - Minimum precedence to parse (higher = tighter binding)
57
+ */
58
+ function parseExpr(state, minPrecedence) {
59
+ // Parse the left-hand side (primary expression)
60
+ let left = (0, primary_parser_1.parsePrimary)(state, parseExpr);
61
+ // Loop while we see operators that bind at least as tight as minPrecedence
62
+ while (true) {
63
+ const token = peek(state);
64
+ // Stop if not an operator
65
+ if (token.type !== 'OPERATOR') {
66
+ break;
67
+ }
68
+ const opInfo = state.operatorTable.get(token.value);
69
+ if (!opInfo) {
70
+ // Unknown operator - stop here and let caller handle
71
+ break;
72
+ }
73
+ // Stop if operator doesn't bind tight enough
74
+ if (opInfo.precedence < minPrecedence) {
75
+ break;
76
+ }
77
+ // ─────────────────────────────────────────────────────────────────
78
+ // Multi-Value Shorthand Detection
79
+ // ─────────────────────────────────────────────────────────────────
80
+ // Check for: $x == 'a' or 'b' or 'c' pattern
81
+ // This should become: ['in', '$x', ['a', 'b', 'c']]
82
+ if (isComparisonOp(opInfo.canonical)) {
83
+ advance(state); // consume comparison operator
84
+ const firstValue = (0, primary_parser_1.parsePrimary)(state, parseExpr);
85
+ // Check for multi-value pattern: literal followed by 'or' and more literals
86
+ const multiValues = tryParseMultiValueShorthand(state, firstValue);
87
+ if (multiValues) {
88
+ // Transform to 'in' or 'notIn'
89
+ const inOp = opInfo.canonical === 'notEquals' ? 'notIn' : 'in';
90
+ left = [inOp, left, multiValues];
91
+ continue;
92
+ }
93
+ // Not a multi-value pattern - normal binary operation
94
+ left = [opInfo.canonical, left, firstValue];
95
+ continue;
96
+ }
97
+ // ─────────────────────────────────────────────────────────────────
98
+ // Variadic Flattening (and, or)
99
+ // ─────────────────────────────────────────────────────────────────
100
+ // Multiple 'and'/'or' at same level should flatten:
101
+ // $a and $b and $c → ['and', '$a', '$b', '$c'] (not nested)
102
+ if (opInfo.arity === 'variadic') {
103
+ advance(state); // consume operator
104
+ // Parse the right side with same precedence (left associative)
105
+ const right = parseExpr(state, opInfo.precedence + 1);
106
+ // Collect all operands at same level
107
+ const operands = [];
108
+ // Flatten left if it's the same operator
109
+ if (Array.isArray(left) && left[0] === opInfo.canonical) {
110
+ operands.push(...left.slice(1));
111
+ }
112
+ else {
113
+ operands.push(left);
114
+ }
115
+ // Flatten right if it's the same operator
116
+ if (Array.isArray(right) && right[0] === opInfo.canonical) {
117
+ operands.push(...right.slice(1));
118
+ }
119
+ else {
120
+ operands.push(right);
121
+ }
122
+ left = [opInfo.canonical, ...operands];
123
+ continue;
124
+ }
125
+ // ─────────────────────────────────────────────────────────────────
126
+ // Normal Binary Operators
127
+ // ─────────────────────────────────────────────────────────────────
128
+ advance(state); // consume operator
129
+ // Calculate next precedence based on associativity
130
+ // Left-associative: next must be higher to steal operand
131
+ // Right-associative: next can be same or higher
132
+ const nextMinPrecedence = opInfo.associativity === 'right'
133
+ ? opInfo.precedence
134
+ : opInfo.precedence + 1;
135
+ const right = parseExpr(state, nextMinPrecedence);
136
+ left = [opInfo.canonical, left, right];
137
+ }
138
+ return left;
139
+ }
140
+ // ═══════════════════════════════════════════════════════════════════════
141
+ // Multi-Value Shorthand Handling
142
+ // ═══════════════════════════════════════════════════════════════════════
143
+ /**
144
+ * Checks if an operator is a comparison operator that can use multi-value shorthand.
145
+ * Only 'equals' and 'notEquals' support this pattern.
146
+ */
147
+ function isComparisonOp(canonical) {
148
+ return canonical === 'equals' || canonical === 'notEquals';
149
+ }
150
+ /**
151
+ * Checks if a value is a "bare literal" (not a property ref or expression).
152
+ * Used to detect multi-value shorthand patterns.
153
+ */
154
+ function isBareLiteral(value) {
155
+ if (value === null || typeof value === 'boolean' || typeof value === 'number') {
156
+ return true;
157
+ }
158
+ if (typeof value === 'string') {
159
+ // Property refs start with $
160
+ return !value.startsWith('$');
161
+ }
162
+ return false;
163
+ }
164
+ /**
165
+ * Tries to parse multi-value shorthand after an equals comparison.
166
+ *
167
+ * Pattern: == literal or literal or literal ...
168
+ *
169
+ * Returns array of values if pattern matches, null otherwise.
170
+ *
171
+ * Example: $status == 'a' or 'b' or 'c'
172
+ * - firstValue: 'a'
173
+ * - Sees 'or' followed by bare literal 'b'
174
+ * - Collects: ['a', 'b', 'c']
175
+ * - Returns: ['a', 'b', 'c']
176
+ *
177
+ * NOT a match: $a == 5 or $b == 6
178
+ * - firstValue: 5
179
+ * - Sees 'or' followed by property ref $b (not bare literal)
180
+ * - Returns: null (normal OR handling takes over)
181
+ */
182
+ function tryParseMultiValueShorthand(state, firstValue) {
183
+ // First value must be a bare literal
184
+ if (!isBareLiteral(firstValue)) {
185
+ return null;
186
+ }
187
+ // Check if followed by 'or'
188
+ const token = peek(state);
189
+ if (token.type !== 'OPERATOR') {
190
+ return null;
191
+ }
192
+ const opInfo = state.operatorTable.get(token.value);
193
+ if (!opInfo || opInfo.canonical !== 'or') {
194
+ return null;
195
+ }
196
+ // Peek ahead to see if the next primary is a bare literal
197
+ // We need to be careful here - don't consume tokens yet
198
+ // Save position for potential backtrack
199
+ const savedPosition = state.position;
200
+ // Consume 'or' and check next primary
201
+ advance(state);
202
+ const nextValue = (0, primary_parser_1.parsePrimary)(state, parseExpr);
203
+ if (!isBareLiteral(nextValue)) {
204
+ // Not a multi-value pattern - restore position
205
+ state.position = savedPosition;
206
+ return null;
207
+ }
208
+ // It's a multi-value pattern! Collect all values
209
+ const values = [firstValue, nextValue];
210
+ // Continue collecting while we see 'or' followed by bare literals
211
+ while (true) {
212
+ const orToken = peek(state);
213
+ if (orToken.type !== 'OPERATOR') {
214
+ break;
215
+ }
216
+ const orInfo = state.operatorTable.get(orToken.value);
217
+ if (!orInfo || orInfo.canonical !== 'or') {
218
+ break;
219
+ }
220
+ // Peek at what comes after 'or'
221
+ const posBeforeOr = state.position;
222
+ advance(state); // consume 'or'
223
+ const value = (0, primary_parser_1.parsePrimary)(state, parseExpr);
224
+ if (!isBareLiteral(value)) {
225
+ // Not a bare literal - backtrack and stop
226
+ state.position = posBeforeOr;
227
+ break;
228
+ }
229
+ values.push(value);
230
+ }
231
+ return values;
232
+ }
233
+ // ═══════════════════════════════════════════════════════════════════════
234
+ // Helper Functions
235
+ // ═══════════════════════════════════════════════════════════════════════
236
+ /**
237
+ * Returns the current token without advancing.
238
+ */
239
+ function peek(state) {
240
+ return state.tokens[state.position];
241
+ }
242
+ /**
243
+ * Advances to the next token.
244
+ */
245
+ function advance(state) {
246
+ if (state.position < state.tokens.length - 1) {
247
+ state.position++;
248
+ }
249
+ }
250
+ //# sourceMappingURL=expression.parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.parser.js","sourceRoot":"","sources":["../../../../src/core/parser/parser/expression.parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { ParserState, ParsedOperand } from './types';
2
+ /**
3
+ * Parses function call syntax: functionName(arg1, arg2, ...)
4
+ *
5
+ * Function calls are used for both:
6
+ * 1. Operator functions: gt($a, 5), contains($str, "test")
7
+ * 2. Utility functions: daysAgo(7), now()
8
+ *
9
+ * Special handling for nullary functions (no arguments):
10
+ * ────────────────────────────────────────────────────────
11
+ * Some functions like now(), today(), yesterday() take no arguments.
12
+ * But our operator system expects at least one operand.
13
+ * So we output: now() → ['now', 0]
14
+ *
15
+ * The 0 is a dummy argument that the operator ignores.
16
+ * This maintains consistency with the S-expression format.
17
+ *
18
+ * Examples:
19
+ * gt($a, 5) → ['greaterThan', '$a', 5]
20
+ * contains($x, "y") → ['contains', '$x', 'y']
21
+ * daysAgo(7) → ['daysAgo', 7]
22
+ * now() → ['now', 0]
23
+ * add($a, $b, $c) → ['add', '$a', '$b', '$c']
24
+ */
25
+ export declare function parseFunctionCall(state: ParserState, parseExpression: (state: ParserState, minPrecedence: number) => ParsedOperand): any[];
26
+ //# sourceMappingURL=function.parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function.parser.d.ts","sourceRoot":"","sources":["../../../../src/core/parser/parser/function.parser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG1D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,WAAW,EAClB,eAAe,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,KAAK,aAAa,GAC5E,GAAG,EAAE,CA8DP"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseFunctionCall = parseFunctionCall;
4
+ const errors_1 = require("../errors");
5
+ /**
6
+ * Parses function call syntax: functionName(arg1, arg2, ...)
7
+ *
8
+ * Function calls are used for both:
9
+ * 1. Operator functions: gt($a, 5), contains($str, "test")
10
+ * 2. Utility functions: daysAgo(7), now()
11
+ *
12
+ * Special handling for nullary functions (no arguments):
13
+ * ────────────────────────────────────────────────────────
14
+ * Some functions like now(), today(), yesterday() take no arguments.
15
+ * But our operator system expects at least one operand.
16
+ * So we output: now() → ['now', 0]
17
+ *
18
+ * The 0 is a dummy argument that the operator ignores.
19
+ * This maintains consistency with the S-expression format.
20
+ *
21
+ * Examples:
22
+ * gt($a, 5) → ['greaterThan', '$a', 5]
23
+ * contains($x, "y") → ['contains', '$x', 'y']
24
+ * daysAgo(7) → ['daysAgo', 7]
25
+ * now() → ['now', 0]
26
+ * add($a, $b, $c) → ['add', '$a', '$b', '$c']
27
+ */
28
+ function parseFunctionCall(state, parseExpression) {
29
+ const funcToken = peek(state);
30
+ if (funcToken.type !== 'FUNCTION') {
31
+ throw new errors_1.SyntaxError(`Expected function name but found ${funcToken.type}`, funcToken.position, state.input);
32
+ }
33
+ const funcName = funcToken.value;
34
+ advance(state); // consume function name
35
+ // Get canonical name - prefer from token (set by tokenizer) or look up in table
36
+ // The tokenizer sets funcToken.canonical for known operators used as functions
37
+ const canonicalName = funcToken.canonical || funcName;
38
+ // Expect opening parenthesis
39
+ const openParen = peek(state);
40
+ if (openParen.type !== 'LPAREN') {
41
+ throw new errors_1.SyntaxError(`Expected '(' after function name '${funcName}'`, openParen.position, state.input);
42
+ }
43
+ advance(state); // consume '('
44
+ // Parse arguments
45
+ const args = [];
46
+ // Check for empty argument list: func()
47
+ if (peek(state).type !== 'RPAREN') {
48
+ // Parse first argument
49
+ args.push(parseExpression(state, 0));
50
+ // Parse remaining arguments (comma-separated)
51
+ while (peek(state).type === 'COMMA') {
52
+ advance(state); // consume ','
53
+ args.push(parseExpression(state, 0));
54
+ }
55
+ }
56
+ // Expect closing parenthesis
57
+ const closeParen = peek(state);
58
+ if (closeParen.type !== 'RPAREN') {
59
+ throw new errors_1.SyntaxError(`Expected ')' after function arguments`, closeParen.position, state.input);
60
+ }
61
+ advance(state); // consume ')'
62
+ // Handle nullary functions - add dummy argument
63
+ // This ensures consistent S-expression format: ['now', 0] not ['now']
64
+ if (args.length === 0) {
65
+ return [canonicalName, 0];
66
+ }
67
+ return [canonicalName, ...args];
68
+ }
69
+ // ═══════════════════════════════════════════════════════════════════════
70
+ // Helper Functions
71
+ // ═══════════════════════════════════════════════════════════════════════
72
+ /**
73
+ * Returns the current token without advancing.
74
+ */
75
+ function peek(state) {
76
+ return state.tokens[state.position];
77
+ }
78
+ /**
79
+ * Advances to the next token.
80
+ */
81
+ function advance(state) {
82
+ if (state.position < state.tokens.length - 1) {
83
+ state.position++;
84
+ }
85
+ }
86
+ //# sourceMappingURL=function.parser.js.map