@eagleoutice/flowr 2.6.1 → 2.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (681) hide show
  1. package/README.md +131 -30
  2. package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
  3. package/abstract-interpretation/data-frame/absint-visitor.d.ts +2 -3
  4. package/abstract-interpretation/data-frame/absint-visitor.js +15 -10
  5. package/abstract-interpretation/data-frame/dataframe-domain.d.ts +18 -12
  6. package/abstract-interpretation/data-frame/dataframe-domain.js +25 -13
  7. package/abstract-interpretation/data-frame/mappers/access-mapper.d.ts +0 -1
  8. package/abstract-interpretation/data-frame/mappers/access-mapper.js +0 -1
  9. package/abstract-interpretation/data-frame/mappers/arguments.d.ts +1 -10
  10. package/abstract-interpretation/data-frame/mappers/arguments.js +0 -7
  11. package/abstract-interpretation/data-frame/mappers/assignment-mapper.d.ts +0 -1
  12. package/abstract-interpretation/data-frame/mappers/assignment-mapper.js +0 -1
  13. package/abstract-interpretation/data-frame/mappers/function-mapper.d.ts +4 -5
  14. package/abstract-interpretation/data-frame/mappers/function-mapper.js +3 -4
  15. package/abstract-interpretation/data-frame/mappers/replacement-mapper.d.ts +0 -1
  16. package/abstract-interpretation/data-frame/mappers/replacement-mapper.js +0 -1
  17. package/abstract-interpretation/data-frame/resolve-args.d.ts +1 -1
  18. package/abstract-interpretation/data-frame/semantics.d.ts +3 -4
  19. package/abstract-interpretation/data-frame/semantics.js +171 -162
  20. package/abstract-interpretation/data-frame/shape-inference.d.ts +1 -4
  21. package/abstract-interpretation/data-frame/shape-inference.js +7 -9
  22. package/abstract-interpretation/domains/abstract-domain.d.ts +59 -18
  23. package/abstract-interpretation/domains/abstract-domain.js +74 -1
  24. package/abstract-interpretation/domains/bounded-set-domain.d.ts +37 -24
  25. package/abstract-interpretation/domains/bounded-set-domain.js +70 -47
  26. package/abstract-interpretation/domains/interval-domain.d.ts +33 -25
  27. package/abstract-interpretation/domains/interval-domain.js +109 -50
  28. package/abstract-interpretation/domains/lattice.d.ts +19 -11
  29. package/abstract-interpretation/domains/mapped-abstract-domain.d.ts +34 -0
  30. package/abstract-interpretation/domains/mapped-abstract-domain.js +189 -0
  31. package/abstract-interpretation/domains/positive-interval-domain.d.ts +16 -12
  32. package/abstract-interpretation/domains/positive-interval-domain.js +20 -11
  33. package/abstract-interpretation/domains/product-domain.d.ts +18 -23
  34. package/abstract-interpretation/domains/product-domain.js +11 -19
  35. package/abstract-interpretation/domains/satisfiable-domain.d.ts +29 -0
  36. package/abstract-interpretation/domains/satisfiable-domain.js +24 -0
  37. package/abstract-interpretation/domains/set-upper-bound-domain.d.ts +54 -0
  38. package/abstract-interpretation/domains/set-upper-bound-domain.js +197 -0
  39. package/abstract-interpretation/domains/singleton-domain.d.ts +24 -19
  40. package/abstract-interpretation/domains/singleton-domain.js +52 -37
  41. package/abstract-interpretation/domains/state-abstract-domain.d.ts +8 -24
  42. package/abstract-interpretation/domains/state-abstract-domain.js +2 -167
  43. package/abstract-interpretation/normalized-ast-fold.d.ts +1 -7
  44. package/abstract-interpretation/normalized-ast-fold.js +0 -5
  45. package/benchmark/slicer.d.ts +3 -7
  46. package/benchmark/slicer.js +14 -19
  47. package/benchmark/stats/print.d.ts +6 -0
  48. package/benchmark/stats/print.js +6 -0
  49. package/benchmark/stats/size-of.d.ts +0 -1
  50. package/benchmark/stats/size-of.js +0 -1
  51. package/benchmark/stats/stats.d.ts +2 -2
  52. package/benchmark/stopwatch.d.ts +11 -13
  53. package/benchmark/stopwatch.js +11 -13
  54. package/benchmark/summarizer/first-phase/input.d.ts +6 -0
  55. package/benchmark/summarizer/first-phase/input.js +6 -0
  56. package/benchmark/summarizer/first-phase/process.d.ts +13 -1
  57. package/benchmark/summarizer/first-phase/process.js +12 -0
  58. package/benchmark/summarizer/second-phase/graph.d.ts +3 -0
  59. package/benchmark/summarizer/second-phase/graph.js +3 -0
  60. package/benchmark/summarizer/second-phase/process.d.ts +12 -0
  61. package/benchmark/summarizer/second-phase/process.js +12 -0
  62. package/benchmark/summarizer/summarizer.d.ts +1 -2
  63. package/cli/benchmark-app.js +0 -2
  64. package/cli/common/features.d.ts +7 -1
  65. package/cli/common/features.js +6 -0
  66. package/cli/common/script.d.ts +3 -1
  67. package/cli/common/script.js +3 -1
  68. package/cli/common/scripts-info.d.ts +3 -1
  69. package/cli/common/scripts-info.js +3 -0
  70. package/cli/flowr-main-options.d.ts +3 -0
  71. package/cli/flowr-main-options.js +3 -0
  72. package/cli/repl/commands/repl-commands.d.ts +13 -0
  73. package/cli/repl/commands/repl-commands.js +13 -2
  74. package/cli/repl/commands/repl-execute.d.ts +4 -0
  75. package/cli/repl/commands/repl-execute.js +6 -2
  76. package/cli/repl/commands/repl-main.d.ts +15 -9
  77. package/cli/repl/commands/repl-parse.js +2 -2
  78. package/cli/repl/commands/repl-query.js +16 -5
  79. package/cli/repl/core.d.ts +24 -6
  80. package/cli/repl/core.js +28 -19
  81. package/cli/repl/execute.d.ts +0 -2
  82. package/cli/repl/execute.js +0 -2
  83. package/cli/repl/parser/slice-query-parser.d.ts +14 -0
  84. package/cli/repl/parser/slice-query-parser.js +34 -0
  85. package/cli/repl/print-version.d.ts +6 -0
  86. package/cli/repl/print-version.js +6 -0
  87. package/cli/repl/server/compact.d.ts +8 -0
  88. package/cli/repl/server/compact.js +8 -0
  89. package/cli/repl/server/connection.d.ts +4 -3
  90. package/cli/repl/server/connection.js +3 -31
  91. package/cli/repl/server/messages/all-messages.d.ts +1 -3
  92. package/cli/repl/server/messages/all-messages.js +0 -1
  93. package/cli/repl/server/messages/message-analysis.d.ts +0 -2
  94. package/cli/repl/server/messages/message-query.d.ts +1 -1
  95. package/cli/repl/server/messages/message-repl.d.ts +0 -1
  96. package/cli/repl/server/send.d.ts +6 -0
  97. package/cli/repl/server/send.js +6 -0
  98. package/cli/repl/server/server.d.ts +1 -1
  99. package/cli/repl/server/validate.d.ts +10 -1
  100. package/cli/repl/server/validate.js +9 -0
  101. package/cli/run-script.d.ts +1 -2
  102. package/cli/run-script.js +0 -1
  103. package/cli/script-core/statistics-core.d.ts +3 -0
  104. package/cli/script-core/statistics-core.js +3 -0
  105. package/cli/script-core/statistics-helper-core.d.ts +4 -1
  106. package/cli/script-core/statistics-helper-core.js +3 -0
  107. package/cli/script-core/summarizer-core.d.ts +3 -0
  108. package/cli/script-core/summarizer-core.js +3 -0
  109. package/cli/summarizer-app.d.ts +2 -3
  110. package/cli/summarizer-app.js +2 -3
  111. package/config.d.ts +17 -3
  112. package/config.js +15 -0
  113. package/control-flow/basic-cfg-guided-visitor.d.ts +1 -2
  114. package/control-flow/basic-cfg-guided-visitor.js +0 -1
  115. package/control-flow/cfg-to-basic-blocks.d.ts +1 -1
  116. package/control-flow/control-flow-graph.d.ts +20 -12
  117. package/control-flow/control-flow-graph.js +16 -4
  118. package/control-flow/dfg-cfg-guided-visitor.d.ts +2 -3
  119. package/control-flow/diff-cfg.d.ts +3 -5
  120. package/control-flow/diff-cfg.js +0 -1
  121. package/control-flow/extract-cfg.d.ts +3 -6
  122. package/control-flow/extract-cfg.js +0 -3
  123. package/control-flow/happens-before.d.ts +1 -1
  124. package/control-flow/semantic-cfg-guided-visitor.d.ts +2 -31
  125. package/control-flow/semantic-cfg-guided-visitor.js +0 -28
  126. package/control-flow/simple-visitor.d.ts +1 -3
  127. package/control-flow/simple-visitor.js +0 -2
  128. package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
  129. package/control-flow/useless-loop.d.ts +0 -3
  130. package/control-flow/useless-loop.js +2 -5
  131. package/core/pipeline-executor.d.ts +8 -16
  132. package/core/pipeline-executor.js +9 -18
  133. package/core/print/dataflow-printer.d.ts +19 -0
  134. package/core/print/dataflow-printer.js +19 -0
  135. package/core/print/normalize-printer.d.ts +21 -1
  136. package/core/print/normalize-printer.js +20 -0
  137. package/core/print/parse-printer.d.ts +6 -1
  138. package/core/print/parse-printer.js +5 -0
  139. package/core/print/print.d.ts +0 -1
  140. package/core/print/print.js +0 -1
  141. package/core/print/slice-diff-ansi.d.ts +3 -0
  142. package/core/print/slice-diff-ansi.js +3 -0
  143. package/core/steps/all/core/00-parse.d.ts +1 -1
  144. package/core/steps/all/core/01-parse-tree-sitter.d.ts +1 -11
  145. package/core/steps/all/core/10-normalize.d.ts +3 -0
  146. package/core/steps/all/core/10-normalize.js +3 -0
  147. package/core/steps/all/core/11-normalize-tree-sitter.d.ts +4 -3
  148. package/core/steps/pipeline/create-pipeline.d.ts +1 -1
  149. package/core/steps/pipeline/default-pipelines.d.ts +47 -47
  150. package/core/steps/pipeline/default-pipelines.js +0 -4
  151. package/core/steps/pipeline/pipeline.d.ts +1 -8
  152. package/core/steps/pipeline/pipeline.js +1 -3
  153. package/core/steps/pipeline-step.d.ts +0 -1
  154. package/core/steps/pipeline-step.js +0 -1
  155. package/dataflow/cluster.d.ts +3 -0
  156. package/dataflow/cluster.js +3 -0
  157. package/dataflow/environments/append.d.ts +1 -1
  158. package/dataflow/environments/built-in-config.d.ts +1 -5
  159. package/dataflow/environments/built-in-config.js +0 -1
  160. package/dataflow/environments/built-in.d.ts +10 -5
  161. package/dataflow/environments/built-in.js +6 -1
  162. package/dataflow/environments/clone.d.ts +1 -1
  163. package/dataflow/environments/default-builtin-config.d.ts +3 -0
  164. package/dataflow/environments/default-builtin-config.js +4 -1
  165. package/dataflow/environments/diff.d.ts +11 -2
  166. package/dataflow/environments/diff.js +9 -0
  167. package/dataflow/environments/environment.d.ts +3 -3
  168. package/dataflow/environments/environment.js +8 -6
  169. package/dataflow/environments/identifier.d.ts +0 -4
  170. package/dataflow/environments/identifier.js +0 -1
  171. package/dataflow/environments/overwrite.d.ts +4 -1
  172. package/dataflow/environments/overwrite.js +3 -0
  173. package/dataflow/environments/resolve-by-name.d.ts +4 -4
  174. package/dataflow/environments/resolve-by-name.js +3 -2
  175. package/dataflow/environments/scoping.d.ts +4 -1
  176. package/dataflow/environments/scoping.js +3 -0
  177. package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
  178. package/dataflow/eval/resolve/alias-tracking.js +11 -14
  179. package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
  180. package/dataflow/eval/resolve/resolve.d.ts +1 -7
  181. package/dataflow/eval/resolve/resolve.js +0 -5
  182. package/dataflow/eval/values/general.d.ts +1 -3
  183. package/dataflow/eval/values/general.js +0 -1
  184. package/dataflow/eval/values/intervals/interval-constants.d.ts +7 -1
  185. package/dataflow/eval/values/intervals/interval-constants.js +6 -0
  186. package/dataflow/eval/values/logical/logical-constants.d.ts +4 -1
  187. package/dataflow/eval/values/logical/logical-constants.js +3 -0
  188. package/dataflow/eval/values/r-value.d.ts +12 -0
  189. package/dataflow/eval/values/r-value.js +12 -0
  190. package/dataflow/eval/values/scalar/scalar-consatnts.d.ts +7 -1
  191. package/dataflow/eval/values/scalar/scalar-consatnts.js +6 -0
  192. package/dataflow/eval/values/sets/set-constants.d.ts +7 -2
  193. package/dataflow/eval/values/sets/set-constants.js +6 -0
  194. package/dataflow/eval/values/string/string-constants.d.ts +10 -1
  195. package/dataflow/eval/values/string/string-constants.js +9 -0
  196. package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
  197. package/dataflow/extractor.d.ts +1 -1
  198. package/dataflow/graph/dataflowgraph-builder.d.ts +20 -38
  199. package/dataflow/graph/dataflowgraph-builder.js +6 -23
  200. package/dataflow/graph/diff-dataflow-graph.d.ts +16 -6
  201. package/dataflow/graph/diff-dataflow-graph.js +12 -1
  202. package/dataflow/graph/edge.d.ts +9 -0
  203. package/dataflow/graph/edge.js +9 -0
  204. package/dataflow/graph/graph.d.ts +6 -19
  205. package/dataflow/graph/graph.js +4 -15
  206. package/dataflow/graph/invert-dfg.d.ts +3 -0
  207. package/dataflow/graph/invert-dfg.js +3 -0
  208. package/dataflow/graph/quads.d.ts +1 -1
  209. package/dataflow/graph/unknown-replacement.d.ts +6 -0
  210. package/dataflow/graph/unknown-replacement.js +6 -0
  211. package/dataflow/graph/unknown-side-effect.d.ts +8 -0
  212. package/dataflow/graph/unknown-side-effect.js +8 -0
  213. package/dataflow/graph/vertex.d.ts +9 -9
  214. package/dataflow/graph/vertex.js +9 -1
  215. package/dataflow/info.d.ts +9 -10
  216. package/dataflow/info.js +6 -1
  217. package/dataflow/internal/linker.d.ts +25 -9
  218. package/dataflow/internal/linker.js +23 -7
  219. package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
  220. package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -0
  221. package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +1 -1
  222. package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +4 -1
  223. package/dataflow/internal/process/functions/call/built-in/built-in-access.js +3 -1
  224. package/dataflow/internal/process/functions/call/built-in/built-in-apply.d.ts +4 -1
  225. package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +3 -0
  226. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +2 -2
  227. package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +6 -3
  228. package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +3 -0
  229. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +4 -1
  230. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +3 -0
  231. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +5 -2
  232. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +3 -0
  233. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +10 -4
  234. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +6 -0
  235. package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +3 -0
  236. package/dataflow/internal/process/functions/call/built-in/built-in-get.js +3 -0
  237. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +5 -2
  238. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +4 -0
  239. package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +3 -0
  240. package/dataflow/internal/process/functions/call/built-in/built-in-library.js +3 -0
  241. package/dataflow/internal/process/functions/call/built-in/built-in-list.d.ts +1 -1
  242. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +3 -0
  243. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +3 -0
  244. package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +3 -0
  245. package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +3 -0
  246. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +5 -2
  247. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +3 -0
  248. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +6 -3
  249. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +3 -1
  250. package/dataflow/internal/process/functions/call/built-in/built-in-rm.d.ts +4 -1
  251. package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +3 -0
  252. package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +23 -6
  253. package/dataflow/internal/process/functions/call/built-in/built-in-source.js +20 -1
  254. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +3 -0
  255. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +3 -0
  256. package/dataflow/internal/process/functions/call/built-in/built-in-vector.d.ts +1 -1
  257. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +5 -2
  258. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +3 -0
  259. package/dataflow/internal/process/functions/call/common.d.ts +11 -5
  260. package/dataflow/internal/process/functions/call/common.js +6 -0
  261. package/dataflow/internal/process/functions/call/default-call-handling.d.ts +3 -0
  262. package/dataflow/internal/process/functions/call/default-call-handling.js +3 -0
  263. package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
  264. package/dataflow/internal/process/functions/call/known-call-handling.js +7 -0
  265. package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
  266. package/dataflow/internal/process/functions/call/named-call-handling.js +6 -0
  267. package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +4 -1
  268. package/dataflow/internal/process/functions/call/unnamed-call-handling.js +3 -0
  269. package/dataflow/internal/process/functions/process-argument.d.ts +8 -2
  270. package/dataflow/internal/process/functions/process-argument.js +6 -0
  271. package/dataflow/internal/process/functions/process-parameter.d.ts +5 -2
  272. package/dataflow/internal/process/functions/process-parameter.js +3 -0
  273. package/dataflow/internal/process/process-symbol.d.ts +3 -0
  274. package/dataflow/internal/process/process-symbol.js +3 -0
  275. package/dataflow/internal/process/process-uninteresting-leaf.d.ts +3 -0
  276. package/dataflow/internal/process/process-uninteresting-leaf.js +3 -0
  277. package/dataflow/internal/process/process-value.d.ts +3 -0
  278. package/dataflow/internal/process/process-value.js +3 -0
  279. package/dataflow/origin/dfg-get-origin.d.ts +0 -2
  280. package/dataflow/origin/dfg-get-symbol-refs.d.ts +5 -7
  281. package/dataflow/origin/dfg-get-symbol-refs.js +6 -8
  282. package/dataflow/processor.d.ts +0 -1
  283. package/dataflow/processor.js +0 -1
  284. package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -0
  285. package/documentation/data/dfg/doc-data-dfg-util.js +6 -0
  286. package/documentation/data/faq/faqs.d.ts +5 -0
  287. package/documentation/data/faq/faqs.js +78 -0
  288. package/documentation/data/faq/wiki-faq-store.d.ts +18 -0
  289. package/documentation/data/faq/wiki-faq-store.js +75 -0
  290. package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
  291. package/documentation/data/server/doc-data-server-messages.js +4 -63
  292. package/documentation/doc-util/doc-auto-gen.d.ts +6 -0
  293. package/documentation/doc-util/doc-auto-gen.js +6 -0
  294. package/documentation/doc-util/doc-benchmarks.d.ts +12 -0
  295. package/documentation/doc-util/doc-benchmarks.js +12 -0
  296. package/documentation/doc-util/doc-cfg.d.ts +7 -1
  297. package/documentation/doc-util/doc-cfg.js +9 -0
  298. package/documentation/doc-util/doc-cli-option.d.ts +9 -0
  299. package/documentation/doc-util/doc-cli-option.js +9 -0
  300. package/documentation/doc-util/doc-code.d.ts +24 -0
  301. package/documentation/doc-util/doc-code.js +24 -0
  302. package/documentation/doc-util/doc-dfg.d.ts +7 -1
  303. package/documentation/doc-util/doc-dfg.js +9 -0
  304. package/documentation/doc-util/doc-env.d.ts +3 -0
  305. package/documentation/doc-util/doc-env.js +3 -0
  306. package/documentation/doc-util/doc-escape.d.ts +0 -1
  307. package/documentation/doc-util/doc-escape.js +0 -1
  308. package/documentation/doc-util/doc-files.d.ts +11 -0
  309. package/documentation/doc-util/doc-files.js +15 -4
  310. package/documentation/doc-util/doc-general.d.ts +6 -0
  311. package/documentation/doc-util/doc-general.js +6 -0
  312. package/documentation/doc-util/doc-normalized-ast.d.ts +7 -1
  313. package/documentation/doc-util/doc-normalized-ast.js +6 -0
  314. package/documentation/doc-util/doc-query.d.ts +15 -0
  315. package/documentation/doc-util/doc-query.js +17 -2
  316. package/documentation/doc-util/doc-repl.d.ts +6 -0
  317. package/documentation/doc-util/doc-repl.js +6 -0
  318. package/documentation/doc-util/doc-search.d.ts +15 -0
  319. package/documentation/doc-util/doc-search.js +17 -2
  320. package/documentation/doc-util/doc-server-message.d.ts +13 -1
  321. package/documentation/doc-util/doc-server-message.js +13 -1
  322. package/documentation/doc-util/doc-structure.d.ts +9 -0
  323. package/documentation/doc-util/doc-structure.js +10 -1
  324. package/documentation/doc-util/doc-types.d.ts +42 -0
  325. package/documentation/doc-util/doc-types.js +42 -0
  326. package/documentation/print-analyzer-wiki.js +4 -0
  327. package/documentation/print-core-wiki.d.ts +3 -0
  328. package/documentation/print-core-wiki.js +5 -2
  329. package/documentation/print-dataflow-graph-wiki.js +5 -5
  330. package/documentation/print-faq-wiki.js +3 -75
  331. package/documentation/print-interface-wiki.js +1 -1
  332. package/documentation/print-onboarding-wiki.js +1 -1
  333. package/documentation/print-query-wiki.js +4 -34
  334. package/documentation/print-readme.js +105 -0
  335. package/engines.d.ts +1 -1
  336. package/linter/linter-executor.d.ts +6 -3
  337. package/linter/linter-executor.js +3 -0
  338. package/linter/linter-format.d.ts +8 -0
  339. package/linter/linter-format.js +8 -0
  340. package/linter/rules/absolute-path.d.ts +3 -4
  341. package/linter/rules/dataframe-access-validation.d.ts +3 -4
  342. package/linter/rules/dataframe-access-validation.js +9 -11
  343. package/linter/rules/dead-code.d.ts +1 -1
  344. package/linter/rules/deprecated-functions.d.ts +1 -1
  345. package/linter/rules/file-path-validity.d.ts +1 -2
  346. package/linter/rules/function-finder-util.d.ts +1 -2
  347. package/linter/rules/naming-convention.d.ts +13 -2
  348. package/linter/rules/naming-convention.js +13 -1
  349. package/linter/rules/network-functions.d.ts +1 -1
  350. package/linter/rules/seeded-randomness.d.ts +1 -2
  351. package/linter/rules/unused-definition.d.ts +2 -3
  352. package/linter/rules/useless-loop.d.ts +1 -2
  353. package/package.json +2 -2
  354. package/project/cache/flowr-analyzer-cache.d.ts +2 -9
  355. package/project/cache/flowr-analyzer-cache.js +0 -6
  356. package/project/context/flowr-analyzer-context.d.ts +3 -6
  357. package/project/context/flowr-analyzer-dependencies-context.d.ts +0 -1
  358. package/project/context/flowr-analyzer-files-context.d.ts +2 -4
  359. package/project/context/flowr-file.d.ts +0 -1
  360. package/project/flowr-analyzer-builder.d.ts +1 -3
  361. package/project/flowr-analyzer-builder.js +5 -6
  362. package/project/flowr-analyzer.d.ts +34 -25
  363. package/project/flowr-analyzer.js +10 -11
  364. package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +1 -1
  365. package/project/plugins/file-plugins/flowr-description-file.d.ts +1 -3
  366. package/project/plugins/file-plugins/flowr-description-file.js +0 -1
  367. package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
  368. package/queries/base-query-format.d.ts +2 -2
  369. package/queries/catalog/call-context-query/call-context-query-executor.d.ts +3 -0
  370. package/queries/catalog/call-context-query/call-context-query-executor.js +3 -0
  371. package/queries/catalog/call-context-query/call-context-query-format.d.ts +3 -3
  372. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +11 -2
  373. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +9 -0
  374. package/queries/catalog/cluster-query/cluster-query-executor.d.ts +3 -0
  375. package/queries/catalog/cluster-query/cluster-query-executor.js +3 -0
  376. package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
  377. package/queries/catalog/config-query/config-query-executor.d.ts +3 -0
  378. package/queries/catalog/config-query/config-query-executor.js +3 -0
  379. package/queries/catalog/config-query/config-query-format.d.ts +5 -2
  380. package/queries/catalog/config-query/config-query-format.js +13 -16
  381. package/queries/catalog/control-flow-query/control-flow-query-executor.d.ts +3 -0
  382. package/queries/catalog/control-flow-query/control-flow-query-executor.js +3 -0
  383. package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +3 -3
  384. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.d.ts +3 -0
  385. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +3 -0
  386. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
  387. package/queries/catalog/dataflow-query/dataflow-query-executor.d.ts +3 -0
  388. package/queries/catalog/dataflow-query/dataflow-query-executor.js +3 -0
  389. package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
  390. package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +4 -1
  391. package/queries/catalog/dependencies-query/dependencies-query-executor.js +7 -4
  392. package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +4 -1
  393. package/queries/catalog/dependencies-query/dependencies-query-format.js +4 -1
  394. package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +4 -1
  395. package/queries/catalog/df-shape-query/df-shape-query-executor.js +8 -4
  396. package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +10 -3
  397. package/queries/catalog/df-shape-query/df-shape-query-format.js +24 -5
  398. package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +3 -0
  399. package/queries/catalog/happens-before-query/happens-before-query-executor.js +3 -0
  400. package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
  401. package/queries/catalog/id-map-query/id-map-query-executor.d.ts +3 -0
  402. package/queries/catalog/id-map-query/id-map-query-executor.js +3 -0
  403. package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
  404. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +3 -0
  405. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +3 -0
  406. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +2 -2
  407. package/queries/catalog/linter-query/linter-query-executor.d.ts +4 -0
  408. package/queries/catalog/linter-query/linter-query-executor.js +4 -0
  409. package/queries/catalog/linter-query/linter-query-format.d.ts +12 -3
  410. package/queries/catalog/linter-query/linter-query-format.js +67 -0
  411. package/queries/catalog/location-map-query/location-map-query-executor.d.ts +4 -0
  412. package/queries/catalog/location-map-query/location-map-query-executor.js +5 -1
  413. package/queries/catalog/location-map-query/location-map-query-format.d.ts +7 -1
  414. package/queries/catalog/location-map-query/location-map-query-format.js +12 -0
  415. package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.d.ts +3 -0
  416. package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.js +3 -0
  417. package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
  418. package/queries/catalog/origin-query/origin-query-executor.d.ts +7 -1
  419. package/queries/catalog/origin-query/origin-query-executor.js +6 -0
  420. package/queries/catalog/origin-query/origin-query-format.d.ts +7 -1
  421. package/queries/catalog/origin-query/origin-query-format.js +17 -1
  422. package/queries/catalog/project-query/project-query-executor.d.ts +3 -0
  423. package/queries/catalog/project-query/project-query-executor.js +3 -0
  424. package/queries/catalog/project-query/project-query-format.d.ts +1 -1
  425. package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +6 -0
  426. package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +6 -0
  427. package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +7 -1
  428. package/queries/catalog/resolve-value-query/resolve-value-query-format.js +19 -1
  429. package/queries/catalog/search-query/search-query-executor.d.ts +3 -0
  430. package/queries/catalog/search-query/search-query-executor.js +3 -0
  431. package/queries/catalog/search-query/search-query-format.d.ts +1 -1
  432. package/queries/catalog/static-slice-query/static-slice-query-executor.d.ts +9 -0
  433. package/queries/catalog/static-slice-query/static-slice-query-executor.js +9 -0
  434. package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +7 -1
  435. package/queries/catalog/static-slice-query/static-slice-query-format.js +17 -0
  436. package/queries/query-print.d.ts +20 -4
  437. package/queries/query-print.js +18 -2
  438. package/queries/query.d.ts +85 -55
  439. package/queries/query.js +35 -23
  440. package/queries/virtual-query/virtual-queries.d.ts +1 -2
  441. package/r-bridge/data/get.d.ts +6 -0
  442. package/r-bridge/data/get.js +6 -0
  443. package/r-bridge/lang-4.x/ast/model/collect.d.ts +0 -1
  444. package/r-bridge/lang-4.x/ast/model/collect.js +0 -1
  445. package/r-bridge/lang-4.x/ast/model/model.d.ts +8 -11
  446. package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +0 -2
  447. package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +3 -0
  448. package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
  449. package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +3 -0
  450. package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
  451. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +3 -0
  452. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +3 -0
  453. package/r-bridge/lang-4.x/ast/model/operators.d.ts +0 -1
  454. package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +6 -7
  455. package/r-bridge/lang-4.x/ast/model/processing/decorate.js +6 -6
  456. package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +1 -1
  457. package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +0 -1
  458. package/r-bridge/lang-4.x/ast/model/processing/node-id.js +0 -1
  459. package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +0 -1
  460. package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +1 -2
  461. package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +0 -1
  462. package/r-bridge/lang-4.x/ast/model/processing/visitor.js +0 -1
  463. package/r-bridge/lang-4.x/ast/model/type.d.ts +4 -5
  464. package/r-bridge/lang-4.x/ast/model/type.js +4 -5
  465. package/r-bridge/lang-4.x/ast/model/versions.d.ts +0 -1
  466. package/r-bridge/lang-4.x/ast/model/versions.js +0 -1
  467. package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +4 -5
  468. package/r-bridge/lang-4.x/ast/parser/json/parser.js +0 -1
  469. package/r-bridge/lang-4.x/ast/parser/main/internal/control/normalize-if-then.d.ts +1 -1
  470. package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.d.ts +0 -1
  471. package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.js +0 -1
  472. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.d.ts +0 -2
  473. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.js +0 -2
  474. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.d.ts +1 -3
  475. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.js +0 -2
  476. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.d.ts +0 -2
  477. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.js +0 -2
  478. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.d.ts +0 -2
  479. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.js +0 -2
  480. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.d.ts +3 -0
  481. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.js +3 -0
  482. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.d.ts +4 -1
  483. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.js +3 -0
  484. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.d.ts +3 -0
  485. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.js +3 -0
  486. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.d.ts +0 -2
  487. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.js +0 -2
  488. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.d.ts +4 -1
  489. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.js +3 -0
  490. package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.d.ts +0 -2
  491. package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.js +0 -2
  492. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-binary.d.ts +1 -1
  493. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.d.ts +0 -2
  494. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.js +0 -2
  495. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.d.ts +0 -1
  496. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.js +0 -1
  497. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.d.ts +0 -1
  498. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.js +0 -1
  499. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.d.ts +3 -0
  500. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.js +3 -0
  501. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.d.ts +9 -0
  502. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.js +9 -0
  503. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.d.ts +1 -3
  504. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.js +0 -2
  505. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.d.ts +1 -2
  506. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.js +0 -1
  507. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.d.ts +0 -1
  508. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.js +0 -1
  509. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.d.ts +0 -2
  510. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.js +0 -2
  511. package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.d.ts +14 -5
  512. package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.js +13 -6
  513. package/r-bridge/lang-4.x/convert-values.d.ts +12 -1
  514. package/r-bridge/lang-4.x/convert-values.js +12 -1
  515. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +7 -2
  516. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +17 -0
  517. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +13 -1
  518. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +48 -19
  519. package/r-bridge/parser.d.ts +28 -7
  520. package/r-bridge/retriever.d.ts +16 -1
  521. package/r-bridge/retriever.js +15 -0
  522. package/r-bridge/shell-executor.d.ts +3 -3
  523. package/r-bridge/shell-executor.js +6 -1
  524. package/r-bridge/shell.d.ts +24 -23
  525. package/r-bridge/shell.js +37 -31
  526. package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -1
  527. package/reconstruct/auto-select/magic-comments.d.ts +1 -2
  528. package/reconstruct/auto-select/magic-comments.js +1 -2
  529. package/reconstruct/reconstruct.d.ts +1 -3
  530. package/reconstruct/reconstruct.js +0 -2
  531. package/search/flowr-search-builder.d.ts +12 -5
  532. package/search/flowr-search-builder.js +7 -2
  533. package/search/flowr-search-executor.d.ts +3 -3
  534. package/search/flowr-search-filters.d.ts +14 -1
  535. package/search/flowr-search-filters.js +13 -0
  536. package/search/flowr-search-printer.d.ts +6 -0
  537. package/search/flowr-search-printer.js +6 -0
  538. package/search/flowr-search-traverse.d.ts +1 -1
  539. package/search/flowr-search.d.ts +3 -3
  540. package/search/search-executor/search-enrichers.d.ts +9 -6
  541. package/search/search-executor/search-enrichers.js +3 -0
  542. package/search/search-executor/search-generators.d.ts +19 -10
  543. package/search/search-executor/search-generators.js +49 -2
  544. package/search/search-executor/search-mappers.d.ts +8 -5
  545. package/search/search-executor/search-mappers.js +3 -0
  546. package/search/search-executor/search-transformer.d.ts +19 -16
  547. package/search/search-executor/search-transformer.js +3 -0
  548. package/slicing/criterion/collect-all.d.ts +10 -10
  549. package/slicing/criterion/parse.d.ts +4 -2
  550. package/slicing/criterion/parse.js +4 -2
  551. package/slicing/static/fingerprint.d.ts +9 -1
  552. package/slicing/static/fingerprint.js +8 -0
  553. package/slicing/static/slice-call.d.ts +2 -2
  554. package/slicing/static/static-slicer.d.ts +8 -4
  555. package/slicing/static/static-slicer.js +5 -1
  556. package/slicing/static/visiting-queue.d.ts +1 -1
  557. package/statistics/features/common-syntax-probability.d.ts +10 -1
  558. package/statistics/features/common-syntax-probability.js +9 -0
  559. package/statistics/features/feature.d.ts +0 -4
  560. package/statistics/features/feature.js +0 -1
  561. package/statistics/features/post-processing.d.ts +6 -0
  562. package/statistics/features/post-processing.js +6 -0
  563. package/statistics/features/supported/assignments/post-process.d.ts +3 -0
  564. package/statistics/features/supported/assignments/post-process.js +3 -0
  565. package/statistics/features/supported/comments/post-process.d.ts +3 -0
  566. package/statistics/features/supported/comments/post-process.js +3 -0
  567. package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
  568. package/statistics/features/supported/control-flow/post-process.js +3 -0
  569. package/statistics/features/supported/data-access/data-access.d.ts +1 -1
  570. package/statistics/features/supported/data-access/post-process.d.ts +3 -0
  571. package/statistics/features/supported/data-access/post-process.js +3 -0
  572. package/statistics/features/supported/defined-functions/defined-functions.d.ts +1 -1
  573. package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
  574. package/statistics/features/supported/expression-list/post-process.js +3 -0
  575. package/statistics/features/supported/loops/post-process.d.ts +3 -0
  576. package/statistics/features/supported/loops/post-process.js +3 -0
  577. package/statistics/features/supported/used-functions/used-functions.d.ts +1 -1
  578. package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
  579. package/statistics/features/supported/used-packages/post-process.js +3 -0
  580. package/statistics/features/supported/values/post-process.d.ts +3 -0
  581. package/statistics/features/supported/values/post-process.js +3 -0
  582. package/statistics/features/supported/variables/post-process.d.ts +7 -1
  583. package/statistics/features/supported/variables/post-process.js +6 -0
  584. package/statistics/meta-statistics.d.ts +8 -9
  585. package/statistics/output/file-provider.d.ts +5 -6
  586. package/statistics/output/file-provider.js +5 -6
  587. package/statistics/output/print-stats.d.ts +13 -1
  588. package/statistics/output/print-stats.js +12 -0
  589. package/statistics/output/statistics-file.d.ts +1 -2
  590. package/statistics/output/statistics-file.js +0 -1
  591. package/statistics/statistics.d.ts +3 -4
  592. package/statistics/statistics.js +1 -2
  593. package/statistics/summarizer/auto-detect.d.ts +3 -0
  594. package/statistics/summarizer/auto-detect.js +3 -0
  595. package/statistics/summarizer/post-process/clusterer.d.ts +3 -4
  596. package/statistics/summarizer/post-process/clusterer.js +0 -2
  597. package/statistics/summarizer/post-process/file-based-count.d.ts +0 -1
  598. package/statistics/summarizer/post-process/file-based-count.js +0 -1
  599. package/statistics/summarizer/post-process/histogram.d.ts +0 -2
  600. package/statistics/summarizer/post-process/histogram.js +0 -2
  601. package/statistics/summarizer/post-process/post-process-output.d.ts +2 -4
  602. package/statistics/summarizer/post-process/post-process-output.js +0 -3
  603. package/statistics/summarizer/second-phase/process.d.ts +5 -3
  604. package/statistics/summarizer/second-phase/process.js +3 -1
  605. package/statistics/summarizer/summarizer.d.ts +1 -2
  606. package/util/assert.d.ts +52 -2
  607. package/util/assert.js +52 -2
  608. package/util/collections/arrays.d.ts +10 -5
  609. package/util/collections/arrays.js +10 -5
  610. package/util/collections/defaultmap.d.ts +11 -11
  611. package/util/collections/defaultmap.js +11 -11
  612. package/util/containers.d.ts +2 -7
  613. package/util/containers.js +0 -5
  614. package/util/diff-graph.d.ts +0 -1
  615. package/util/diff-graph.js +0 -1
  616. package/util/diff.d.ts +3 -1
  617. package/util/diff.js +3 -1
  618. package/util/files.d.ts +11 -11
  619. package/util/files.js +10 -10
  620. package/util/formats/adapter.d.ts +9 -0
  621. package/util/formats/adapter.js +9 -0
  622. package/util/formats/adapters/rmd-adapter.d.ts +10 -1
  623. package/util/formats/adapters/rmd-adapter.js +10 -1
  624. package/util/html-hover-over.d.ts +5 -0
  625. package/util/html-hover-over.js +5 -0
  626. package/util/json.d.ts +13 -0
  627. package/util/json.js +13 -0
  628. package/util/log.d.ts +2 -2
  629. package/util/log.js +2 -2
  630. package/util/mermaid/ast.d.ts +3 -0
  631. package/util/mermaid/ast.js +3 -0
  632. package/util/mermaid/cfg.d.ts +1 -1
  633. package/util/mermaid/dfg.d.ts +12 -4
  634. package/util/mermaid/dfg.js +9 -1
  635. package/util/mermaid/mermaid.d.ts +6 -1
  636. package/util/mermaid/mermaid.js +6 -1
  637. package/util/numbers.d.ts +7 -0
  638. package/util/numbers.js +7 -0
  639. package/util/objects.d.ts +0 -2
  640. package/util/os.d.ts +3 -0
  641. package/util/os.js +3 -0
  642. package/util/parallel.d.ts +4 -4
  643. package/util/parallel.js +4 -4
  644. package/util/prefix.d.ts +0 -1
  645. package/util/prefix.js +0 -1
  646. package/util/quads.d.ts +14 -17
  647. package/util/quads.js +3 -5
  648. package/util/r-value.d.ts +10 -1
  649. package/util/r-value.js +21 -0
  650. package/util/random.d.ts +3 -0
  651. package/util/random.js +3 -0
  652. package/util/range.d.ts +9 -3
  653. package/util/range.js +15 -2
  654. package/util/schema.d.ts +14 -1
  655. package/util/schema.js +15 -2
  656. package/util/simple-df/dfg-view.d.ts +4 -1
  657. package/util/simple-df/dfg-view.js +4 -1
  658. package/util/summarizer.d.ts +9 -1
  659. package/util/summarizer.js +9 -0
  660. package/util/text/ansi.d.ts +3 -0
  661. package/util/text/ansi.js +3 -0
  662. package/util/text/args.d.ts +2 -4
  663. package/util/text/args.js +7 -5
  664. package/util/text/text.d.ts +4 -0
  665. package/util/text/text.js +4 -0
  666. package/util/text/time.d.ts +0 -1
  667. package/util/text/time.js +0 -1
  668. package/util/version.d.ts +12 -3
  669. package/util/version.js +12 -3
  670. package/abstract-interpretation/data-frame/domain.d.ts +0 -107
  671. package/abstract-interpretation/data-frame/domain.js +0 -315
  672. package/abstract-interpretation/domains/set-bounded-set-domain.d.ts +0 -43
  673. package/abstract-interpretation/domains/set-bounded-set-domain.js +0 -164
  674. package/cli/repl/commands/repl-lineage.d.ts +0 -15
  675. package/cli/repl/commands/repl-lineage.js +0 -66
  676. package/cli/repl/server/messages/message-lineage.d.ts +0 -17
  677. package/cli/repl/server/messages/message-lineage.js +0 -25
  678. package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
  679. package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
  680. package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
  681. package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
@@ -1,107 +0,0 @@
1
- import type { NodeId } from '../../r-bridge/lang-4.x/ast/model/processing/node-id';
2
- type Interval = [number, number];
3
- /** The bottom element (least element) of the positive interval domain representing no possible values, explicitly given as "bottom". */
4
- export declare const IntervalBottom = "bottom";
5
- /** The top element (greatest element) of the positive interval domain representing all possible values, defined as the interval from 0 to infinity. */
6
- export declare const IntervalTop: [0, number];
7
- /** The positive interval domain representing possible integer values. */
8
- export type IntervalDomain = Interval | typeof IntervalBottom;
9
- /** The bottom element (least element) of the column names domain representing no possible column name, defined as the empty list []. */
10
- export declare const ColNamesBottom: [];
11
- /** The top element (greatest element) of the column names domain representing all possible values, explicitly given as "top". */
12
- export declare const ColNamesTop = "top";
13
- /** The column names domain defined as bounded string set domain representing possible column names. */
14
- export type ColNamesDomain = string[] | typeof ColNamesTop;
15
- /**
16
- * The data frame shape domain representing possible data frame shapes, defined as product domain of
17
- * the {@link ColNamesDomain} for the columns names and {@link IntervalDomain} for the number of columns and rows.
18
- * */
19
- export interface DataFrameDomain {
20
- colnames: ColNamesDomain;
21
- cols: IntervalDomain;
22
- rows: IntervalDomain;
23
- }
24
- /**
25
- * The bottom element (least element) of the data frame shape domain representing no possible value, mapping the columns names to {@link ColNamesBottom}
26
- * and the number of columns and rows to {@link IntervalBottom}.
27
- */
28
- export declare const DataFrameBottom: {
29
- readonly colnames: [];
30
- readonly cols: "bottom";
31
- readonly rows: "bottom";
32
- };
33
- /**
34
- * The top element (greatest element) of the data frame shape domain representing all possible value, mapping the columns names to {@link ColNamesTop}
35
- * and the number of columns and rows to {@link IntervalTop}.
36
- */
37
- export declare const DataFrameTop: {
38
- readonly colnames: "top";
39
- readonly cols: [0, number];
40
- readonly rows: [0, number];
41
- };
42
- /**
43
- * The data frame shape state domain representing possible memory states, mapping AST node IDs to data frame shape values of the {@link DataFrameDomain}.
44
- */
45
- export type DataFrameStateDomain = Map<NodeId, DataFrameDomain>;
46
- /** Checks if two abstract values of the column names domain are equal. */
47
- export declare function equalColNames(set1: ColNamesDomain, set2: ColNamesDomain): boolean;
48
- /** Checks if two abstract values of the column names domain are ordered according to the partial ordering of the column names lattice. */
49
- export declare function leqColNames(set1: ColNamesDomain, set2: ColNamesDomain): boolean;
50
- /** Joins two abstract values of the columns names domain according to the column names lattice by creating the least upper bound (LUB). */
51
- export declare function joinColNames(set1: ColNamesDomain, set2: ColNamesDomain, maxColNames?: number): ColNamesDomain;
52
- /** Meets two abstract values of the columns names domain according to the column names lattice by creating the greatest lower bound (GLB). */
53
- export declare function meetColNames(set1: ColNamesDomain, set2: ColNamesDomain): ColNamesDomain;
54
- /** Subtracts an abstract value from another abstract value of the column names domain by performing a set minus. */
55
- export declare function subtractColNames(set1: ColNamesDomain, set2: ColNamesDomain): ColNamesDomain;
56
- /**
57
- * Widens two abstract values of the column names domain via naive widening to soundly over-approximate the join in (possibly infinite) fixpoint iterations.
58
- *
59
- * This is technically not necessary, as the join is limited by the maximum number of inferred column names.
60
- * However, this speeds up the iteration in larger loops significantly, as we are over-approximating the column names much earlier.
61
- */
62
- export declare function wideningColNames(set1: ColNamesDomain, set2: ColNamesDomain): ColNamesDomain;
63
- /** Checks whether an abstract value of the column names domain satisfies a column name */
64
- export declare function satisfiesColsNames(set: ColNamesDomain, value: string): boolean;
65
- /** Checks if two abstract values of the positive interval domain are equal. */
66
- export declare function equalInterval(interval1: IntervalDomain, interval2: IntervalDomain): boolean;
67
- /** Checks if two abstract values of the positive interval domain are ordered according to the partial ordering of the positive interval lattice. */
68
- export declare function leqInterval(interval1: IntervalDomain, interval2: IntervalDomain): boolean;
69
- /** Joins two abstract values of the positive interval domain according to the positive interval lattice by creating the least upper bound (LUB). */
70
- export declare function joinInterval(interval1: IntervalDomain, interval2: IntervalDomain): IntervalDomain;
71
- /** Meets two abstract values of the positive interval domain according to the positive interval lattice by creating the greatest lower bound (GLB). */
72
- export declare function meetInterval(interval1: IntervalDomain, interval2: IntervalDomain): IntervalDomain;
73
- /** Adds two abstract values of the positive interval domain, by adding the lower bounds and upper bounds. */
74
- export declare function addInterval(interval1: IntervalDomain, interval2: IntervalDomain): IntervalDomain;
75
- /** Subtracts an abstract value from another abstract values of the positive interval domain, by subtracting the lower bounds and upper bounds. */
76
- export declare function subtractInterval(interval1: IntervalDomain, interval2: IntervalDomain): IntervalDomain;
77
- /** Creates the minium of two abstract values of the positive interval domain, by creating the minimum of the lower bounds and upper bounds. */
78
- export declare function minInterval(interval1: IntervalDomain, interval2: IntervalDomain): IntervalDomain;
79
- /** Creates the maximum of two abstract values of the positive interval domain, by creating the maximum of the lower bounds and upper bounds. */
80
- export declare function maxInterval(interval1: IntervalDomain, interval2: IntervalDomain): IntervalDomain;
81
- /** Extrends the lower bound of an abstract value of the positive interval domain to 0. */
82
- export declare function extendIntervalToZero(interval: IntervalDomain): IntervalDomain;
83
- /** Extrends the upper bound of an abstract value of the positive interval domain to infinity. */
84
- export declare function extendIntervalToInfinity(interval: IntervalDomain): IntervalDomain;
85
- /** Widens two abstract values of the positive interval domain via naive widening to soundly over-approximate the join in (possibly infinite) fixpoint iterations. */
86
- export declare function wideningInterval(interval1: IntervalDomain, interval2: IntervalDomain): IntervalDomain;
87
- /** Checks whether an abstract value of the positive interval domain satisfies a numeric value. */
88
- export declare function satisfiesInterval(interval: IntervalDomain, value: number): boolean;
89
- /** Checks whether a numeric value satisfies the less-than relation with an abstract value of the positive interval domain. */
90
- export declare function satisfiesLeqInterval(interval: IntervalDomain, value: number): boolean;
91
- /** Checks if two abstract values of the data frame shape domain are equal. */
92
- export declare function equalDataFrameDomain(value1: DataFrameDomain, value2: DataFrameDomain): boolean;
93
- /** Joins multiple abstract values of the data frame shape domain by creating the least upper bound (LUB). */
94
- export declare function joinDataFrames(...values: DataFrameDomain[]): DataFrameDomain;
95
- /** Meets multiple abstract values of the data frame shape domain by creating the greatest lower bound (GLB). */
96
- export declare function meetDataFrames(...values: DataFrameDomain[]): DataFrameDomain;
97
- /** Widens two abstract values of the data frame shape domain by widening the column names and number of columns and rows. */
98
- export declare function wideningDataFrames(value1: DataFrameDomain, value2: DataFrameDomain): DataFrameDomain;
99
- /** Checks if two abstract states of the data frame shape state domain are equal. */
100
- export declare function equalDataFrameState(state1: DataFrameStateDomain, state2: DataFrameStateDomain): boolean;
101
- /** Joins multiple abstract states of the data frame shape state domain by joining each data frame shape of the states. */
102
- export declare function joinDataFrameStates(...states: DataFrameStateDomain[]): DataFrameStateDomain;
103
- /** Meets multiple abstract states of the data frame shape state domain by meeting each data frame shape of the states. */
104
- export declare function meetDataFrameStates(...states: DataFrameStateDomain[]): DataFrameStateDomain;
105
- /** Widens two abstract states of the data frame shape state domain by widening each data frame shape of the states. */
106
- export declare function wideningDataFrameStates(state1: DataFrameStateDomain, state2: DataFrameStateDomain): DataFrameStateDomain;
107
- export {};
@@ -1,315 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DataFrameTop = exports.DataFrameBottom = exports.ColNamesTop = exports.ColNamesBottom = exports.IntervalTop = exports.IntervalBottom = void 0;
4
- exports.equalColNames = equalColNames;
5
- exports.leqColNames = leqColNames;
6
- exports.joinColNames = joinColNames;
7
- exports.meetColNames = meetColNames;
8
- exports.subtractColNames = subtractColNames;
9
- exports.wideningColNames = wideningColNames;
10
- exports.satisfiesColsNames = satisfiesColsNames;
11
- exports.equalInterval = equalInterval;
12
- exports.leqInterval = leqInterval;
13
- exports.joinInterval = joinInterval;
14
- exports.meetInterval = meetInterval;
15
- exports.addInterval = addInterval;
16
- exports.subtractInterval = subtractInterval;
17
- exports.minInterval = minInterval;
18
- exports.maxInterval = maxInterval;
19
- exports.extendIntervalToZero = extendIntervalToZero;
20
- exports.extendIntervalToInfinity = extendIntervalToInfinity;
21
- exports.wideningInterval = wideningInterval;
22
- exports.satisfiesInterval = satisfiesInterval;
23
- exports.satisfiesLeqInterval = satisfiesLeqInterval;
24
- exports.equalDataFrameDomain = equalDataFrameDomain;
25
- exports.joinDataFrames = joinDataFrames;
26
- exports.meetDataFrames = meetDataFrames;
27
- exports.wideningDataFrames = wideningDataFrames;
28
- exports.equalDataFrameState = equalDataFrameState;
29
- exports.joinDataFrameStates = joinDataFrameStates;
30
- exports.meetDataFrameStates = meetDataFrameStates;
31
- exports.wideningDataFrameStates = wideningDataFrameStates;
32
- const config_1 = require("../../config");
33
- const set_1 = require("../../util/collections/set");
34
- const MaxColNames = config_1.defaultConfigOptions.abstractInterpretation.dataFrame.maxColNames;
35
- /** The bottom element (least element) of the positive interval domain representing no possible values, explicitly given as "bottom". */
36
- exports.IntervalBottom = 'bottom';
37
- /** The top element (greatest element) of the positive interval domain representing all possible values, defined as the interval from 0 to infinity. */
38
- exports.IntervalTop = [0, Infinity];
39
- /** The bottom element (least element) of the column names domain representing no possible column name, defined as the empty list []. */
40
- exports.ColNamesBottom = [];
41
- /** The top element (greatest element) of the column names domain representing all possible values, explicitly given as "top". */
42
- exports.ColNamesTop = 'top';
43
- /**
44
- * The bottom element (least element) of the data frame shape domain representing no possible value, mapping the columns names to {@link ColNamesBottom}
45
- * and the number of columns and rows to {@link IntervalBottom}.
46
- */
47
- exports.DataFrameBottom = {
48
- colnames: exports.ColNamesBottom,
49
- cols: exports.IntervalBottom,
50
- rows: exports.IntervalBottom
51
- };
52
- /**
53
- * The top element (greatest element) of the data frame shape domain representing all possible value, mapping the columns names to {@link ColNamesTop}
54
- * and the number of columns and rows to {@link IntervalTop}.
55
- */
56
- exports.DataFrameTop = {
57
- colnames: exports.ColNamesTop,
58
- cols: exports.IntervalTop,
59
- rows: exports.IntervalTop
60
- };
61
- /** Checks if two abstract values of the column names domain are equal. */
62
- function equalColNames(set1, set2) {
63
- return set1 === set2 || (set1 !== exports.ColNamesTop && set2 !== exports.ColNamesTop && (0, set_1.setEquals)(new Set(set1), new Set(set2)));
64
- }
65
- /** Checks if two abstract values of the column names domain are ordered according to the partial ordering of the column names lattice. */
66
- function leqColNames(set1, set2) {
67
- return set2 === exports.ColNamesTop || (set1 !== exports.ColNamesTop && new Set(set1).isSubsetOf(new Set(set2)));
68
- }
69
- /** Joins two abstract values of the columns names domain according to the column names lattice by creating the least upper bound (LUB). */
70
- function joinColNames(set1, set2, maxColNames = MaxColNames) {
71
- if (set1 === exports.ColNamesTop || set2 === exports.ColNamesTop) {
72
- return exports.ColNamesTop;
73
- }
74
- const join = Array.from(new Set(set1).union(new Set(set2)));
75
- return join.length > maxColNames ? exports.ColNamesTop : join;
76
- }
77
- /** Meets two abstract values of the columns names domain according to the column names lattice by creating the greatest lower bound (GLB). */
78
- function meetColNames(set1, set2) {
79
- if (set1 === exports.ColNamesTop) {
80
- return set2;
81
- }
82
- else if (set2 === exports.ColNamesTop) {
83
- return set1;
84
- }
85
- else {
86
- return Array.from(new Set(set1).intersection(new Set(set2)));
87
- }
88
- }
89
- /** Subtracts an abstract value from another abstract value of the column names domain by performing a set minus. */
90
- function subtractColNames(set1, set2) {
91
- if (set1 === exports.ColNamesTop) {
92
- return exports.ColNamesTop;
93
- }
94
- else if (set2 === exports.ColNamesTop) {
95
- return set1;
96
- }
97
- else {
98
- return Array.from(new Set(set1).difference(new Set(set2)));
99
- }
100
- }
101
- /**
102
- * Widens two abstract values of the column names domain via naive widening to soundly over-approximate the join in (possibly infinite) fixpoint iterations.
103
- *
104
- * This is technically not necessary, as the join is limited by the maximum number of inferred column names.
105
- * However, this speeds up the iteration in larger loops significantly, as we are over-approximating the column names much earlier.
106
- */
107
- function wideningColNames(set1, set2) {
108
- return leqColNames(set2, set1) ? set1 : exports.ColNamesTop;
109
- }
110
- /** Checks whether an abstract value of the column names domain satisfies a column name */
111
- function satisfiesColsNames(set, value) {
112
- return set === exports.ColNamesTop || set.includes(value);
113
- }
114
- /** Checks if two abstract values of the positive interval domain are equal. */
115
- function equalInterval(interval1, interval2) {
116
- return interval1 === interval2 || (interval1 !== exports.IntervalBottom && interval2 !== exports.IntervalBottom && interval1[0] === interval2[0] && interval1[1] === interval2[1]);
117
- }
118
- /** Checks if two abstract values of the positive interval domain are ordered according to the partial ordering of the positive interval lattice. */
119
- function leqInterval(interval1, interval2) {
120
- return interval1 === exports.IntervalBottom || (interval2 !== exports.IntervalBottom && interval2[0] <= interval1[0] && interval1[1] <= interval2[1]);
121
- }
122
- /** Joins two abstract values of the positive interval domain according to the positive interval lattice by creating the least upper bound (LUB). */
123
- function joinInterval(interval1, interval2) {
124
- if (interval1 === exports.IntervalBottom) {
125
- return interval2;
126
- }
127
- else if (interval2 === exports.IntervalBottom) {
128
- return interval1;
129
- }
130
- else {
131
- return [Math.min(interval1[0], interval2[0]), Math.max(interval1[1], interval2[1])];
132
- }
133
- }
134
- /** Meets two abstract values of the positive interval domain according to the positive interval lattice by creating the greatest lower bound (GLB). */
135
- function meetInterval(interval1, interval2) {
136
- if (interval1 === exports.IntervalBottom || interval2 === exports.IntervalBottom) {
137
- return exports.IntervalBottom;
138
- }
139
- else if (Math.max(interval1[0], interval2[0]) > Math.min(interval1[1], interval2[1])) {
140
- return exports.IntervalBottom;
141
- }
142
- else {
143
- return [Math.max(interval1[0], interval2[0]), Math.min(interval1[1], interval2[1])];
144
- }
145
- }
146
- /** Adds two abstract values of the positive interval domain, by adding the lower bounds and upper bounds. */
147
- function addInterval(interval1, interval2) {
148
- if (interval1 === exports.IntervalBottom || interval2 === exports.IntervalBottom) {
149
- return exports.IntervalBottom;
150
- }
151
- else {
152
- return [interval1[0] + interval2[0], interval1[1] + interval2[1]];
153
- }
154
- }
155
- /** Subtracts an abstract value from another abstract values of the positive interval domain, by subtracting the lower bounds and upper bounds. */
156
- function subtractInterval(interval1, interval2) {
157
- if (interval1 === exports.IntervalBottom || interval2 === exports.IntervalBottom) {
158
- return exports.IntervalBottom;
159
- }
160
- else {
161
- return [Math.max(interval1[0] - interval2[0], 0), Math.max(interval1[1] - interval2[1], 0)];
162
- }
163
- }
164
- /** Creates the minium of two abstract values of the positive interval domain, by creating the minimum of the lower bounds and upper bounds. */
165
- function minInterval(interval1, interval2) {
166
- if (interval1 === exports.IntervalBottom || interval2 === exports.IntervalBottom) {
167
- return exports.IntervalBottom;
168
- }
169
- else {
170
- return [Math.min(interval1[0], interval2[0]), Math.min(interval1[1], interval2[1])];
171
- }
172
- }
173
- /** Creates the maximum of two abstract values of the positive interval domain, by creating the maximum of the lower bounds and upper bounds. */
174
- function maxInterval(interval1, interval2) {
175
- if (interval1 === exports.IntervalBottom || interval2 === exports.IntervalBottom) {
176
- return exports.IntervalBottom;
177
- }
178
- else {
179
- return [Math.max(interval1[0], interval2[0]), Math.max(interval1[1], interval2[1])];
180
- }
181
- }
182
- /** Extrends the lower bound of an abstract value of the positive interval domain to 0. */
183
- function extendIntervalToZero(interval) {
184
- if (interval === exports.IntervalBottom) {
185
- return exports.IntervalBottom;
186
- }
187
- else {
188
- return [0, interval[1]];
189
- }
190
- }
191
- /** Extrends the upper bound of an abstract value of the positive interval domain to infinity. */
192
- function extendIntervalToInfinity(interval) {
193
- if (interval === exports.IntervalBottom) {
194
- return exports.IntervalBottom;
195
- }
196
- else {
197
- return [interval[0], Infinity];
198
- }
199
- }
200
- /** Widens two abstract values of the positive interval domain via naive widening to soundly over-approximate the join in (possibly infinite) fixpoint iterations. */
201
- function wideningInterval(interval1, interval2) {
202
- if (interval1 === exports.IntervalBottom) {
203
- return interval2;
204
- }
205
- else if (interval2 === exports.IntervalBottom) {
206
- return interval1;
207
- }
208
- else {
209
- return [interval1[0] <= interval2[0] ? interval1[0] : 0, interval1[1] >= interval2[1] ? interval1[1] : Infinity];
210
- }
211
- }
212
- /** Checks whether an abstract value of the positive interval domain satisfies a numeric value. */
213
- function satisfiesInterval(interval, value) {
214
- return interval !== exports.IntervalBottom && interval[0] <= value && value <= interval[1];
215
- }
216
- /** Checks whether a numeric value satisfies the less-than relation with an abstract value of the positive interval domain. */
217
- function satisfiesLeqInterval(interval, value) {
218
- return interval !== exports.IntervalBottom && value <= interval[1];
219
- }
220
- /** Checks if two abstract values of the data frame shape domain are equal. */
221
- function equalDataFrameDomain(value1, value2) {
222
- return value1 === value2 || (equalColNames(value1.colnames, value2.colnames) && equalInterval(value1.cols, value2.cols) && equalInterval(value1.rows, value2.rows));
223
- }
224
- /** Joins multiple abstract values of the data frame shape domain by creating the least upper bound (LUB). */
225
- function joinDataFrames(...values) {
226
- let result = values[0] ?? exports.DataFrameTop;
227
- for (let i = 1; i < values.length; i++) {
228
- result = {
229
- colnames: joinColNames(result.colnames, values[i].colnames),
230
- cols: joinInterval(result.cols, values[i].cols),
231
- rows: joinInterval(result.rows, values[i].rows)
232
- };
233
- }
234
- return result;
235
- }
236
- /** Meets multiple abstract values of the data frame shape domain by creating the greatest lower bound (GLB). */
237
- function meetDataFrames(...values) {
238
- let result = values[0] ?? exports.DataFrameTop;
239
- for (let i = 1; i < values.length; i++) {
240
- result = {
241
- colnames: meetColNames(result.colnames, values[i].colnames),
242
- cols: meetInterval(result.cols, values[i].cols),
243
- rows: meetInterval(result.rows, values[i].rows)
244
- };
245
- }
246
- return result;
247
- }
248
- /** Widens two abstract values of the data frame shape domain by widening the column names and number of columns and rows. */
249
- function wideningDataFrames(value1, value2) {
250
- return {
251
- colnames: wideningColNames(value1.colnames, value2.colnames),
252
- cols: wideningInterval(value1.cols, value2.cols),
253
- rows: wideningInterval(value1.rows, value2.rows)
254
- };
255
- }
256
- /** Checks if two abstract states of the data frame shape state domain are equal. */
257
- function equalDataFrameState(state1, state2) {
258
- if (state1 === state2) {
259
- return true;
260
- }
261
- else if (state1.size !== state2.size) {
262
- return false;
263
- }
264
- for (const [nodeId, value] of state1) {
265
- const other = state2.get(nodeId);
266
- if (other === undefined || !equalDataFrameDomain(value, other)) {
267
- return false;
268
- }
269
- }
270
- return true;
271
- }
272
- /** Joins multiple abstract states of the data frame shape state domain by joining each data frame shape of the states. */
273
- function joinDataFrameStates(...states) {
274
- const result = new Map(states[0]);
275
- for (let i = 1; i < states.length; i++) {
276
- for (const [nodeId, value] of states[i]) {
277
- if (result.has(nodeId)) {
278
- result.set(nodeId, joinDataFrames(result.get(nodeId) ?? exports.DataFrameTop, value));
279
- }
280
- else {
281
- result.set(nodeId, value);
282
- }
283
- }
284
- }
285
- return result;
286
- }
287
- /** Meets multiple abstract states of the data frame shape state domain by meeting each data frame shape of the states. */
288
- function meetDataFrameStates(...states) {
289
- const result = new Map(states[0]);
290
- for (let i = 1; i < states.length; i++) {
291
- for (const [nodeId, value] of states[i]) {
292
- if (result.has(nodeId)) {
293
- result.set(nodeId, meetDataFrames(result.get(nodeId) ?? exports.DataFrameTop, value));
294
- }
295
- else {
296
- result.set(nodeId, value);
297
- }
298
- }
299
- }
300
- return result;
301
- }
302
- /** Widens two abstract states of the data frame shape state domain by widening each data frame shape of the states. */
303
- function wideningDataFrameStates(state1, state2) {
304
- const result = new Map(state1);
305
- for (const [nodeId, value] of state2) {
306
- if (result.has(nodeId)) {
307
- result.set(nodeId, wideningDataFrames(result.get(nodeId) ?? exports.DataFrameTop, value));
308
- }
309
- else {
310
- result.set(nodeId, value);
311
- }
312
- }
313
- return result;
314
- }
315
- //# sourceMappingURL=domain.js.map
@@ -1,43 +0,0 @@
1
- import { type AbstractDomain } from './abstract-domain';
2
- import { Bottom, Top } from './lattice';
3
- /** The type of the actual values of the set bounded set domain as set */
4
- export type SetBoundedSetValue<T> = ReadonlySet<T>;
5
- /** The type of the Top element of the set bounded set domain as {@link Top} symbol */
6
- export type SetBoundedSetTop = typeof Top;
7
- /** The type of the Bottom element of the set bounded set domain as {@link Bottom} */
8
- export type SetBoundedSetBottom = typeof Bottom;
9
- /** The type of the abstract values of the set bounded set domain that are Top, Bottom, or actual values */
10
- export type SetBoundedSetLift<T> = SetBoundedSetValue<T> | SetBoundedSetTop | SetBoundedSetBottom;
11
- /**
12
- * The set bounded set abstract domain as sets capturing possible values of the concrete set bounded by a `limit` for the maximum number of inferred values.
13
- * The Bottom element is defined as the{@link Bottom} and the Top element is defined as {@link Top} symbol.
14
- * @template T - Type of the values in the abstract domain
15
- * @template Value - Type of the constraint in the abstract domain (Top, Bottom, or an actual value)
16
- */
17
- export declare class SetBoundedSetDomain<T, Value extends SetBoundedSetLift<T> = SetBoundedSetLift<T>> implements AbstractDomain<ReadonlySet<T>, SetBoundedSetValue<T>, SetBoundedSetTop, SetBoundedSetBottom, Value> {
18
- private readonly limit;
19
- private _value;
20
- constructor(value: Value, limit?: number);
21
- get value(): Value;
22
- static top<T>(limit?: number): SetBoundedSetDomain<T, SetBoundedSetTop>;
23
- static bottom<T>(limit?: number): SetBoundedSetDomain<T, SetBoundedSetBottom>;
24
- static abstract<T>(concrete: ReadonlySet<ReadonlySet<T>> | typeof Top, limit?: number): SetBoundedSetDomain<T>;
25
- top(): SetBoundedSetDomain<T, SetBoundedSetTop>;
26
- bottom(): SetBoundedSetDomain<T, SetBoundedSetBottom>;
27
- equals(other: SetBoundedSetDomain<T>): boolean;
28
- leq(other: SetBoundedSetDomain<T>): boolean;
29
- join(...values: SetBoundedSetDomain<T>[]): SetBoundedSetDomain<T>;
30
- meet(...values: SetBoundedSetDomain<T>[]): SetBoundedSetDomain<T>;
31
- /**
32
- * Subtracts another abstract value from the current abstract value by removing all elements of the other abstract value from the current abstract value.
33
- */
34
- subtract(other: SetBoundedSetDomain<T>): SetBoundedSetDomain<T>;
35
- widen(other: SetBoundedSetDomain<T>): SetBoundedSetDomain<T>;
36
- narrow(other: SetBoundedSetDomain<T>): SetBoundedSetDomain<T>;
37
- concretize(limit?: number): ReadonlySet<ReadonlySet<T>> | typeof Top;
38
- abstract(concrete: ReadonlySet<ReadonlySet<T>> | typeof Top): SetBoundedSetDomain<T>;
39
- toString(): string;
40
- isTop(): this is SetBoundedSetDomain<T, SetBoundedSetTop>;
41
- isBottom(): this is SetBoundedSetDomain<T, SetBoundedSetBottom>;
42
- isValue(): this is SetBoundedSetDomain<T, SetBoundedSetValue<T>>;
43
- }
@@ -1,164 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SetBoundedSetDomain = void 0;
4
- const set_1 = require("../../util/collections/set");
5
- const abstract_domain_1 = require("./abstract-domain");
6
- const lattice_1 = require("./lattice");
7
- /**
8
- * The set bounded set abstract domain as sets capturing possible values of the concrete set bounded by a `limit` for the maximum number of inferred values.
9
- * The Bottom element is defined as the{@link Bottom} and the Top element is defined as {@link Top} symbol.
10
- * @template T - Type of the values in the abstract domain
11
- * @template Value - Type of the constraint in the abstract domain (Top, Bottom, or an actual value)
12
- */
13
- class SetBoundedSetDomain {
14
- limit;
15
- _value;
16
- constructor(value, limit = abstract_domain_1.DEFAULT_INFERENCE_LIMIT) {
17
- if (value !== lattice_1.Top && value !== lattice_1.Bottom) {
18
- this._value = (value.size > limit ? lattice_1.Top : new Set(value));
19
- }
20
- else {
21
- this._value = value;
22
- }
23
- this.limit = limit;
24
- }
25
- get value() {
26
- return this._value;
27
- }
28
- static top(limit) {
29
- return new SetBoundedSetDomain(lattice_1.Top, limit);
30
- }
31
- static bottom(limit) {
32
- return new SetBoundedSetDomain(lattice_1.Bottom, limit);
33
- }
34
- static abstract(concrete, limit) {
35
- if (concrete === lattice_1.Top) {
36
- return SetBoundedSetDomain.top(limit);
37
- }
38
- else if (concrete.size === 0) {
39
- return SetBoundedSetDomain.bottom(limit);
40
- }
41
- return new SetBoundedSetDomain(concrete.values().reduce((result, set) => result.union(set)), limit);
42
- }
43
- top() {
44
- return SetBoundedSetDomain.top(this.limit);
45
- }
46
- bottom() {
47
- return SetBoundedSetDomain.bottom(this.limit);
48
- }
49
- equals(other) {
50
- return this.value === other.value || (this.isValue() && other.isValue() && (0, set_1.setEquals)(this.value, other.value));
51
- }
52
- leq(other) {
53
- return this.value === lattice_1.Bottom || other.value === lattice_1.Top || (this.isValue() && other.isValue() && this.value.isSubsetOf(other.value));
54
- }
55
- join(...values) {
56
- const result = new SetBoundedSetDomain(this.value, this.limit);
57
- for (const other of values) {
58
- if (result.value === lattice_1.Top || other.value === lattice_1.Top) {
59
- result._value = lattice_1.Top;
60
- }
61
- else if (result.value === lattice_1.Bottom) {
62
- result._value = other.value;
63
- }
64
- else if (other.value === lattice_1.Bottom) {
65
- result._value = result.value;
66
- }
67
- else {
68
- const join = result.value.union(other.value);
69
- result._value = join.size > this.limit ? lattice_1.Top : join;
70
- }
71
- }
72
- return result;
73
- }
74
- meet(...values) {
75
- const result = new SetBoundedSetDomain(this.value, this.limit);
76
- for (const other of values) {
77
- if (result.value === lattice_1.Bottom || other.value === lattice_1.Bottom) {
78
- result._value = lattice_1.Bottom;
79
- }
80
- else if (result.value === lattice_1.Top) {
81
- result._value = other.value;
82
- }
83
- else if (other.value === lattice_1.Top) {
84
- result._value = result.value;
85
- }
86
- else {
87
- result._value = result.value.intersection(other.value);
88
- }
89
- }
90
- return result;
91
- }
92
- /**
93
- * Subtracts another abstract value from the current abstract value by removing all elements of the other abstract value from the current abstract value.
94
- */
95
- subtract(other) {
96
- if (this.value === lattice_1.Top) {
97
- return this.top();
98
- }
99
- else if (this.value === lattice_1.Bottom) {
100
- return this.bottom();
101
- }
102
- else if (other.value === lattice_1.Top || other.value === lattice_1.Bottom) {
103
- return new SetBoundedSetDomain(this.value, this.limit);
104
- }
105
- else {
106
- return new SetBoundedSetDomain(this.value.difference(other.value), this.limit);
107
- }
108
- }
109
- widen(other) {
110
- if (this.value === lattice_1.Bottom) {
111
- return new SetBoundedSetDomain(other.value, this.limit);
112
- }
113
- else if (other.value === lattice_1.Bottom) {
114
- return new SetBoundedSetDomain(this.value, this.limit);
115
- }
116
- return other.leq(this) ? new SetBoundedSetDomain(this.value, this.limit) : this.top();
117
- }
118
- narrow(other) {
119
- if (this.value === lattice_1.Bottom || other.value === lattice_1.Bottom) {
120
- return this.bottom();
121
- }
122
- return this.isTop() ? other : this;
123
- }
124
- concretize(limit = abstract_domain_1.DEFAULT_INFERENCE_LIMIT) {
125
- if (this.value === lattice_1.Bottom) {
126
- return new Set();
127
- }
128
- else if (this.value === lattice_1.Top || 2 ** (this.value.size) > limit) {
129
- return lattice_1.Top;
130
- }
131
- const subsets = [new Set()];
132
- for (const element of this.value.values()) {
133
- const newSubsets = subsets.map(subset => new Set([...subset, element]));
134
- for (const subset of newSubsets) {
135
- subsets.push(subset);
136
- }
137
- }
138
- return new Set(subsets);
139
- }
140
- abstract(concrete) {
141
- return SetBoundedSetDomain.abstract(concrete, this.limit);
142
- }
143
- toString() {
144
- if (this.value === lattice_1.Top) {
145
- return '⊤';
146
- }
147
- else if (this.value === lattice_1.Bottom) {
148
- return '⊥';
149
- }
150
- const string = this.value.values().map(abstract_domain_1.domainElementToString).toArray().join(', ');
151
- return `{${string}}`;
152
- }
153
- isTop() {
154
- return this.value === lattice_1.Top;
155
- }
156
- isBottom() {
157
- return this.value == lattice_1.Bottom;
158
- }
159
- isValue() {
160
- return this.value !== lattice_1.Top && this.value !== lattice_1.Bottom;
161
- }
162
- }
163
- exports.SetBoundedSetDomain = SetBoundedSetDomain;
164
- //# sourceMappingURL=set-bounded-set-domain.js.map
@@ -1,15 +0,0 @@
1
- import type { ReplCodeCommand } from './repl-main';
2
- import type { SingleSlicingCriterion } from '../../../slicing/criterion/parse';
3
- import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
4
- import type { DataflowGraph } from '../../../dataflow/graph/graph';
5
- import type { AstIdMap } from '../../../r-bridge/lang-4.x/ast/model/processing/decorate';
6
- /**
7
- * Get the lineage of a node in the dataflow graph
8
- *
9
- * @param criterion - The criterion to get the lineage of
10
- * @param graph - The dataflow graph to search in
11
- * @param idMap - The ID map to use for resolving the criterion (will default to that shipped with the dfgraph)
12
- * @returns The lineage of the node represented as a set of node ids
13
- */
14
- export declare function getLineage(criterion: SingleSlicingCriterion, graph: DataflowGraph, idMap?: AstIdMap): Set<NodeId>;
15
- export declare const lineageCommand: ReplCodeCommand;