@eagleoutice/flowr 2.6.1 → 2.6.3

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 (808) hide show
  1. package/README.md +142 -39
  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 +17 -12
  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 +9 -10
  14. package/abstract-interpretation/data-frame/mappers/function-mapper.js +21 -18
  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 +179 -162
  20. package/abstract-interpretation/data-frame/shape-inference.d.ts +4 -7
  21. package/abstract-interpretation/data-frame/shape-inference.js +10 -12
  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 +2 -8
  44. package/abstract-interpretation/normalized-ast-fold.js +0 -5
  45. package/benchmark/slicer.d.ts +4 -7
  46. package/benchmark/slicer.js +27 -31
  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 +13 -1
  58. package/benchmark/summarizer/second-phase/graph.d.ts +5 -0
  59. package/benchmark/summarizer/second-phase/graph.js +5 -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/export-quads-app.js +1 -1
  71. package/cli/flowr-main-options.d.ts +3 -0
  72. package/cli/flowr-main-options.js +3 -0
  73. package/cli/repl/commands/repl-commands.d.ts +13 -0
  74. package/cli/repl/commands/repl-commands.js +13 -2
  75. package/cli/repl/commands/repl-dataflow.js +2 -1
  76. package/cli/repl/commands/repl-execute.d.ts +4 -0
  77. package/cli/repl/commands/repl-execute.js +6 -2
  78. package/cli/repl/commands/repl-main.d.ts +15 -9
  79. package/cli/repl/commands/repl-parse.js +18 -6
  80. package/cli/repl/commands/repl-query.js +16 -5
  81. package/cli/repl/core.d.ts +24 -6
  82. package/cli/repl/core.js +42 -30
  83. package/cli/repl/execute.d.ts +0 -2
  84. package/cli/repl/execute.js +0 -2
  85. package/cli/repl/parser/slice-query-parser.d.ts +14 -0
  86. package/cli/repl/parser/slice-query-parser.js +34 -0
  87. package/cli/repl/print-version.d.ts +6 -0
  88. package/cli/repl/print-version.js +6 -0
  89. package/cli/repl/server/compact.d.ts +8 -0
  90. package/cli/repl/server/compact.js +8 -0
  91. package/cli/repl/server/connection.d.ts +4 -3
  92. package/cli/repl/server/connection.js +5 -32
  93. package/cli/repl/server/messages/all-messages.d.ts +1 -3
  94. package/cli/repl/server/messages/all-messages.js +0 -1
  95. package/cli/repl/server/messages/message-analysis.d.ts +0 -2
  96. package/cli/repl/server/messages/message-query.d.ts +1 -1
  97. package/cli/repl/server/messages/message-repl.d.ts +0 -1
  98. package/cli/repl/server/send.d.ts +6 -0
  99. package/cli/repl/server/send.js +6 -0
  100. package/cli/repl/server/server.d.ts +1 -1
  101. package/cli/repl/server/validate.d.ts +10 -1
  102. package/cli/repl/server/validate.js +9 -0
  103. package/cli/run-script.d.ts +1 -2
  104. package/cli/run-script.js +0 -1
  105. package/cli/script-core/statistics-core.d.ts +3 -0
  106. package/cli/script-core/statistics-core.js +3 -0
  107. package/cli/script-core/statistics-helper-core.d.ts +4 -1
  108. package/cli/script-core/statistics-helper-core.js +5 -1
  109. package/cli/script-core/summarizer-core.d.ts +3 -0
  110. package/cli/script-core/summarizer-core.js +3 -0
  111. package/cli/slicer-app.js +3 -4
  112. package/cli/summarizer-app.d.ts +2 -3
  113. package/cli/summarizer-app.js +2 -3
  114. package/cli/wiki.d.ts +4 -0
  115. package/cli/wiki.js +165 -0
  116. package/config.d.ts +21 -3
  117. package/config.js +21 -0
  118. package/control-flow/basic-cfg-guided-visitor.d.ts +1 -2
  119. package/control-flow/basic-cfg-guided-visitor.js +0 -1
  120. package/control-flow/cfg-dead-code.js +13 -3
  121. package/control-flow/cfg-simplification.d.ts +5 -2
  122. package/control-flow/cfg-simplification.js +3 -0
  123. package/control-flow/cfg-to-basic-blocks.d.ts +1 -1
  124. package/control-flow/control-flow-graph.d.ts +20 -12
  125. package/control-flow/control-flow-graph.js +16 -4
  126. package/control-flow/dfg-cfg-guided-visitor.d.ts +2 -3
  127. package/control-flow/diff-cfg.d.ts +3 -5
  128. package/control-flow/diff-cfg.js +0 -1
  129. package/control-flow/extract-cfg.d.ts +12 -9
  130. package/control-flow/extract-cfg.js +44 -7
  131. package/control-flow/happens-before.d.ts +1 -1
  132. package/control-flow/semantic-cfg-guided-visitor.d.ts +4 -33
  133. package/control-flow/semantic-cfg-guided-visitor.js +0 -28
  134. package/control-flow/simple-visitor.d.ts +1 -3
  135. package/control-flow/simple-visitor.js +2 -4
  136. package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
  137. package/control-flow/useless-loop.d.ts +3 -6
  138. package/control-flow/useless-loop.js +16 -10
  139. package/core/pipeline-executor.d.ts +11 -22
  140. package/core/pipeline-executor.js +13 -25
  141. package/core/print/dataflow-printer.d.ts +19 -0
  142. package/core/print/dataflow-printer.js +19 -0
  143. package/core/print/normalize-printer.d.ts +21 -1
  144. package/core/print/normalize-printer.js +21 -1
  145. package/core/print/parse-printer.d.ts +6 -1
  146. package/core/print/parse-printer.js +5 -0
  147. package/core/print/print.d.ts +0 -1
  148. package/core/print/print.js +0 -1
  149. package/core/print/slice-diff-ansi.d.ts +3 -0
  150. package/core/print/slice-diff-ansi.js +3 -0
  151. package/core/steps/all/core/00-parse.d.ts +2 -2
  152. package/core/steps/all/core/00-parse.js +1 -1
  153. package/core/steps/all/core/01-parse-tree-sitter.d.ts +1 -11
  154. package/core/steps/all/core/10-normalize.d.ts +3 -6
  155. package/core/steps/all/core/10-normalize.js +1 -13
  156. package/core/steps/all/core/11-normalize-tree-sitter.d.ts +5 -5
  157. package/core/steps/all/core/11-normalize-tree-sitter.js +2 -3
  158. package/core/steps/all/core/20-dataflow.d.ts +3 -4
  159. package/core/steps/all/core/20-dataflow.js +2 -2
  160. package/core/steps/all/static-slicing/00-slice.d.ts +1 -2
  161. package/core/steps/all/static-slicing/00-slice.js +1 -1
  162. package/core/steps/all/static-slicing/10-reconstruct.d.ts +8 -0
  163. package/core/steps/all/static-slicing/10-reconstruct.js +4 -1
  164. package/core/steps/pipeline/create-pipeline.d.ts +1 -1
  165. package/core/steps/pipeline/default-pipelines.d.ts +94 -95
  166. package/core/steps/pipeline/default-pipelines.js +8 -12
  167. package/core/steps/pipeline/pipeline.d.ts +1 -8
  168. package/core/steps/pipeline/pipeline.js +1 -3
  169. package/core/steps/pipeline-step.d.ts +0 -1
  170. package/core/steps/pipeline-step.js +0 -1
  171. package/dataflow/cluster.d.ts +3 -0
  172. package/dataflow/cluster.js +3 -0
  173. package/dataflow/environments/append.d.ts +1 -1
  174. package/dataflow/environments/built-in-config.d.ts +1 -5
  175. package/dataflow/environments/built-in-config.js +0 -1
  176. package/dataflow/environments/built-in.d.ts +10 -5
  177. package/dataflow/environments/built-in.js +6 -1
  178. package/dataflow/environments/clone.d.ts +1 -2
  179. package/dataflow/environments/clone.js +12 -2
  180. package/dataflow/environments/default-builtin-config.d.ts +3 -0
  181. package/dataflow/environments/default-builtin-config.js +4 -1
  182. package/dataflow/environments/diff.d.ts +11 -2
  183. package/dataflow/environments/diff.js +11 -2
  184. package/dataflow/environments/environment.d.ts +3 -3
  185. package/dataflow/environments/environment.js +8 -6
  186. package/dataflow/environments/identifier.d.ts +0 -4
  187. package/dataflow/environments/identifier.js +0 -1
  188. package/dataflow/environments/overwrite.d.ts +1 -2
  189. package/dataflow/environments/overwrite.js +3 -16
  190. package/dataflow/environments/resolve-by-name.d.ts +4 -4
  191. package/dataflow/environments/resolve-by-name.js +3 -2
  192. package/dataflow/environments/scoping.d.ts +9 -2
  193. package/dataflow/environments/scoping.js +8 -1
  194. package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
  195. package/dataflow/eval/resolve/alias-tracking.js +11 -14
  196. package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
  197. package/dataflow/eval/resolve/resolve-argument.js +2 -2
  198. package/dataflow/eval/resolve/resolve.d.ts +1 -7
  199. package/dataflow/eval/resolve/resolve.js +0 -5
  200. package/dataflow/eval/values/general.d.ts +1 -3
  201. package/dataflow/eval/values/general.js +0 -1
  202. package/dataflow/eval/values/intervals/interval-constants.d.ts +7 -1
  203. package/dataflow/eval/values/intervals/interval-constants.js +6 -0
  204. package/dataflow/eval/values/logical/logical-constants.d.ts +4 -1
  205. package/dataflow/eval/values/logical/logical-constants.js +3 -0
  206. package/dataflow/eval/values/r-value.d.ts +12 -0
  207. package/dataflow/eval/values/r-value.js +12 -0
  208. package/dataflow/eval/values/scalar/scalar-consatnts.d.ts +7 -1
  209. package/dataflow/eval/values/scalar/scalar-consatnts.js +6 -0
  210. package/dataflow/eval/values/sets/set-constants.d.ts +7 -2
  211. package/dataflow/eval/values/sets/set-constants.js +6 -0
  212. package/dataflow/eval/values/string/string-constants.d.ts +16 -1
  213. package/dataflow/eval/values/string/string-constants.js +15 -0
  214. package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
  215. package/dataflow/extractor.d.ts +3 -4
  216. package/dataflow/extractor.js +25 -22
  217. package/dataflow/graph/dataflowgraph-builder.d.ts +20 -38
  218. package/dataflow/graph/dataflowgraph-builder.js +6 -23
  219. package/dataflow/graph/diff-dataflow-graph.d.ts +16 -6
  220. package/dataflow/graph/diff-dataflow-graph.js +12 -1
  221. package/dataflow/graph/edge.d.ts +9 -0
  222. package/dataflow/graph/edge.js +9 -0
  223. package/dataflow/graph/graph.d.ts +9 -28
  224. package/dataflow/graph/graph.js +4 -28
  225. package/dataflow/graph/invert-dfg.d.ts +3 -0
  226. package/dataflow/graph/invert-dfg.js +3 -0
  227. package/dataflow/graph/quads.d.ts +1 -1
  228. package/dataflow/graph/unknown-replacement.d.ts +8 -0
  229. package/dataflow/graph/unknown-replacement.js +8 -0
  230. package/dataflow/graph/unknown-side-effect.d.ts +8 -0
  231. package/dataflow/graph/unknown-side-effect.js +8 -0
  232. package/dataflow/graph/vertex.d.ts +9 -9
  233. package/dataflow/graph/vertex.js +9 -1
  234. package/dataflow/info.d.ts +16 -10
  235. package/dataflow/info.js +27 -1
  236. package/dataflow/internal/linker.d.ts +25 -9
  237. package/dataflow/internal/linker.js +30 -11
  238. package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
  239. package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -1
  240. package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +1 -1
  241. package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +4 -1
  242. package/dataflow/internal/process/functions/call/built-in/built-in-access.js +6 -4
  243. package/dataflow/internal/process/functions/call/built-in/built-in-apply.d.ts +4 -1
  244. package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +4 -1
  245. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +2 -2
  246. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.js +4 -4
  247. package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +6 -3
  248. package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +9 -6
  249. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +4 -1
  250. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +4 -1
  251. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +5 -2
  252. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +4 -1
  253. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +10 -4
  254. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +7 -1
  255. package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +3 -0
  256. package/dataflow/internal/process/functions/call/built-in/built-in-get.js +3 -0
  257. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +5 -2
  258. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +5 -1
  259. package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +3 -0
  260. package/dataflow/internal/process/functions/call/built-in/built-in-library.js +3 -0
  261. package/dataflow/internal/process/functions/call/built-in/built-in-list.d.ts +1 -1
  262. package/dataflow/internal/process/functions/call/built-in/built-in-list.js +2 -2
  263. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +3 -0
  264. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +6 -3
  265. package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +3 -0
  266. package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +3 -0
  267. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +10 -2
  268. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +8 -0
  269. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +6 -3
  270. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +5 -3
  271. package/dataflow/internal/process/functions/call/built-in/built-in-rm.d.ts +4 -1
  272. package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +3 -0
  273. package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +34 -12
  274. package/dataflow/internal/process/functions/call/built-in/built-in-source.js +90 -68
  275. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +5 -0
  276. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +5 -0
  277. package/dataflow/internal/process/functions/call/built-in/built-in-vector.d.ts +1 -1
  278. package/dataflow/internal/process/functions/call/built-in/built-in-vector.js +2 -2
  279. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +5 -2
  280. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +4 -1
  281. package/dataflow/internal/process/functions/call/common.d.ts +11 -5
  282. package/dataflow/internal/process/functions/call/common.js +9 -3
  283. package/dataflow/internal/process/functions/call/default-call-handling.d.ts +5 -0
  284. package/dataflow/internal/process/functions/call/default-call-handling.js +5 -0
  285. package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
  286. package/dataflow/internal/process/functions/call/known-call-handling.js +10 -3
  287. package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
  288. package/dataflow/internal/process/functions/call/named-call-handling.js +10 -4
  289. package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +4 -1
  290. package/dataflow/internal/process/functions/call/unnamed-call-handling.js +3 -0
  291. package/dataflow/internal/process/functions/process-argument.d.ts +8 -2
  292. package/dataflow/internal/process/functions/process-argument.js +6 -0
  293. package/dataflow/internal/process/functions/process-parameter.d.ts +5 -2
  294. package/dataflow/internal/process/functions/process-parameter.js +7 -4
  295. package/dataflow/internal/process/process-symbol.d.ts +3 -0
  296. package/dataflow/internal/process/process-symbol.js +3 -0
  297. package/dataflow/internal/process/process-uninteresting-leaf.d.ts +3 -0
  298. package/dataflow/internal/process/process-uninteresting-leaf.js +3 -0
  299. package/dataflow/internal/process/process-value.d.ts +3 -0
  300. package/dataflow/internal/process/process-value.js +3 -0
  301. package/dataflow/origin/dfg-get-origin.d.ts +0 -2
  302. package/dataflow/origin/dfg-get-symbol-refs.d.ts +6 -8
  303. package/dataflow/origin/dfg-get-symbol-refs.js +7 -9
  304. package/dataflow/processor.d.ts +6 -12
  305. package/dataflow/processor.js +0 -1
  306. package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -2
  307. package/documentation/data/dfg/doc-data-dfg-util.js +6 -0
  308. package/documentation/data/faq/faqs.d.ts +5 -0
  309. package/documentation/data/faq/faqs.js +87 -0
  310. package/documentation/data/faq/recommended-configs.d.ts +36 -0
  311. package/documentation/data/faq/recommended-configs.js +40 -0
  312. package/documentation/data/faq/wiki-faq-store.d.ts +19 -0
  313. package/documentation/data/faq/wiki-faq-store.js +83 -0
  314. package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
  315. package/documentation/data/server/doc-data-server-messages.js +5 -64
  316. package/documentation/doc-capabilities.d.ts +9 -0
  317. package/documentation/{print-capabilities-markdown.js → doc-capabilities.js} +18 -21
  318. package/documentation/doc-readme.d.ts +9 -0
  319. package/documentation/{print-readme.js → doc-readme.js} +136 -35
  320. package/documentation/doc-util/doc-auto-gen.d.ts +6 -0
  321. package/documentation/doc-util/doc-auto-gen.js +6 -0
  322. package/documentation/doc-util/doc-benchmarks.d.ts +14 -0
  323. package/documentation/doc-util/doc-benchmarks.js +14 -0
  324. package/documentation/doc-util/doc-cfg.d.ts +7 -1
  325. package/documentation/doc-util/doc-cfg.js +14 -8
  326. package/documentation/doc-util/doc-cli-option.d.ts +9 -0
  327. package/documentation/doc-util/doc-cli-option.js +9 -0
  328. package/documentation/doc-util/doc-code.d.ts +24 -0
  329. package/documentation/doc-util/doc-code.js +24 -0
  330. package/documentation/doc-util/doc-dfg.d.ts +12 -6
  331. package/documentation/doc-util/doc-dfg.js +19 -10
  332. package/documentation/doc-util/doc-env.d.ts +3 -0
  333. package/documentation/doc-util/doc-env.js +3 -0
  334. package/documentation/doc-util/doc-escape.d.ts +6 -1
  335. package/documentation/doc-util/doc-escape.js +11 -1
  336. package/documentation/doc-util/doc-files.d.ts +11 -0
  337. package/documentation/doc-util/doc-files.js +15 -4
  338. package/documentation/doc-util/doc-general.d.ts +26 -0
  339. package/documentation/doc-util/doc-general.js +26 -0
  340. package/documentation/doc-util/doc-normalized-ast.d.ts +14 -3
  341. package/documentation/doc-util/doc-normalized-ast.js +16 -7
  342. package/documentation/doc-util/doc-query.d.ts +26 -3
  343. package/documentation/doc-util/doc-query.js +34 -12
  344. package/documentation/doc-util/doc-repl.d.ts +6 -0
  345. package/documentation/doc-util/doc-repl.js +6 -0
  346. package/documentation/doc-util/doc-search.d.ts +3 -18
  347. package/documentation/doc-util/doc-search.js +6 -62
  348. package/documentation/doc-util/doc-server-message.d.ts +18 -6
  349. package/documentation/doc-util/doc-server-message.js +17 -5
  350. package/documentation/doc-util/doc-structure.d.ts +9 -0
  351. package/documentation/doc-util/doc-structure.js +10 -1
  352. package/documentation/doc-util/doc-types.d.ts +90 -11
  353. package/documentation/doc-util/doc-types.js +128 -39
  354. package/documentation/index.d.ts +9 -9
  355. package/documentation/index.js +9 -9
  356. package/documentation/issue-linting-rule.d.ts +9 -0
  357. package/documentation/{print-linter-issue.js → issue-linting-rule.js} +20 -23
  358. package/documentation/wiki-analyzer.d.ts +9 -0
  359. package/documentation/wiki-analyzer.js +412 -0
  360. package/documentation/wiki-cfg.d.ts +9 -0
  361. package/documentation/{print-cfg-wiki.js → wiki-cfg.js} +144 -160
  362. package/documentation/wiki-core.d.ts +14 -0
  363. package/documentation/{print-core-wiki.js → wiki-core.js} +167 -175
  364. package/documentation/wiki-dataflow-graph.d.ts +9 -0
  365. package/documentation/{print-dataflow-graph-wiki.js → wiki-dataflow-graph.js} +145 -175
  366. package/documentation/wiki-engine.d.ts +9 -0
  367. package/documentation/{print-engines-wiki.js → wiki-engine.js} +27 -42
  368. package/documentation/wiki-faq.d.ts +8 -0
  369. package/documentation/wiki-faq.js +22 -0
  370. package/documentation/wiki-interface.d.ts +9 -0
  371. package/documentation/{print-interface-wiki.js → wiki-interface.js} +60 -57
  372. package/documentation/wiki-linter.d.ts +9 -0
  373. package/documentation/{print-linter-wiki.js → wiki-linter.js} +52 -48
  374. package/documentation/wiki-linting-and-testing.d.ts +9 -0
  375. package/documentation/{print-linting-and-testing-wiki.js → wiki-linting-and-testing.js} +25 -32
  376. package/documentation/wiki-mk/doc-context.d.ts +186 -0
  377. package/documentation/wiki-mk/doc-context.js +84 -0
  378. package/documentation/wiki-mk/doc-maker.d.ts +95 -0
  379. package/documentation/wiki-mk/doc-maker.js +133 -0
  380. package/documentation/wiki-normalized-ast.d.ts +9 -0
  381. package/documentation/{print-normalized-ast-wiki.js → wiki-normalized-ast.js} +64 -47
  382. package/documentation/wiki-onboarding.d.ts +8 -0
  383. package/documentation/{print-onboarding-wiki.js → wiki-onboarding.js} +18 -15
  384. package/documentation/wiki-query.d.ts +9 -0
  385. package/documentation/{print-query-wiki.js → wiki-query.js} +65 -80
  386. package/documentation/wiki-search.d.ts +9 -0
  387. package/documentation/wiki-search.js +61 -0
  388. package/engines.d.ts +1 -1
  389. package/linter/linter-executor.d.ts +6 -3
  390. package/linter/linter-executor.js +6 -2
  391. package/linter/linter-format.d.ts +10 -2
  392. package/linter/linter-format.js +8 -0
  393. package/linter/linter-rules.d.ts +13 -17
  394. package/linter/rules/absolute-path.d.ts +4 -6
  395. package/linter/rules/absolute-path.js +2 -2
  396. package/linter/rules/dataframe-access-validation.d.ts +4 -5
  397. package/linter/rules/dataframe-access-validation.js +21 -19
  398. package/linter/rules/dead-code.d.ts +2 -2
  399. package/linter/rules/deprecated-functions.d.ts +2 -6
  400. package/linter/rules/file-path-validity.d.ts +2 -3
  401. package/linter/rules/file-path-validity.js +4 -4
  402. package/linter/rules/function-finder-util.d.ts +2 -7
  403. package/linter/rules/naming-convention.d.ts +15 -4
  404. package/linter/rules/naming-convention.js +14 -2
  405. package/linter/rules/network-functions.d.ts +2 -2
  406. package/linter/rules/network-functions.js +1 -1
  407. package/linter/rules/seeded-randomness.d.ts +4 -4
  408. package/linter/rules/seeded-randomness.js +33 -13
  409. package/linter/rules/unused-definition.d.ts +3 -4
  410. package/linter/rules/useless-loop.d.ts +3 -4
  411. package/linter/rules/useless-loop.js +2 -2
  412. package/package.json +7 -18
  413. package/project/cache/flowr-analyzer-cache.d.ts +9 -19
  414. package/project/cache/flowr-analyzer-cache.js +17 -44
  415. package/project/cache/flowr-analyzer-controlflow-cache.d.ts +34 -0
  416. package/project/cache/flowr-analyzer-controlflow-cache.js +79 -0
  417. package/project/context/flowr-analyzer-context.d.ts +31 -9
  418. package/project/context/flowr-analyzer-context.js +48 -4
  419. package/project/context/flowr-analyzer-dependencies-context.d.ts +0 -1
  420. package/project/context/flowr-analyzer-files-context.d.ts +63 -15
  421. package/project/context/flowr-analyzer-files-context.js +110 -39
  422. package/project/context/flowr-file.d.ts +32 -11
  423. package/project/context/flowr-file.js +30 -9
  424. package/project/flowr-analyzer-builder.d.ts +23 -31
  425. package/project/flowr-analyzer-builder.js +35 -74
  426. package/project/flowr-analyzer.d.ts +79 -29
  427. package/project/flowr-analyzer.js +59 -15
  428. package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +8 -2
  429. package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.js +13 -5
  430. package/project/plugins/file-plugins/flowr-analyzer-file-plugin.d.ts +3 -3
  431. package/project/plugins/file-plugins/flowr-analyzer-file-plugin.js +11 -5
  432. package/project/plugins/file-plugins/flowr-description-file.d.ts +3 -5
  433. package/project/plugins/file-plugins/flowr-description-file.js +0 -1
  434. package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.d.ts +22 -0
  435. package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.js +33 -0
  436. package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.d.ts +22 -0
  437. package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.js +33 -0
  438. package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.d.ts +22 -0
  439. package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.js +33 -0
  440. package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.d.ts +20 -0
  441. package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.js +42 -0
  442. package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.d.ts +59 -0
  443. package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.js +132 -0
  444. package/project/plugins/file-plugins/notebooks/notebook.d.ts +0 -0
  445. package/project/plugins/file-plugins/notebooks/notebook.js +2 -0
  446. package/project/plugins/flowr-analyzer-plugin-defaults.d.ts +5 -0
  447. package/project/plugins/flowr-analyzer-plugin-defaults.js +23 -0
  448. package/project/plugins/flowr-analyzer-plugin.d.ts +2 -0
  449. package/project/plugins/flowr-analyzer-plugin.js +2 -0
  450. package/project/plugins/loading-order-plugins/flowr-analyzer-loading-order-description-file-plugin.js +1 -1
  451. package/project/plugins/package-version-plugins/flowr-analyzer-package-versions-description-file-plugin.js +1 -1
  452. package/project/plugins/plugin-registry.d.ts +34 -0
  453. package/project/plugins/plugin-registry.js +62 -0
  454. package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
  455. package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.js +7 -1
  456. package/queries/base-query-format.d.ts +2 -2
  457. package/queries/catalog/call-context-query/call-context-query-executor.d.ts +3 -0
  458. package/queries/catalog/call-context-query/call-context-query-executor.js +7 -2
  459. package/queries/catalog/call-context-query/call-context-query-format.d.ts +3 -3
  460. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +16 -4
  461. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +34 -18
  462. package/queries/catalog/cluster-query/cluster-query-executor.d.ts +3 -0
  463. package/queries/catalog/cluster-query/cluster-query-executor.js +3 -0
  464. package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
  465. package/queries/catalog/config-query/config-query-executor.d.ts +3 -0
  466. package/queries/catalog/config-query/config-query-executor.js +3 -0
  467. package/queries/catalog/config-query/config-query-format.d.ts +5 -2
  468. package/queries/catalog/config-query/config-query-format.js +13 -16
  469. package/queries/catalog/control-flow-query/control-flow-query-executor.d.ts +3 -0
  470. package/queries/catalog/control-flow-query/control-flow-query-executor.js +3 -0
  471. package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +3 -3
  472. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.d.ts +3 -0
  473. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +3 -0
  474. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
  475. package/queries/catalog/dataflow-query/dataflow-query-executor.d.ts +3 -0
  476. package/queries/catalog/dataflow-query/dataflow-query-executor.js +3 -0
  477. package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
  478. package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +4 -1
  479. package/queries/catalog/dependencies-query/dependencies-query-executor.js +7 -4
  480. package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +4 -1
  481. package/queries/catalog/dependencies-query/dependencies-query-format.js +5 -2
  482. package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +4 -1
  483. package/queries/catalog/df-shape-query/df-shape-query-executor.js +8 -4
  484. package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +10 -3
  485. package/queries/catalog/df-shape-query/df-shape-query-format.js +25 -5
  486. package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +4 -0
  487. package/queries/catalog/happens-before-query/happens-before-query-executor.js +4 -0
  488. package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
  489. package/queries/catalog/id-map-query/id-map-query-executor.d.ts +3 -0
  490. package/queries/catalog/id-map-query/id-map-query-executor.js +3 -0
  491. package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
  492. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +3 -0
  493. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +3 -0
  494. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +2 -2
  495. package/queries/catalog/linter-query/linter-query-executor.d.ts +4 -0
  496. package/queries/catalog/linter-query/linter-query-executor.js +4 -0
  497. package/queries/catalog/linter-query/linter-query-format.d.ts +12 -3
  498. package/queries/catalog/linter-query/linter-query-format.js +80 -2
  499. package/queries/catalog/location-map-query/location-map-query-executor.d.ts +4 -0
  500. package/queries/catalog/location-map-query/location-map-query-executor.js +7 -2
  501. package/queries/catalog/location-map-query/location-map-query-format.d.ts +7 -1
  502. package/queries/catalog/location-map-query/location-map-query-format.js +12 -0
  503. package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.d.ts +3 -0
  504. package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.js +3 -0
  505. package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
  506. package/queries/catalog/origin-query/origin-query-executor.d.ts +7 -1
  507. package/queries/catalog/origin-query/origin-query-executor.js +6 -0
  508. package/queries/catalog/origin-query/origin-query-format.d.ts +7 -1
  509. package/queries/catalog/origin-query/origin-query-format.js +17 -1
  510. package/queries/catalog/project-query/project-query-executor.d.ts +3 -0
  511. package/queries/catalog/project-query/project-query-executor.js +6 -1
  512. package/queries/catalog/project-query/project-query-format.d.ts +1 -1
  513. package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +6 -0
  514. package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +6 -0
  515. package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +7 -1
  516. package/queries/catalog/resolve-value-query/resolve-value-query-format.js +19 -1
  517. package/queries/catalog/search-query/search-query-executor.d.ts +3 -0
  518. package/queries/catalog/search-query/search-query-executor.js +3 -0
  519. package/queries/catalog/search-query/search-query-format.d.ts +1 -1
  520. package/queries/catalog/static-slice-query/static-slice-query-executor.d.ts +9 -0
  521. package/queries/catalog/static-slice-query/static-slice-query-executor.js +10 -1
  522. package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +7 -1
  523. package/queries/catalog/static-slice-query/static-slice-query-format.js +30 -1
  524. package/queries/query-print.d.ts +20 -4
  525. package/queries/query-print.js +18 -2
  526. package/queries/query.d.ts +93 -55
  527. package/queries/query.js +55 -23
  528. package/queries/virtual-query/virtual-queries.d.ts +1 -2
  529. package/r-bridge/data/get.d.ts +6 -0
  530. package/r-bridge/data/get.js +6 -0
  531. package/r-bridge/lang-4.x/ast/model/collect.d.ts +2 -2
  532. package/r-bridge/lang-4.x/ast/model/collect.js +4 -1
  533. package/r-bridge/lang-4.x/ast/model/model.d.ts +8 -11
  534. package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +0 -2
  535. package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +3 -0
  536. package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
  537. package/r-bridge/lang-4.x/ast/model/nodes/r-project.d.ts +29 -0
  538. package/r-bridge/lang-4.x/ast/model/nodes/r-project.js +15 -0
  539. package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +3 -0
  540. package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
  541. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +3 -0
  542. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +3 -0
  543. package/r-bridge/lang-4.x/ast/model/operators.d.ts +0 -1
  544. package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +11 -14
  545. package/r-bridge/lang-4.x/ast/model/processing/decorate.js +30 -17
  546. package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +1 -1
  547. package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +0 -1
  548. package/r-bridge/lang-4.x/ast/model/processing/node-id.js +0 -1
  549. package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +0 -1
  550. package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +1 -2
  551. package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +0 -1
  552. package/r-bridge/lang-4.x/ast/model/processing/visitor.js +0 -1
  553. package/r-bridge/lang-4.x/ast/model/type.d.ts +6 -5
  554. package/r-bridge/lang-4.x/ast/model/type.js +6 -5
  555. package/r-bridge/lang-4.x/ast/model/versions.d.ts +0 -1
  556. package/r-bridge/lang-4.x/ast/model/versions.js +0 -1
  557. package/r-bridge/lang-4.x/ast/parser/json/format.js +1 -1
  558. package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +12 -12
  559. package/r-bridge/lang-4.x/ast/parser/json/parser.js +11 -11
  560. package/r-bridge/lang-4.x/ast/parser/main/internal/control/normalize-if-then.d.ts +1 -1
  561. package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.d.ts +0 -1
  562. package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.js +0 -1
  563. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.d.ts +0 -2
  564. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.js +0 -2
  565. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.d.ts +1 -3
  566. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.js +0 -2
  567. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.d.ts +0 -2
  568. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.js +0 -2
  569. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.d.ts +0 -2
  570. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.js +0 -2
  571. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.d.ts +3 -0
  572. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.js +3 -0
  573. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.d.ts +4 -1
  574. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.js +3 -0
  575. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.d.ts +3 -0
  576. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.js +3 -0
  577. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.d.ts +0 -2
  578. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.js +0 -2
  579. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.d.ts +4 -1
  580. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.js +3 -0
  581. package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.d.ts +0 -2
  582. package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.js +0 -2
  583. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-binary.d.ts +1 -1
  584. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.d.ts +0 -2
  585. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.js +0 -2
  586. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.d.ts +0 -1
  587. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.js +0 -1
  588. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.d.ts +0 -1
  589. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.js +0 -1
  590. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.d.ts +3 -0
  591. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.js +3 -0
  592. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.d.ts +9 -0
  593. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.js +9 -0
  594. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-root.d.ts +4 -3
  595. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-root.js +20 -11
  596. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.d.ts +1 -3
  597. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.js +0 -2
  598. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.d.ts +1 -2
  599. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.js +0 -1
  600. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.d.ts +0 -1
  601. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.js +0 -1
  602. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.d.ts +0 -2
  603. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.js +0 -2
  604. package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.d.ts +14 -5
  605. package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.js +13 -6
  606. package/r-bridge/lang-4.x/convert-values.d.ts +12 -1
  607. package/r-bridge/lang-4.x/convert-values.js +12 -1
  608. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +7 -2
  609. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +18 -0
  610. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +15 -2
  611. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +62 -24
  612. package/r-bridge/parser.d.ts +43 -12
  613. package/r-bridge/parser.js +27 -13
  614. package/r-bridge/retriever.d.ts +25 -16
  615. package/r-bridge/retriever.js +29 -5
  616. package/r-bridge/shell-executor.d.ts +3 -3
  617. package/r-bridge/shell-executor.js +6 -1
  618. package/r-bridge/shell.d.ts +24 -23
  619. package/r-bridge/shell.js +37 -31
  620. package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -2
  621. package/reconstruct/auto-select/magic-comments.d.ts +1 -2
  622. package/reconstruct/auto-select/magic-comments.js +2 -3
  623. package/reconstruct/reconstruct.d.ts +18 -12
  624. package/reconstruct/reconstruct.js +19 -10
  625. package/search/flowr-search-builder.d.ts +12 -5
  626. package/search/flowr-search-builder.js +7 -2
  627. package/search/flowr-search-executor.d.ts +3 -3
  628. package/search/flowr-search-filters.d.ts +14 -1
  629. package/search/flowr-search-filters.js +13 -0
  630. package/search/flowr-search-printer.d.ts +6 -0
  631. package/search/flowr-search-printer.js +6 -0
  632. package/search/flowr-search-traverse.d.ts +1 -1
  633. package/search/flowr-search.d.ts +15 -3
  634. package/search/search-executor/search-enrichers.d.ts +16 -6
  635. package/search/search-executor/search-enrichers.js +4 -3
  636. package/search/search-executor/search-generators.d.ts +19 -10
  637. package/search/search-executor/search-generators.js +57 -5
  638. package/search/search-executor/search-mappers.d.ts +8 -5
  639. package/search/search-executor/search-mappers.js +3 -0
  640. package/search/search-executor/search-transformer.d.ts +19 -16
  641. package/search/search-executor/search-transformer.js +3 -0
  642. package/slicing/criterion/collect-all.d.ts +13 -12
  643. package/slicing/criterion/collect-all.js +1 -1
  644. package/slicing/criterion/parse.d.ts +4 -2
  645. package/slicing/criterion/parse.js +8 -6
  646. package/slicing/static/fingerprint.d.ts +9 -1
  647. package/slicing/static/fingerprint.js +8 -0
  648. package/slicing/static/slice-call.d.ts +2 -2
  649. package/slicing/static/static-slicer.d.ts +8 -4
  650. package/slicing/static/static-slicer.js +5 -1
  651. package/slicing/static/visiting-queue.d.ts +1 -1
  652. package/statistics/features/common-syntax-probability.d.ts +10 -1
  653. package/statistics/features/common-syntax-probability.js +9 -0
  654. package/statistics/features/feature.d.ts +0 -4
  655. package/statistics/features/feature.js +0 -1
  656. package/statistics/features/post-processing.d.ts +6 -0
  657. package/statistics/features/post-processing.js +6 -0
  658. package/statistics/features/supported/assignments/assignments.js +1 -1
  659. package/statistics/features/supported/assignments/post-process.d.ts +3 -0
  660. package/statistics/features/supported/assignments/post-process.js +3 -0
  661. package/statistics/features/supported/comments/post-process.d.ts +3 -0
  662. package/statistics/features/supported/comments/post-process.js +3 -0
  663. package/statistics/features/supported/control-flow/control-flow.js +1 -1
  664. package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
  665. package/statistics/features/supported/control-flow/post-process.js +3 -0
  666. package/statistics/features/supported/data-access/data-access.d.ts +1 -1
  667. package/statistics/features/supported/data-access/data-access.js +1 -1
  668. package/statistics/features/supported/data-access/post-process.d.ts +3 -0
  669. package/statistics/features/supported/data-access/post-process.js +3 -0
  670. package/statistics/features/supported/defined-functions/defined-functions.d.ts +1 -1
  671. package/statistics/features/supported/defined-functions/defined-functions.js +1 -1
  672. package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
  673. package/statistics/features/supported/expression-list/post-process.js +3 -0
  674. package/statistics/features/supported/expression-list/statistics-expression-list.js +1 -1
  675. package/statistics/features/supported/loops/loops.js +1 -1
  676. package/statistics/features/supported/loops/post-process.d.ts +3 -0
  677. package/statistics/features/supported/loops/post-process.js +3 -0
  678. package/statistics/features/supported/used-functions/used-functions.d.ts +1 -1
  679. package/statistics/features/supported/used-functions/used-functions.js +1 -1
  680. package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
  681. package/statistics/features/supported/used-packages/post-process.js +3 -0
  682. package/statistics/features/supported/values/post-process.d.ts +3 -0
  683. package/statistics/features/supported/values/post-process.js +3 -0
  684. package/statistics/features/supported/variables/post-process.d.ts +7 -1
  685. package/statistics/features/supported/variables/post-process.js +6 -0
  686. package/statistics/features/supported/variables/variables.js +1 -1
  687. package/statistics/meta-statistics.d.ts +8 -9
  688. package/statistics/output/file-provider.d.ts +5 -6
  689. package/statistics/output/file-provider.js +5 -6
  690. package/statistics/output/print-stats.d.ts +13 -1
  691. package/statistics/output/print-stats.js +12 -0
  692. package/statistics/output/statistics-file.d.ts +1 -2
  693. package/statistics/output/statistics-file.js +0 -1
  694. package/statistics/statistics.d.ts +3 -4
  695. package/statistics/statistics.js +4 -4
  696. package/statistics/summarizer/auto-detect.d.ts +3 -0
  697. package/statistics/summarizer/auto-detect.js +3 -0
  698. package/statistics/summarizer/post-process/clusterer.d.ts +3 -4
  699. package/statistics/summarizer/post-process/clusterer.js +0 -2
  700. package/statistics/summarizer/post-process/file-based-count.d.ts +0 -1
  701. package/statistics/summarizer/post-process/file-based-count.js +0 -1
  702. package/statistics/summarizer/post-process/histogram.d.ts +0 -2
  703. package/statistics/summarizer/post-process/histogram.js +0 -2
  704. package/statistics/summarizer/post-process/post-process-output.d.ts +2 -4
  705. package/statistics/summarizer/post-process/post-process-output.js +0 -3
  706. package/statistics/summarizer/second-phase/process.d.ts +5 -3
  707. package/statistics/summarizer/second-phase/process.js +3 -1
  708. package/statistics/summarizer/summarizer.d.ts +1 -2
  709. package/util/assert.d.ts +56 -2
  710. package/util/assert.js +56 -2
  711. package/util/collections/arrays.d.ts +10 -5
  712. package/util/collections/arrays.js +10 -5
  713. package/util/collections/defaultmap.d.ts +11 -11
  714. package/util/collections/defaultmap.js +11 -11
  715. package/util/containers.d.ts +2 -7
  716. package/util/containers.js +0 -5
  717. package/util/diff-graph.d.ts +0 -1
  718. package/util/diff-graph.js +0 -1
  719. package/util/diff.d.ts +3 -1
  720. package/util/diff.js +3 -1
  721. package/util/files.d.ts +12 -12
  722. package/util/files.js +11 -11
  723. package/util/html-hover-over.d.ts +5 -0
  724. package/util/html-hover-over.js +5 -0
  725. package/util/json.d.ts +13 -0
  726. package/util/json.js +13 -0
  727. package/util/log.d.ts +2 -2
  728. package/util/log.js +2 -2
  729. package/util/mermaid/ast.d.ts +7 -3
  730. package/util/mermaid/ast.js +39 -8
  731. package/util/mermaid/cfg.d.ts +1 -1
  732. package/util/mermaid/cfg.js +1 -1
  733. package/util/mermaid/dfg.d.ts +12 -4
  734. package/util/mermaid/dfg.js +9 -1
  735. package/util/mermaid/mermaid.d.ts +6 -1
  736. package/util/mermaid/mermaid.js +6 -1
  737. package/util/numbers.d.ts +7 -0
  738. package/util/numbers.js +7 -0
  739. package/util/objects.d.ts +0 -2
  740. package/util/os.d.ts +3 -0
  741. package/util/os.js +3 -0
  742. package/util/parallel.d.ts +4 -4
  743. package/util/parallel.js +4 -4
  744. package/util/prefix.d.ts +0 -1
  745. package/util/prefix.js +0 -1
  746. package/util/quads.d.ts +14 -17
  747. package/util/quads.js +3 -5
  748. package/util/r-value.d.ts +10 -1
  749. package/util/r-value.js +21 -0
  750. package/util/random.d.ts +3 -0
  751. package/util/random.js +3 -0
  752. package/util/range.d.ts +9 -3
  753. package/util/range.js +15 -2
  754. package/util/schema.d.ts +14 -1
  755. package/util/schema.js +15 -2
  756. package/util/simple-df/dfg-view.d.ts +4 -1
  757. package/util/simple-df/dfg-view.js +4 -1
  758. package/util/summarizer.d.ts +9 -1
  759. package/util/summarizer.js +9 -0
  760. package/util/text/ansi.d.ts +3 -0
  761. package/util/text/ansi.js +3 -0
  762. package/util/text/args.d.ts +2 -4
  763. package/util/text/args.js +7 -5
  764. package/util/text/text.d.ts +4 -0
  765. package/util/text/text.js +4 -0
  766. package/util/text/time.d.ts +0 -1
  767. package/util/text/time.js +0 -1
  768. package/util/version.d.ts +12 -3
  769. package/util/version.js +12 -3
  770. package/abstract-interpretation/data-frame/domain.d.ts +0 -107
  771. package/abstract-interpretation/data-frame/domain.js +0 -315
  772. package/abstract-interpretation/domains/set-bounded-set-domain.d.ts +0 -43
  773. package/abstract-interpretation/domains/set-bounded-set-domain.js +0 -164
  774. package/cli/repl/commands/repl-lineage.d.ts +0 -15
  775. package/cli/repl/commands/repl-lineage.js +0 -66
  776. package/cli/repl/server/messages/message-lineage.d.ts +0 -17
  777. package/cli/repl/server/messages/message-lineage.js +0 -25
  778. package/documentation/print-analyzer-wiki.d.ts +0 -1
  779. package/documentation/print-analyzer-wiki.js +0 -137
  780. package/documentation/print-capabilities-markdown.d.ts +0 -1
  781. package/documentation/print-cfg-wiki.d.ts +0 -1
  782. package/documentation/print-core-wiki.d.ts +0 -2
  783. package/documentation/print-dataflow-graph-wiki.d.ts +0 -1
  784. package/documentation/print-engines-wiki.d.ts +0 -1
  785. package/documentation/print-faq-wiki.d.ts +0 -1
  786. package/documentation/print-faq-wiki.js +0 -90
  787. package/documentation/print-interface-wiki.d.ts +0 -1
  788. package/documentation/print-linter-issue.d.ts +0 -1
  789. package/documentation/print-linter-wiki.d.ts +0 -1
  790. package/documentation/print-linting-and-testing-wiki.d.ts +0 -1
  791. package/documentation/print-normalized-ast-wiki.d.ts +0 -1
  792. package/documentation/print-onboarding-wiki.d.ts +0 -1
  793. package/documentation/print-query-wiki.d.ts +0 -1
  794. package/documentation/print-readme.d.ts +0 -1
  795. package/documentation/print-search-wiki.d.ts +0 -1
  796. package/documentation/print-search-wiki.js +0 -74
  797. package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
  798. package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
  799. package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
  800. package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
  801. package/util/formats/adapter-format.d.ts +0 -6
  802. package/util/formats/adapter-format.js +0 -3
  803. package/util/formats/adapter.d.ts +0 -18
  804. package/util/formats/adapter.js +0 -49
  805. package/util/formats/adapters/r-adapter.d.ts +0 -4
  806. package/util/formats/adapters/r-adapter.js +0 -7
  807. package/util/formats/adapters/rmd-adapter.d.ts +0 -26
  808. package/util/formats/adapters/rmd-adapter.js +0 -91
@@ -1,5 +1,8 @@
1
1
  import type { CallContextQuery, CallContextQueryResult, CallNameTypes, LinkTo } from './call-context-query-format';
2
2
  import type { BasicQueryData } from '../../base-query-format';
3
+ /**
4
+ *
5
+ */
3
6
  export declare function promoteCallName(callName: CallNameTypes, exact?: boolean): RegExp | Set<string>;
4
7
  export type PromotedLinkTo = Omit<LinkTo, 'callName'> & {
5
8
  callName: RegExp | Set<string>;
@@ -9,6 +9,7 @@ const two_layer_collector_1 = require("../../two-layer-collector");
9
9
  const objects_1 = require("../../../util/objects");
10
10
  const identify_link_to_last_call_relation_1 = require("./identify-link-to-last-call-relation");
11
11
  const cfg_kind_1 = require("../../../project/cfg-kind");
12
+ const extract_cfg_1 = require("../../../control-flow/extract-cfg");
12
13
  /* if the node is effected by nse, we have an ingoing nse edge */
13
14
  function isQuoted(node, graph) {
14
15
  const vertex = graph.ingoingEdges(node);
@@ -43,6 +44,9 @@ function isSubCallQuery(query) {
43
44
  function exactCallNameRegex(name) {
44
45
  return new RegExp(`^(${name})$`);
45
46
  }
47
+ /**
48
+ *
49
+ */
46
50
  function promoteCallName(callName, exact = false) {
47
51
  return Array.isArray(callName) ? new Set(callName) : exact ? exactCallNameRegex(callName) : new RegExp(callName);
48
52
  }
@@ -208,6 +212,7 @@ async function executeCallContextQueries({ analyzer }, queries) {
208
212
  }
209
213
  }
210
214
  }
215
+ const calls = cfg ? (0, extract_cfg_1.getCallsInCfg)(cfg, dataflow.graph) : undefined;
211
216
  for (const query of promotedQueries.filter(q => !q.includeAliases && (q.callName instanceof RegExp ? q.callName.test(info.name) : q.callName.has(info.name)))) {
212
217
  const file = ast.idMap.get(nodeId)?.info.file;
213
218
  if (!doesFilepathMatch(file, query.fileFilter)) {
@@ -215,7 +220,7 @@ async function executeCallContextQueries({ analyzer }, queries) {
215
220
  }
216
221
  let targets = undefined;
217
222
  if (query.callTargets) {
218
- targets = (0, identify_link_to_last_call_relation_1.satisfiesCallTargets)(nodeId, dataflow.graph, query.callTargets);
223
+ targets = (0, identify_link_to_last_call_relation_1.satisfiesCallTargets)(info, dataflow.graph, query.callTargets);
219
224
  if (targets === 'no') {
220
225
  continue;
221
226
  }
@@ -232,7 +237,7 @@ async function executeCallContextQueries({ analyzer }, queries) {
232
237
  const linked = Array.isArray(query.linkTo) ? query.linkTo : [query.linkTo];
233
238
  for (const link of linked) {
234
239
  /* if we have a linkTo query, we have to find the last call */
235
- const lastCall = (0, identify_link_to_last_call_relation_1.identifyLinkToLastCallRelation)(nodeId, cfg.graph, dataflow.graph, link);
240
+ const lastCall = (0, identify_link_to_last_call_relation_1.identifyLinkToLastCallRelation)(nodeId, cfg.graph, dataflow.graph, link, calls);
236
241
  if (lastCall) {
237
242
  linkedIds ??= new Set();
238
243
  for (const l of lastCall) {
@@ -1,14 +1,14 @@
1
1
  import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
2
2
  import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
3
3
  import { executeCallContextQueries } from './call-context-query-executor';
4
- import type { OutputFormatter } from '../../../util/text/ansi';
4
+ import { type OutputFormatter } from '../../../util/text/ansi';
5
5
  import Joi from 'joi';
6
6
  import { CallTargets } from './identify-link-to-last-call-relation';
7
7
  import type { DataflowGraph } from '../../../dataflow/graph/graph';
8
8
  import type { DataflowGraphVertexInfo } from '../../../dataflow/graph/vertex';
9
9
  import type { CascadeAction } from './cascade-action';
10
10
  import type { NoInfo } from '../../../r-bridge/lang-4.x/ast/model/model';
11
- import type { FlowrAnalysisProvider } from '../../../project/flowr-analyzer';
11
+ import type { ReadonlyFlowrAnalysisProvider } from '../../../project/flowr-analyzer';
12
12
  export interface FileFilter<FilterType> {
13
13
  /**
14
14
  * Regex that a node's file attribute must match to be considered
@@ -108,7 +108,7 @@ export interface CallContextQueryResult extends BaseQueryResult {
108
108
  export type CallContextQuery<CallName extends CallNameTypes = CallNameTypes, AttachLinkInfo = NoInfo> = DefaultCallContextQueryFormat<CallName> | SubCallContextQueryFormat<CallName, AttachLinkInfo>;
109
109
  export declare const CallContextQueryDefinition: {
110
110
  readonly executor: typeof executeCallContextQueries;
111
- readonly asciiSummarizer: (formatter: OutputFormatter, analyzer: FlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
111
+ readonly asciiSummarizer: (formatter: OutputFormatter, analyzer: ReadonlyFlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
112
112
  readonly schema: Joi.ObjectSchema<any>;
113
113
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
114
114
  };
@@ -1,6 +1,6 @@
1
1
  import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
2
- import type { DataflowGraph } from '../../../dataflow/graph/graph';
3
- import type { DataflowGraphVertexFunctionCall } from '../../../dataflow/graph/vertex';
2
+ import { type DataflowGraph } from '../../../dataflow/graph/graph';
3
+ import { type DataflowGraphVertexFunctionCall } from '../../../dataflow/graph/vertex';
4
4
  import { RType } from '../../../r-bridge/lang-4.x/ast/model/type';
5
5
  import type { RNodeWithParent } from '../../../r-bridge/lang-4.x/ast/model/processing/decorate';
6
6
  import type { LinkTo } from './call-context-query-format';
@@ -18,11 +18,23 @@ export declare enum CallTargets {
18
18
  /** call targets a function that is defined locally or globally */
19
19
  Any = "any"
20
20
  }
21
- export declare function satisfiesCallTargets(id: NodeId, graph: DataflowGraph, callTarget: CallTargets): NodeId[] | 'no';
21
+ /**
22
+ * Determines whether the given function call node satisfies the specified call target condition.
23
+ */
24
+ export declare function satisfiesCallTargets(info: DataflowGraphVertexFunctionCall, graph: DataflowGraph, callTarget: CallTargets): NodeId[] | 'no';
25
+ /**
26
+ * Gets the value node of the specified argument in the given function call, if it exists and matches the allowed types.
27
+ */
22
28
  export declare function getValueOfArgument<Types extends readonly RType[] = readonly RType[]>(graph: DataflowGraph, call: DataflowGraphVertexFunctionCall | undefined, argument: {
23
29
  name?: string;
24
30
  index: number;
25
31
  }, additionalAllowedTypes?: Types): (RNodeWithParent & {
26
32
  type: Types[number];
27
33
  }) | undefined;
28
- export declare function identifyLinkToLastCallRelation(from: NodeId, cfg: ControlFlowGraph, graph: DataflowGraph, { callName, ignoreIf, cascadeIf }: LinkTo<RegExp> | PromotedLinkTo): NodeId[];
34
+ /**
35
+ * Identifies nodes that link to the last call of a specified function from a given starting node in the control flow graph.
36
+ * If you pass on `knownCalls` (e.g., produced by {@link getCallsInCfg}), this will only respect the functions
37
+ * listed there and ignore any other calls. This can be also used to speed up the process if you already have
38
+ * the known calls available.
39
+ */
40
+ export declare function identifyLinkToLastCallRelation(from: NodeId, cfg: ControlFlowGraph, graph: DataflowGraph, { callName, ignoreIf, cascadeIf }: LinkTo<RegExp> | PromotedLinkTo, knownCalls?: Map<NodeId, Required<DataflowGraphVertexFunctionCall>>): NodeId[];
@@ -28,25 +28,25 @@ var CallTargets;
28
28
  /** call targets a function that is defined locally or globally */
29
29
  CallTargets["Any"] = "any";
30
30
  })(CallTargets || (exports.CallTargets = CallTargets = {}));
31
- function satisfiesCallTargets(id, graph, callTarget) {
32
- const callVertex = graph.getVertex(id, true);
33
- if (callVertex === undefined || callVertex.tag !== vertex_1.VertexType.FunctionCall) {
34
- return 'no';
35
- }
36
- const outgoing = graph.outgoingEdges(id);
31
+ /**
32
+ * Determines whether the given function call node satisfies the specified call target condition.
33
+ */
34
+ function satisfiesCallTargets(info, graph, callTarget) {
35
+ const outgoing = graph.outgoingEdges(info.id);
37
36
  if (outgoing === undefined) {
38
37
  return 'no';
39
38
  }
40
- const callTargets = [...outgoing]
39
+ const callTargets = outgoing.entries()
41
40
  .filter(([, { types }]) => (0, edge_1.edgeIncludesType)(types, edge_1.EdgeType.Calls))
42
- .map(([t]) => t);
41
+ .map(([t]) => t)
42
+ .toArray();
43
43
  let builtIn = false;
44
- if (callVertex.environment !== undefined) {
44
+ if (info.environment !== undefined) {
45
45
  /*
46
46
  * for performance and scoping reasons, flowR will not identify the global linkage,
47
47
  * including any potential built-in mapping.
48
48
  */
49
- const reResolved = (0, resolve_by_name_1.resolveByName)(callVertex.name, callVertex.environment, identifier_1.ReferenceType.Unknown);
49
+ const reResolved = (0, resolve_by_name_1.resolveByName)(info.name, info.environment, identifier_1.ReferenceType.Unknown);
50
50
  if (reResolved?.some(t => (0, built_in_1.isBuiltIn)(t.definedAt))) {
51
51
  builtIn = true;
52
52
  }
@@ -82,6 +82,9 @@ function satisfiesCallTargets(id, graph, callTarget) {
82
82
  (0, assert_1.assertUnreachable)(callTarget);
83
83
  }
84
84
  }
85
+ /**
86
+ * Gets the value node of the specified argument in the given function call, if it exists and matches the allowed types.
87
+ */
85
88
  function getValueOfArgument(graph, call, argument, additionalAllowedTypes) {
86
89
  if (!call) {
87
90
  return undefined;
@@ -107,30 +110,43 @@ function getValueOfArgument(graph, call, argument, additionalAllowedTypes) {
107
110
  return !additionalAllowedTypes || additionalAllowedTypes.includes(valueNode.type) ? valueNode : undefined;
108
111
  }
109
112
  }
110
- function identifyLinkToLastCallRelation(from, cfg, graph, { callName, ignoreIf, cascadeIf }) {
113
+ /**
114
+ * Identifies nodes that link to the last call of a specified function from a given starting node in the control flow graph.
115
+ * If you pass on `knownCalls` (e.g., produced by {@link getCallsInCfg}), this will only respect the functions
116
+ * listed there and ignore any other calls. This can be also used to speed up the process if you already have
117
+ * the known calls available.
118
+ */
119
+ function identifyLinkToLastCallRelation(from, cfg, graph, { callName, ignoreIf, cascadeIf }, knownCalls) {
111
120
  if (ignoreIf?.(from, graph)) {
112
121
  return [];
113
122
  }
114
123
  const found = [];
124
+ const cNameCheck = callName instanceof RegExp ? ({ name }) => callName.test(name)
125
+ : ({ name }) => callName.has(name);
126
+ const getVertex = knownCalls ?
127
+ (node) => knownCalls.get(node) :
128
+ (node) => {
129
+ const v = graph.getVertex(node, true);
130
+ return (0, vertex_1.isFunctionCallVertex)(v) ? v : undefined;
131
+ };
115
132
  (0, simple_visitor_1.visitCfgInReverseOrder)(cfg, [from], node => {
116
133
  /* we ignore the start id as it cannot be the last call */
117
134
  if (node === from) {
118
135
  return;
119
136
  }
120
- const vertex = graph.getVertex(node, true);
121
- if (vertex === undefined || vertex.tag !== vertex_1.VertexType.FunctionCall) {
137
+ const vertex = getVertex(node);
138
+ if (vertex === undefined) {
122
139
  return;
123
140
  }
124
- if (callName instanceof RegExp ? callName.test(vertex.name) : callName.has(vertex.name)) {
141
+ if (cNameCheck(vertex)) {
125
142
  const act = cascadeIf ? cascadeIf(vertex, from, graph) : cascade_action_1.CascadeAction.Stop;
126
143
  if (act === cascade_action_1.CascadeAction.Skip) {
127
144
  return;
128
145
  }
129
- const tar = satisfiesCallTargets(vertex.id, graph, CallTargets.MustIncludeGlobal);
130
- if (tar === 'no') {
131
- return act === cascade_action_1.CascadeAction.Stop;
146
+ const tar = satisfiesCallTargets(vertex, graph, CallTargets.MustIncludeGlobal);
147
+ if (tar !== 'no') {
148
+ found.push(node);
132
149
  }
133
- found.push(node);
134
150
  return act === cascade_action_1.CascadeAction.Stop;
135
151
  }
136
152
  });
@@ -1,3 +1,6 @@
1
1
  import type { DataflowClusterQuery, DataflowClusterQueryResult } from './cluster-query-format';
2
2
  import type { BasicQueryData } from '../../base-query-format';
3
+ /**
4
+ * Executes the given dataflow cluster queries using the provided analyzer.
5
+ */
3
6
  export declare function executeDataflowClusterQuery({ analyzer }: BasicQueryData, queries: readonly DataflowClusterQuery[]): Promise<DataflowClusterQueryResult>;
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeDataflowClusterQuery = executeDataflowClusterQuery;
4
4
  const log_1 = require("../../../util/log");
5
5
  const cluster_1 = require("../../../dataflow/cluster");
6
+ /**
7
+ * Executes the given dataflow cluster queries using the provided analyzer.
8
+ */
6
9
  async function executeDataflowClusterQuery({ analyzer }, queries) {
7
10
  if (queries.length !== 1) {
8
11
  log_1.log.warn('The dataflow cluster query expects only up to one query, but got', queries.length);
@@ -15,7 +15,7 @@ export interface DataflowClusterQueryResult extends BaseQueryResult {
15
15
  }
16
16
  export declare const ClusterQueryDefinition: {
17
17
  readonly executor: typeof executeDataflowClusterQuery;
18
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, analyzer: import("../../../project/flowr-analyzer").FlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
18
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
19
19
  readonly schema: Joi.ObjectSchema<any>;
20
20
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
21
21
  };
@@ -1,3 +1,6 @@
1
1
  import type { ConfigQuery, ConfigQueryResult } from './config-query-format';
2
2
  import type { BasicQueryData } from '../../base-query-format';
3
+ /**
4
+ * Executes the given configuration queries using the provided analyzer.
5
+ */
3
6
  export declare function executeConfigQuery({ analyzer }: BasicQueryData, queries: readonly ConfigQuery[]): Promise<ConfigQueryResult>;
@@ -4,6 +4,9 @@ exports.executeConfigQuery = executeConfigQuery;
4
4
  const log_1 = require("../../../util/log");
5
5
  const assert_1 = require("../../../util/assert");
6
6
  const objects_1 = require("../../../util/objects");
7
+ /**
8
+ * Executes the given configuration queries using the provided analyzer.
9
+ */
7
10
  function executeConfigQuery({ analyzer }, queries) {
8
11
  if (queries.length !== 1) {
9
12
  log_1.log.warn('Config query usually expects only up to one query, but got', queries.length);
@@ -4,6 +4,9 @@ import { type OutputFormatter } from '../../../util/text/ansi';
4
4
  import Joi from 'joi';
5
5
  import type { FlowrConfigOptions } from '../../../config';
6
6
  import type { DeepPartial } from 'ts-essentials';
7
+ import type { ParsedQueryLine } from '../../query';
8
+ import type { ReplOutput } from '../../../cli/repl/commands/repl-main';
9
+ import type { CommandCompletions } from '../../../cli/repl/core';
7
10
  export interface ConfigQuery extends BaseQueryFormat {
8
11
  readonly type: 'config';
9
12
  readonly update?: DeepPartial<FlowrConfigOptions>;
@@ -11,8 +14,8 @@ export interface ConfigQuery extends BaseQueryFormat {
11
14
  export interface ConfigQueryResult extends BaseQueryResult {
12
15
  readonly config: FlowrConfigOptions;
13
16
  }
14
- declare function configReplCompleter(partialLine: readonly string[], config: FlowrConfigOptions): string[];
15
- declare function configQueryLineParser(line: readonly string[], _config: FlowrConfigOptions): [ConfigQuery];
17
+ declare function configReplCompleter(partialLine: readonly string[], _startingNewArg: boolean, config: FlowrConfigOptions): CommandCompletions;
18
+ declare function configQueryLineParser(output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'config'>;
16
19
  export declare const ConfigQueryDefinition: {
17
20
  readonly executor: typeof executeConfigQuery;
18
21
  readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: unknown, queryResults: BaseQueryResult, result: string[]) => true;
@@ -9,17 +9,17 @@ const ansi_1 = require("../../../util/text/ansi");
9
9
  const time_1 = require("../../../util/text/time");
10
10
  const joi_1 = __importDefault(require("joi"));
11
11
  const json_1 = require("../../../util/json");
12
- function configReplCompleter(partialLine, config) {
12
+ function configReplCompleter(partialLine, _startingNewArg, config) {
13
13
  if (partialLine.length === 0) {
14
14
  // update specific fields
15
- return ['+'];
15
+ return { completions: ['+'] };
16
16
  }
17
17
  else if (partialLine.length === 1 && partialLine[0].startsWith('+')) {
18
18
  const path = partialLine[0].slice(1).split('.').filter(p => p.length > 0);
19
19
  const fullPath = path.slice();
20
20
  const lastPath = partialLine[0].endsWith('.') ? '' : path.pop() ?? '';
21
21
  if (lastPath.endsWith('=')) {
22
- return [];
22
+ return { completions: [] };
23
23
  }
24
24
  const subConfig = path.reduce((obj, key) => (obj && obj[key] !== undefined && typeof obj[key] === 'object') ? obj[key] : obj, config);
25
25
  if (subConfig && !(subConfig[lastPath] !== undefined && typeof subConfig[lastPath] !== 'object')) {
@@ -27,23 +27,23 @@ function configReplCompleter(partialLine, config) {
27
27
  .filter(k => k.startsWith(lastPath) && k !== lastPath)
28
28
  .map(k => `${partialLine[0].slice(0, 1)}${[...path, k].join('.')}`);
29
29
  if (have.length > 0) {
30
- return have;
30
+ return { completions: have };
31
31
  }
32
32
  else if (lastPath.length > 0) {
33
- return [`${partialLine[0].slice(0, 1)}${fullPath.join('.')}.`];
33
+ return { completions: [`${partialLine[0].slice(0, 1)}${fullPath.join('.')}.`] };
34
34
  }
35
35
  }
36
- return [`${partialLine[0].slice(0, 1)}${fullPath.join('.')}=`];
36
+ return { completions: [`${partialLine[0].slice(0, 1)}${fullPath.join('.')}=`] };
37
37
  }
38
- return [];
38
+ return { completions: [] };
39
39
  }
40
- function configQueryLineParser(line, _config) {
40
+ function configQueryLineParser(output, line, _config) {
41
41
  if (line.length > 0 && line[0].startsWith('+')) {
42
42
  const [pathPart, ...valueParts] = line[0].slice(1).split('=');
43
43
  // build the update object
44
44
  const path = pathPart.split('.').filter(p => p.length > 0);
45
45
  if (path.length === 0 || valueParts.length !== 1) {
46
- console.error('Invalid config update syntax, must be of the form +path.to.field=value');
46
+ output.stdout(`Invalid config update syntax, must be of the form ${(0, ansi_1.bold)('+path.to.field=value', output.formatter)}`);
47
47
  }
48
48
  else {
49
49
  const update = {};
@@ -67,15 +67,12 @@ function configQueryLineParser(line, _config) {
67
67
  current = current[key];
68
68
  }
69
69
  }
70
- return [{
71
- type: 'config',
72
- update
73
- }];
70
+ return { query: [{ type: 'config', update }]
71
+ };
74
72
  }
75
73
  }
76
- return [{
77
- type: 'config'
78
- }];
74
+ return { query: [{ type: 'config' }]
75
+ };
79
76
  }
80
77
  exports.ConfigQueryDefinition = {
81
78
  executor: config_query_executor_1.executeConfigQuery,
@@ -1,3 +1,6 @@
1
1
  import type { ControlFlowQuery, ControlFlowQueryResult } from './control-flow-query-format';
2
2
  import type { BasicQueryData } from '../../base-query-format';
3
+ /**
4
+ *
5
+ */
3
6
  export declare function executeControlFlowQuery({ analyzer }: BasicQueryData, queries: readonly ControlFlowQuery[]): Promise<ControlFlowQueryResult>;
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeControlFlowQuery = executeControlFlowQuery;
4
4
  const log_1 = require("../../../util/log");
5
5
  const cfg_kind_1 = require("../../../project/cfg-kind");
6
+ /**
7
+ *
8
+ */
6
9
  async function executeControlFlowQuery({ analyzer }, queries) {
7
10
  if (queries.length !== 1) {
8
11
  log_1.log.warn('The control flow query expects only up to one query, but got', queries.length);
@@ -2,8 +2,8 @@ import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
2
2
  import Joi from 'joi';
3
3
  import { executeControlFlowQuery } from './control-flow-query-executor';
4
4
  import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
5
- import type { ControlFlowInformation } from '../../../control-flow/control-flow-graph';
6
- import type { CfgSimplificationPassName } from '../../../control-flow/cfg-simplification';
5
+ import { type ControlFlowInformation } from '../../../control-flow/control-flow-graph';
6
+ import { type CfgSimplificationPassName } from '../../../control-flow/cfg-simplification';
7
7
  /**
8
8
  * Provides the control flow graph with an optional, fixed configuration
9
9
  */
@@ -22,7 +22,7 @@ export interface ControlFlowQueryResult extends BaseQueryResult {
22
22
  }
23
23
  export declare const ControlFlowQueryDefinition: {
24
24
  readonly executor: typeof executeControlFlowQuery;
25
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, analyzer: import("../../../project/flowr-analyzer").FlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
25
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
26
26
  readonly schema: Joi.ObjectSchema<any>;
27
27
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
28
28
  };
@@ -1,3 +1,6 @@
1
1
  import type { DataflowLensQuery, DataflowLensQueryResult } from './dataflow-lens-query-format';
2
2
  import type { BasicQueryData } from '../../base-query-format';
3
+ /**
4
+ * Executes the given dataflow lens queries using the provided analyzer.
5
+ */
3
6
  export declare function executeDataflowLensQuery({ analyzer }: BasicQueryData, queries: readonly DataflowLensQuery[]): Promise<DataflowLensQueryResult>;
@@ -4,6 +4,9 @@ exports.executeDataflowLensQuery = executeDataflowLensQuery;
4
4
  const log_1 = require("../../../util/log");
5
5
  const dfg_view_1 = require("../../../util/simple-df/dfg-view");
6
6
  const vertex_1 = require("../../../dataflow/graph/vertex");
7
+ /**
8
+ * Executes the given dataflow lens queries using the provided analyzer.
9
+ */
7
10
  async function executeDataflowLensQuery({ analyzer }, queries) {
8
11
  if (queries.length !== 1) {
9
12
  log_1.log.warn('Dataflow query expects only up to one query, but got', queries.length);
@@ -14,7 +14,7 @@ export interface DataflowLensQueryResult extends BaseQueryResult {
14
14
  }
15
15
  export declare const DataflowLensQueryDefinition: {
16
16
  readonly executor: typeof executeDataflowLensQuery;
17
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").FlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
17
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
18
18
  readonly schema: Joi.ObjectSchema<any>;
19
19
  readonly flattenInvolvedNodes: () => never[];
20
20
  };
@@ -1,3 +1,6 @@
1
1
  import type { DataflowQuery, DataflowQueryResult } from './dataflow-query-format';
2
2
  import type { BasicQueryData } from '../../base-query-format';
3
+ /**
4
+ * Executes the given dataflow queries.
5
+ */
3
6
  export declare function executeDataflowQuery({ analyzer }: BasicQueryData, queries: readonly DataflowQuery[]): Promise<DataflowQueryResult>;
@@ -2,6 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeDataflowQuery = executeDataflowQuery;
4
4
  const log_1 = require("../../../util/log");
5
+ /**
6
+ * Executes the given dataflow queries.
7
+ */
5
8
  async function executeDataflowQuery({ analyzer }, queries) {
6
9
  if (queries.length !== 1) {
7
10
  log_1.log.warn('Dataflow query expects only up to one query, but got', queries.length);
@@ -15,7 +15,7 @@ export interface DataflowQueryResult extends BaseQueryResult {
15
15
  }
16
16
  export declare const DataflowQueryDefinition: {
17
17
  readonly executor: typeof executeDataflowQuery;
18
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").FlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
18
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
19
19
  readonly schema: Joi.ObjectSchema<any>;
20
20
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
21
21
  };
@@ -1,3 +1,6 @@
1
- import type { DependenciesQuery, DependenciesQueryResult } from './dependencies-query-format';
1
+ import { type DependenciesQuery, type DependenciesQueryResult } from './dependencies-query-format';
2
2
  import type { BasicQueryData } from '../../base-query-format';
3
+ /**
4
+ * Executes a dependencies query.
5
+ */
3
6
  export declare function executeDependenciesQuery({ analyzer, }: BasicQueryData, queries: readonly DependenciesQuery[]): Promise<DependenciesQueryResult>;
@@ -11,6 +11,9 @@ const function_info_1 = require("./function-info/function-info");
11
11
  const identify_link_to_last_call_relation_1 = require("../call-context-query/identify-link-to-last-call-relation");
12
12
  const resolve_argument_1 = require("../../../dataflow/eval/resolve/resolve-argument");
13
13
  const assert_1 = require("../../../util/assert");
14
+ /**
15
+ * Executes a dependencies query.
16
+ */
14
17
  async function executeDependenciesQuery({ analyzer, }, queries) {
15
18
  if (queries.length !== 1) {
16
19
  log_1.log.warn('Dependencies query expects only up to one query, but got ', queries.length, 'only using the first query');
@@ -33,12 +36,12 @@ async function executeDependenciesQuery({ analyzer, }, queries) {
33
36
  }
34
37
  const queryResults = functions.values().toArray().flat().length === 0 ? { kinds: {}, '.meta': { timing: 0 } } :
35
38
  await (0, query_1.executeQueriesOfSameType)(data, functions.entries().map(([c, f]) => makeCallContextQuery(f, c)).toArray().flat());
36
- const results = Object.fromEntries(functions.entries().map(([c, f]) => {
39
+ const results = Object.fromEntries(await Promise.all(functions.entries().map(async ([c, f]) => {
37
40
  const results = getResults(queries, { dataflow, config, normalize }, queryResults, c, f, data);
38
41
  // only default categories allow additional analyses, so we null-coalesce here!
39
- dependencies_query_format_1.DefaultDependencyCategories[c]?.additionalAnalysis?.(data, ignoreDefault, f, queryResults, results);
42
+ await dependencies_query_format_1.DefaultDependencyCategories[c]?.additionalAnalysis?.(data, ignoreDefault, f, queryResults, results);
40
43
  return [c, results];
41
- }));
44
+ })));
42
45
  return {
43
46
  '.meta': {
44
47
  timing: Date.now() - now
@@ -108,7 +111,7 @@ function getResults(queries, { dataflow, config, normalize }, results, kind, fun
108
111
  const results = [];
109
112
  for (const [arg, values] of foundValues.entries()) {
110
113
  for (const value of values) {
111
- const dep = value ? data?.analyzer.context().deps.getDependency(value) ?? undefined : undefined;
114
+ const dep = value ? data?.analyzer.inspectContext().deps.getDependency(value) ?? undefined : undefined;
112
115
  const result = (0, objects_1.compactRecord)({
113
116
  nodeId: id,
114
117
  functionName: vertex.name,
@@ -64,10 +64,13 @@ export interface DependencyInfo extends Record<string, unknown> {
64
64
  versionConstraints?: Range[];
65
65
  derivedVersion?: Range;
66
66
  }
67
+ /**
68
+ * Gets all dependency categories, including user-defined additional categories.
69
+ */
67
70
  export declare function getAllCategories(queries: readonly DependenciesQuery[]): Record<DependencyCategoryName, DependencyCategorySettings>;
68
71
  export declare const DependenciesQueryDefinition: {
69
72
  readonly executor: typeof executeDependenciesQuery;
70
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").FlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[], queries: readonly import("../../query").Query[]) => true;
73
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[], queries: readonly import("../../query").Query[]) => true;
71
74
  readonly schema: Joi.ObjectSchema<any>;
72
75
  readonly flattenInvolvedNodes: (queryResults: BaseQueryResult, query: readonly import("../../query").Query[]) => NodeId[];
73
76
  };
@@ -25,9 +25,9 @@ exports.DefaultDependencyCategories = {
25
25
  /* for libraries, we have to additionally track all uses of `::` and `:::`, for this we currently simply traverse all uses */
26
26
  additionalAnalysis: async (data, ignoreDefault, _functions, _queryResults, result) => {
27
27
  if (!ignoreDefault) {
28
- (0, visitor_1.visitAst)((await data.analyzer.normalize()).ast, n => {
28
+ (0, visitor_1.visitAst)((await data.analyzer.normalize()).ast.files.map(f => f.root), n => {
29
29
  if (n.type === type_1.RType.Symbol && n.namespace) {
30
- const dep = data.analyzer.context().deps.getDependency(n.namespace);
30
+ const dep = data.analyzer.inspectContext().deps.getDependency(n.namespace);
31
31
  /* we should improve the identification of ':::' */
32
32
  result.push({
33
33
  nodeId: n.info.id,
@@ -81,6 +81,9 @@ function printResultSection(title, infos, result) {
81
81
  result.push(infos.map(i => ` ╰ Node Id: ${i.nodeId}${i.value !== undefined ? `, \`${i.value}\`` : ''}${i.derivedVersion !== undefined ? `, Version: \`${i.derivedVersion.format()}\`` : ''}`).join('\n'));
82
82
  }
83
83
  }
84
+ /**
85
+ * Gets all dependency categories, including user-defined additional categories.
86
+ */
84
87
  function getAllCategories(queries) {
85
88
  let categories = exports.DefaultDependencyCategories;
86
89
  for (const query of queries) {
@@ -1,3 +1,6 @@
1
- import type { DfShapeQuery, DfShapeQueryResult } from './df-shape-query-format';
2
1
  import type { BasicQueryData } from '../../base-query-format';
2
+ import type { DfShapeQuery, DfShapeQueryResult } from './df-shape-query-format';
3
+ /**
4
+ * Executes the given dataframe shape queries using the provided analyzer.
5
+ */
3
6
  export declare function executeDfShapeQuery({ analyzer }: BasicQueryData, queries: readonly DfShapeQuery[]): Promise<DfShapeQueryResult>;
@@ -1,18 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeDfShapeQuery = executeDfShapeQuery;
4
- const log_1 = require("../../../util/log");
5
4
  const shape_inference_1 = require("../../../abstract-interpretation/data-frame/shape-inference");
6
5
  const parse_1 = require("../../../slicing/criterion/parse");
6
+ const log_1 = require("../../../util/log");
7
+ /**
8
+ * Executes the given dataframe shape queries using the provided analyzer.
9
+ */
7
10
  async function executeDfShapeQuery({ analyzer }, queries) {
8
11
  if (queries.length !== 1 && queries.some(query => query.criterion === undefined)) {
9
12
  log_1.log.warn('The dataframe shape query expects only up to one query without slicing criterion, but got', queries.length);
10
13
  queries = [{ type: 'df-shape' }];
11
14
  }
12
- const graph = (await analyzer.dataflow()).graph;
13
15
  const ast = await analyzer.normalize();
16
+ const dfg = (await analyzer.dataflow()).graph;
17
+ const cfg = await analyzer.controlflow();
14
18
  const start = Date.now();
15
- const domains = (0, shape_inference_1.inferDataFrameShapes)(await analyzer.controlflow(), graph, ast, analyzer.flowrConfig);
19
+ const domains = (0, shape_inference_1.inferDataFrameShapes)(cfg, dfg, ast, analyzer.inspectContext());
16
20
  if (queries.length === 1 && queries[0].criterion === undefined) {
17
21
  return {
18
22
  '.meta': {
@@ -33,7 +37,7 @@ async function executeDfShapeQuery({ analyzer }, queries) {
33
37
  }
34
38
  const nodeId = (0, parse_1.slicingCriterionToId)(query.criterion, ast.idMap);
35
39
  const node = ast.idMap.get(nodeId);
36
- const value = (0, shape_inference_1.resolveIdToDataFrameShape)(node?.info.id, graph);
40
+ const value = (0, shape_inference_1.resolveIdToDataFrameShape)(node?.info.id, dfg);
37
41
  result.set(query.criterion, value);
38
42
  }
39
43
  return {
@@ -1,8 +1,11 @@
1
+ import { type DataFrameDomain, DataFrameStateDomain } from '../../../abstract-interpretation/data-frame/dataframe-domain';
1
2
  import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
2
- import Joi from 'joi';
3
- import type { DataFrameDomain, DataFrameStateDomain } from '../../../abstract-interpretation/data-frame/domain';
3
+ import type { ParsedQueryLine } from '../../query';
4
4
  import { executeDfShapeQuery } from './df-shape-query-executor';
5
5
  import type { SingleSlicingCriterion } from '../../../slicing/criterion/parse';
6
+ import type { ReplOutput } from '../../../cli/repl/commands/repl-main';
7
+ import type { FlowrConfigOptions } from '../../../config';
8
+ import Joi from 'joi';
6
9
  /** Infer the shape of data frames using abstract interpretation. */
7
10
  export interface DfShapeQuery extends BaseQueryFormat {
8
11
  readonly type: 'df-shape';
@@ -11,9 +14,13 @@ export interface DfShapeQuery extends BaseQueryFormat {
11
14
  export interface DfShapeQueryResult extends BaseQueryResult {
12
15
  domains: DataFrameStateDomain | Map<SingleSlicingCriterion, DataFrameDomain | undefined>;
13
16
  }
17
+ declare function dfShapeQueryLineParser(_output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'df-shape'>;
14
18
  export declare const DfShapeQueryDefinition: {
15
19
  readonly executor: typeof executeDfShapeQuery;
16
- readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").FlowrAnalysisProvider, queryResults: BaseQueryResult, result: string[]) => true;
20
+ readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
21
+ readonly jsonFormatter: (queryResults: BaseQueryResult) => object;
22
+ readonly fromLine: typeof dfShapeQueryLineParser;
17
23
  readonly schema: Joi.ObjectSchema<any>;
18
24
  readonly flattenInvolvedNodes: () => never[];
19
25
  };
26
+ export {};