@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,19 +1,39 @@
1
1
  import type { RParseRequest, RParseRequests } from './retriever';
2
- import type { RShell } from './shell';
2
+ import type { OutputCollectorConfiguration, RShell } from './shell';
3
3
  import type { RShellExecutor } from './shell-executor';
4
4
  import type { TreeSitterExecutor } from './lang-4.x/tree-sitter/tree-sitter-executor';
5
+ import type { Query, QueryCapture } from 'web-tree-sitter';
6
+ import type { FlowrAnalysisProvider } from '../project/flowr-analyzer';
5
7
  interface ParserContent<T> {
6
8
  readonly name: string;
7
- rVersion(): Promise<string | 'unknown' | 'none'>;
9
+ information(analyzer: FlowrAnalysisProvider): BaseParserInformation;
8
10
  parse(request: RParseRequest): T;
9
11
  close(): void;
10
12
  }
11
- export interface TreeSitterInformation {
12
- name: TreeSitterExecutor['name'];
13
+ export interface BaseParserInformation {
14
+ readonly name: KnownParserName;
13
15
  }
14
- export interface RShellInformation {
15
- name: RShell['name'];
16
- rVersion: string;
16
+ export interface BaseRShellInformation extends BaseParserInformation {
17
+ readonly name: 'r-shell';
18
+ rVersion(): Promise<string>;
19
+ }
20
+ export interface RShellInformation extends BaseRShellInformation {
21
+ /**
22
+ * Sends a command to the underlying R engine and collects the output.
23
+ * @param command - The command to send to the R engine.
24
+ * @param addonConfig - Additional configuration for the output collector.
25
+ */
26
+ sendCommandWithOutput(command: string, addonConfig?: Partial<OutputCollectorConfiguration>): Promise<string[]>;
27
+ }
28
+ export interface TreeSitterInformation extends BaseParserInformation {
29
+ readonly name: 'tree-sitter';
30
+ readonly grammarVersion: number;
31
+ /**
32
+ * Runs the given tree-sitter query using the underlying tree-sitter parser and returns the resulting capture.
33
+ * @param source - The tree-sitter query to run.
34
+ * @param force - Do not use the cache, instead force a new parse.
35
+ */
36
+ treeSitterQuery(source: Query | string, force?: boolean): Promise<QueryCapture[]>;
17
37
  }
18
38
  export type SyncParser<T> = ParserContent<Awaited<T>> & {
19
39
  readonly async?: false;
@@ -24,6 +44,7 @@ export type AsyncParser<T> = ParserContent<Promise<T>> & {
24
44
  export type Parser<T> = SyncParser<T> | AsyncParser<T>;
25
45
  export type KnownParser = RShell | RShellExecutor | TreeSitterExecutor;
26
46
  export type KnownParserType = Awaited<ReturnType<KnownParser['parse']>>;
47
+ export type KnownParserInformation = ReturnType<KnownParser['information']>;
27
48
  export type KnownParserName = KnownParser['name'];
28
49
  export interface ParseRequiredInput<T> {
29
50
  /** This is the {@link RShell}, {@link RShellExecutor} or {@link TreeSitterExecutor} connection to be used to obtain the original parses AST of the R code */
@@ -1,7 +1,7 @@
1
1
  import { type RShell } from './shell';
2
2
  import type { AsyncOrSync } from 'ts-essentials';
3
3
  import { RShellExecutor } from './shell-executor';
4
- import type { NormalizedAst } from './lang-4.x/ast/model/processing/decorate';
4
+ import { type NormalizedAst } from './lang-4.x/ast/model/processing/decorate';
5
5
  import type { SupportedFormats } from '../util/formats/adapter-format';
6
6
  export declare const fileProtocol = "file://";
7
7
  export interface ParseRequestAdditionalInfoBase {
@@ -46,15 +46,30 @@ export type RParseRequest = RParseRequestFromFile | RParseRequestFromText;
46
46
  * Several requests that can be passed along to {@link retrieveParseDataFromRCode}.
47
47
  */
48
48
  export type RParseRequests = RParseRequest | ReadonlyArray<RParseRequest>;
49
+ /**
50
+ * Type guard for {@link RParseRequest}
51
+ */
49
52
  export declare function isParseRequest(request: unknown): request is RParseRequest;
50
53
  export declare function requestFromInput(input: `${typeof fileProtocol}${string}`): RParseRequestFromFile;
51
54
  export declare function requestFromInput(input: `${typeof fileProtocol}${string}`[]): RParseRequestFromFile[];
52
55
  export declare function requestFromInput(input: string): RParseRequestFromText;
53
56
  export declare function requestFromInput(input: readonly string[] | string): RParseRequests;
57
+ /**
58
+ * Creates a {@link RParseRequestProvider} that reads from the file system.
59
+ * Uses `fs.existsSync` to check for file existence.
60
+ * @see {@link requestProviderFromText} for a provider that reads from a text map.
61
+ */
54
62
  export declare function requestProviderFromFile(): RParseRequestProvider;
63
+ /**
64
+ * Creates a {@link RParseRequestProvider} that reads from the given text map.
65
+ * @see {@link requestProviderFromFile} for a provider that reads from the file system.
66
+ */
55
67
  export declare function requestProviderFromText(text: Readonly<{
56
68
  [path: string]: string;
57
69
  }>): RParseRequestProvider;
70
+ /**
71
+ * Checks whether the given {@link RParseRequest} is empty (has no content).
72
+ */
58
73
  export declare function isEmptyRequest(request: RParseRequest): boolean;
59
74
  export declare function retrieveParseDataFromRCode(request: RParseRequest, shell: RShell): Promise<string>;
60
75
  export declare function retrieveParseDataFromRCode(request: RParseRequest, shell: RShellExecutor): string;
@@ -25,6 +25,9 @@ const fs_1 = __importDefault(require("fs"));
25
25
  const path_1 = __importDefault(require("path"));
26
26
  const adapter_1 = require("../util/formats/adapter");
27
27
  exports.fileProtocol = 'file://';
28
+ /**
29
+ * Type guard for {@link RParseRequest}
30
+ */
28
31
  function isParseRequest(request) {
29
32
  if (typeof request !== 'object' || request === null) {
30
33
  return false;
@@ -50,6 +53,11 @@ function requestFromInput(input, fileTypeHint) {
50
53
  return (0, adapter_1.requestFromText)(content, fileTypeHint);
51
54
  }
52
55
  }
56
+ /**
57
+ * Creates a {@link RParseRequestProvider} that reads from the file system.
58
+ * Uses `fs.existsSync` to check for file existence.
59
+ * @see {@link requestProviderFromText} for a provider that reads from a text map.
60
+ */
53
61
  function requestProviderFromFile() {
54
62
  return {
55
63
  exists(p, ignoreCase) {
@@ -76,6 +84,10 @@ function requestProviderFromFile() {
76
84
  }
77
85
  };
78
86
  }
87
+ /**
88
+ * Creates a {@link RParseRequestProvider} that reads from the given text map.
89
+ * @see {@link requestProviderFromFile} for a provider that reads from the file system.
90
+ */
79
91
  function requestProviderFromText(text) {
80
92
  return {
81
93
  exists(path, ignoreCase) {
@@ -92,6 +104,9 @@ function requestProviderFromText(text) {
92
104
  }
93
105
  };
94
106
  }
107
+ /**
108
+ * Checks whether the given {@link RParseRequest} is empty (has no content).
109
+ */
95
110
  function isEmptyRequest(request) {
96
111
  return request.content.trim().length === 0;
97
112
  }
@@ -1,6 +1,6 @@
1
- import type { RShellExecutionOptions } from './shell';
1
+ import { type RShellExecutionOptions } from './shell';
2
2
  import type { SemVer } from 'semver';
3
- import type { SyncParser } from './parser';
3
+ import type { BaseRShellInformation, SyncParser } from './parser';
4
4
  import { type RParseRequest } from './retriever';
5
5
  /**
6
6
  * This is a synchronous alternative to the {@link RShell}.
@@ -23,12 +23,12 @@ export declare class RShellExecutor implements SyncParser<string> {
23
23
  addPrerequisites(commands: string | string[]): this;
24
24
  /**
25
25
  * @returns the version of the R interpreter available to this executor.
26
- *
27
26
  * @see {@link RShellExecutor#usedRVersion}
28
27
  * @see {@link RShell#rVersion}
29
28
  * @see {@link RShell#usedRVersion}
30
29
  */
31
30
  rVersion(): Promise<string | 'unknown' | 'none'>;
31
+ information(): BaseRShellInformation;
32
32
  /**
33
33
  * Instead of returning a promise, this method returns the version of the R interpreter available to this executor,
34
34
  * in the SemVer format.
@@ -40,7 +40,6 @@ class RShellExecutor {
40
40
  }
41
41
  /**
42
42
  * @returns the version of the R interpreter available to this executor.
43
- *
44
43
  * @see {@link RShellExecutor#usedRVersion}
45
44
  * @see {@link RShell#rVersion}
46
45
  * @see {@link RShell#usedRVersion}
@@ -48,6 +47,12 @@ class RShellExecutor {
48
47
  rVersion() {
49
48
  return Promise.resolve(this.usedRVersion()?.format() ?? 'unknown');
50
49
  }
50
+ information() {
51
+ return {
52
+ name: 'r-shell',
53
+ rVersion: () => Promise.resolve(this.rVersion())
54
+ };
55
+ }
51
56
  /**
52
57
  * Instead of returning a promise, this method returns the version of the R interpreter available to this executor,
53
58
  * in the SemVer format.
@@ -2,13 +2,13 @@ import { type MergeableRecord } from '../util/objects';
2
2
  import type { SemVer } from 'semver';
3
3
  import type { AsyncOrSync } from 'ts-essentials';
4
4
  import type { RShellEngineConfig } from '../config';
5
- import type { AsyncParser } from './parser';
6
- import type { RParseRequest } from './retriever';
5
+ import type { AsyncParser, RShellInformation } from './parser';
6
+ import { type RParseRequest } from './retriever';
7
7
  export type OutputStreamSelector = 'stdout' | 'stderr' | 'both';
8
8
  export interface CollectorTimeout extends MergeableRecord {
9
9
  /**
10
- * number of milliseconds to wait for the collection to finish
11
- */
10
+ * number of milliseconds to wait for the collection to finish
11
+ */
12
12
  ms: number;
13
13
  resetOnNewData: boolean;
14
14
  /**
@@ -24,9 +24,9 @@ export interface OutputCollectorConfiguration extends MergeableRecord {
24
24
  /** the streams to use to collect the output from */
25
25
  from: OutputStreamSelector;
26
26
  /**
27
- * a string marker to signal that the command was executed successfully.
28
- * must not appear as a standalone line in the output. this is our hacky way of ensuring that we are done.
29
- */
27
+ * a string marker to signal that the command was executed successfully.
28
+ * must not appear as a standalone line in the output. this is our hacky way of ensuring that we are done.
29
+ */
30
30
  postamble: string;
31
31
  /** internal timeout configuration to use (see {@link CollectorTimeout}) */
32
32
  timeout: CollectorTimeout;
@@ -69,6 +69,9 @@ export interface RShellOptions extends RShellSessionOptions {
69
69
  readonly sessionName: string;
70
70
  }
71
71
  export declare const DEFAULT_R_PATH: string;
72
+ /**
73
+ *
74
+ */
72
75
  export declare function getDefaultRShellOptions(config?: RShellEngineConfig): RShellOptions;
73
76
  /**
74
77
  * The `RShell` represents an interactive session with the R interpreter.
@@ -88,6 +91,7 @@ export declare class RShell implements AsyncParser<string> {
88
91
  private tempDirs;
89
92
  constructor(config?: RShellEngineConfig, options?: Partial<RShellOptions>);
90
93
  parse(request: RParseRequest): Promise<string>;
94
+ information(): RShellInformation;
91
95
  private revive;
92
96
  /**
93
97
  * sends the given command directly to the current R session
@@ -103,22 +107,20 @@ export declare class RShell implements AsyncParser<string> {
103
107
  */
104
108
  isPackageInstalled(packageName: string): Promise<boolean>;
105
109
  /**
106
- * Send a command and collect the output
107
- *
108
- * @param command - The R command to execute (similar to {@link sendCommand})
109
- * @param addonConfig - Further configuration on how and what to collect: see {@link OutputCollectorConfiguration},
110
- * defaults are set in {@link DEFAULT_OUTPUT_COLLECTOR_CONFIGURATION}
111
- */
110
+ * Send a command and collect the output
111
+ * @param command - The R command to execute (similar to {@link sendCommand})
112
+ * @param addonConfig - Further configuration on how and what to collect: see {@link OutputCollectorConfiguration},
113
+ * defaults are set in {@link DEFAULT_OUTPUT_COLLECTOR_CONFIGURATION}
114
+ */
112
115
  sendCommandWithOutput(command: string, addonConfig?: Partial<OutputCollectorConfiguration>): Promise<string[]>;
113
116
  /**
114
- * execute multiple commands in order
115
- *
116
- * @see sendCommand
117
- */
117
+ * execute multiple commands in order
118
+ * @see sendCommand
119
+ */
118
120
  sendCommands(...commands: readonly string[]): void;
119
121
  /**
120
- * clears the R environment using the `rm` command.
121
- */
122
+ * clears the R environment using the `rm` command.
123
+ */
122
124
  clearEnvironment(): void;
123
125
  /**
124
126
  * Obtain the temporary directory used by R.
@@ -126,10 +128,9 @@ export declare class RShell implements AsyncParser<string> {
126
128
  */
127
129
  obtainTmpDir(): Promise<string>;
128
130
  /**
129
- * Close the current R session, makes the object effectively invalid (can no longer be reopened etc.)
130
- *
131
- * @returns true if the operation succeeds, false otherwise
132
- */
131
+ * Close the current R session, makes the object effectively invalid (can no longer be reopened etc.)
132
+ * @returns true if the operation succeeds, false otherwise
133
+ */
133
134
  close(): boolean;
134
135
  private _sendCommand;
135
136
  }
package/r-bridge/shell.js CHANGED
@@ -61,6 +61,9 @@ exports.DEFAULT_OUTPUT_COLLECTOR_CONFIGURATION = {
61
61
  };
62
62
  exports.DEFAULT_R_PATH = (0, os_1.getPlatform)() === 'windows' ? 'R.exe' : 'R';
63
63
  let DEFAULT_R_SHELL_OPTIONS = undefined;
64
+ /**
65
+ *
66
+ */
64
67
  function getDefaultRShellOptions(config) {
65
68
  if (!DEFAULT_R_SHELL_OPTIONS) {
66
69
  DEFAULT_R_SHELL_OPTIONS = {
@@ -105,6 +108,15 @@ class RShell {
105
108
  parse(request) {
106
109
  return (0, retriever_1.retrieveParseDataFromRCode)(request, this);
107
110
  }
111
+ information() {
112
+ return {
113
+ name: 'r-shell',
114
+ rVersion: async () => await this.rVersion(),
115
+ sendCommandWithOutput: (command, addonConfig) => {
116
+ return this.sendCommandWithOutput(command, addonConfig);
117
+ }
118
+ };
119
+ }
108
120
  revive() {
109
121
  if (this.options.revive === 0 /* RShellReviveOptions.Never */) {
110
122
  return;
@@ -177,12 +189,11 @@ class RShell {
177
189
  return result.length === 1 && result[0] === 'TRUE';
178
190
  }
179
191
  /**
180
- * Send a command and collect the output
181
- *
182
- * @param command - The R command to execute (similar to {@link sendCommand})
183
- * @param addonConfig - Further configuration on how and what to collect: see {@link OutputCollectorConfiguration},
184
- * defaults are set in {@link DEFAULT_OUTPUT_COLLECTOR_CONFIGURATION}
185
- */
192
+ * Send a command and collect the output
193
+ * @param command - The R command to execute (similar to {@link sendCommand})
194
+ * @param addonConfig - Further configuration on how and what to collect: see {@link OutputCollectorConfiguration},
195
+ * defaults are set in {@link DEFAULT_OUTPUT_COLLECTOR_CONFIGURATION}
196
+ */
186
197
  async sendCommandWithOutput(command, addonConfig) {
187
198
  const config = (0, objects_1.deepMergeObject)(exports.DEFAULT_OUTPUT_COLLECTOR_CONFIGURATION, addonConfig);
188
199
  (0, log_1.expensiveTrace)(this.log, () => `> ${JSON.stringify(command)}`);
@@ -206,18 +217,17 @@ class RShell {
206
217
  }
207
218
  }
208
219
  /**
209
- * execute multiple commands in order
210
- *
211
- * @see sendCommand
212
- */
220
+ * execute multiple commands in order
221
+ * @see sendCommand
222
+ */
213
223
  sendCommands(...commands) {
214
224
  for (const element of commands) {
215
225
  this.sendCommand(element);
216
226
  }
217
227
  }
218
228
  /**
219
- * clears the R environment using the `rm` command.
220
- */
229
+ * clears the R environment using the `rm` command.
230
+ */
221
231
  clearEnvironment() {
222
232
  this.log.debug('clearing environment');
223
233
  // run rm(list=ls()) but ignore 'flowr_get_ast', which is the compile command installed
@@ -234,10 +244,9 @@ class RShell {
234
244
  return tempdir;
235
245
  }
236
246
  /**
237
- * Close the current R session, makes the object effectively invalid (can no longer be reopened etc.)
238
- *
239
- * @returns true if the operation succeeds, false otherwise
240
- */
247
+ * Close the current R session, makes the object effectively invalid (can no longer be reopened etc.)
248
+ * @returns true if the operation succeeds, false otherwise
249
+ */
241
250
  close() {
242
251
  return this.session.end([...this.tempDirs]);
243
252
  }
@@ -294,15 +303,14 @@ class RShellSession {
294
303
  this.write(`${data}${this.options.eol}`);
295
304
  }
296
305
  /**
297
- * Collect lines from the selected streams until the given condition is met or the timeout is reached
298
- *
299
- * This method does allow other listeners to consume the same input
300
- *
301
- * @param from - The stream(s) to collect the information from
302
- * @param until - If the predicate returns true, this will stop the collection and resolve the promise
303
- * @param timeout - Configuration for how and when to timeout
304
- * @param action - Event to be performed after all listeners are installed, this might be the action that triggers the output you want to collect
305
- */
306
+ * Collect lines from the selected streams until the given condition is met or the timeout is reached
307
+ *
308
+ * This method does allow other listeners to consume the same input
309
+ * @param from - The stream(s) to collect the information from
310
+ * @param until - If the predicate returns true, this will stop the collection and resolve the promise
311
+ * @param timeout - Configuration for how and when to timeout
312
+ * @param action - Event to be performed after all listeners are installed, this might be the action that triggers the output you want to collect
313
+ */
306
314
  async collectLinesUntil(from, until, timeout, action) {
307
315
  const result = [];
308
316
  let handler;
@@ -344,13 +352,11 @@ class RShellSession {
344
352
  });
345
353
  }
346
354
  /**
347
- * close the current R session, makes the object effectively invalid (can no longer be reopened etc.)
348
- *
355
+ * close the current R session, makes the object effectively invalid (can no longer be reopened etc.)
349
356
  * @param filesToUnlink - If set, these files will be unlinked before closing the session (e.g., to clean up tempfiles)
350
- *
351
- * @returns true if the kill succeeds, false otherwise
352
- * @see RShell#close
353
- */
357
+ * @returns true if the kill succeeds, false otherwise
358
+ * @see RShell#close
359
+ */
354
360
  end(filesToUnlink) {
355
361
  if (filesToUnlink !== undefined) {
356
362
  log_1.log.info(`unlinking ${filesToUnlink.length} files (${JSON.stringify(filesToUnlink)})`);
@@ -4,7 +4,6 @@ import type { ParentInformation, NormalizedAst } from '../../r-bridge/lang-4.x/a
4
4
  * The structure of the predicate that should be used to determine
5
5
  * if a given normalized node should be included in the reconstructed code,
6
6
  * independent of if it is selected by the slice or not.
7
- *
8
7
  * @see reconstructToCode
9
8
  * @see doNotAutoSelect
10
9
  * @see autoSelectLibrary
@@ -7,10 +7,9 @@ import type { AutoSelectPredicate } from './auto-select-defaults';
7
7
  * We support two formats:
8
8
  * - Line comments in the form of `# flowr@include_next_line` or `# flowr@include_this_line`.
9
9
  * - Block comments which start with `# flowr@include_start` and end with `# flowr@include_end`.
10
- * This supports nesting, but they have to appear on a single line.
10
+ * This supports nesting, but they have to appear on a single line.
11
11
  *
12
12
  * Please note that these comments have to start exactly with this content to work.
13
- *
14
13
  * @param and - Predicate to composite this one with, If you do not pass a predicate, you may assume composition with
15
14
  * {@link doNotAutoSelect}.
16
15
  */
@@ -40,10 +40,9 @@ const commentTriggerRegex = / flowr@(\w+)/;
40
40
  * We support two formats:
41
41
  * - Line comments in the form of `# flowr@include_next_line` or `# flowr@include_this_line`.
42
42
  * - Block comments which start with `# flowr@include_start` and end with `# flowr@include_end`.
43
- * This supports nesting, but they have to appear on a single line.
43
+ * This supports nesting, but they have to appear on a single line.
44
44
  *
45
45
  * Please note that these comments have to start exactly with this content to work.
46
- *
47
46
  * @param and - Predicate to composite this one with, If you do not pass a predicate, you may assume composition with
48
47
  * {@link doNotAutoSelect}.
49
48
  */
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import type { NormalizedAst } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
7
7
  import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
8
- import type { AutoSelectPredicate } from './auto-select/auto-select-defaults';
8
+ import { type AutoSelectPredicate } from './auto-select/auto-select-defaults';
9
9
  type Selection = ReadonlySet<NodeId>;
10
10
  export declare const reconstructLogger: import("tslog").Logger<import("tslog").ILogObj>;
11
11
  export interface ReconstructionResult {
@@ -15,11 +15,9 @@ export interface ReconstructionResult {
15
15
  }
16
16
  /**
17
17
  * Reconstructs parts of a normalized R ast into R code on an expression basis.
18
- *
19
18
  * @param ast - The {@link NormalizedAst|normalized ast} to be used as a basis for reconstruction
20
19
  * @param selection - The selection of nodes to be reconstructed (probably the {@link NodeId|NodeIds} identified by the slicer)
21
20
  * @param autoSelectIf - A predicate that can be used to force the reconstruction of a node (for example to reconstruct library call statements, see {@link autoSelectLibrary}, {@link doNotAutoSelect})
22
- *
23
21
  * @returns The number of lines for which `autoSelectIf` triggered, as well as the reconstructed code itself.
24
22
  */
25
23
  export declare function reconstructToCode(ast: NormalizedAst, selection: Selection, autoSelectIf?: AutoSelectPredicate): ReconstructionResult;
@@ -419,11 +419,9 @@ function removeOuterExpressionListIfApplicable(result, linesWithAutoSelected) {
419
419
  }
420
420
  /**
421
421
  * Reconstructs parts of a normalized R ast into R code on an expression basis.
422
- *
423
422
  * @param ast - The {@link NormalizedAst|normalized ast} to be used as a basis for reconstruction
424
423
  * @param selection - The selection of nodes to be reconstructed (probably the {@link NodeId|NodeIds} identified by the slicer)
425
424
  * @param autoSelectIf - A predicate that can be used to force the reconstruction of a node (for example to reconstruct library call statements, see {@link autoSelectLibrary}, {@link doNotAutoSelect})
426
- *
427
425
  * @returns The number of lines for which `autoSelectIf` triggered, as well as the reconstructed code itself.
428
426
  */
429
427
  function reconstructToCode(ast, selection, autoSelectIf = auto_select_defaults_1.doNotAutoSelect) {
@@ -6,9 +6,9 @@ import type { FlowrSearchTransformerNode, GetOutputOfTransformer, TransformerNam
6
6
  import type { SlicingCriteria } from '../slicing/criterion/parse';
7
7
  import type { ParentInformation } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
8
8
  import type { Enrichment, EnrichmentElementArguments } from './search-executor/search-enrichers';
9
- import type { MapperArguments } from './search-executor/search-mappers';
10
- import { Mapper } from './search-executor/search-mappers';
9
+ import { type MapperArguments, Mapper } from './search-executor/search-mappers';
11
10
  import type { Query } from '../queries/query';
11
+ import type TreeSitter from 'web-tree-sitter';
12
12
  type FlowrCriteriaReturn<C extends SlicingCriteria> = FlowrSearchElements<ParentInformation, C extends [] ? never : C extends [infer _] ? [
13
13
  FlowrSearchElement<ParentInformation>
14
14
  ] : FlowrSearchElement<ParentInformation>[]>;
@@ -29,6 +29,11 @@ export declare const FlowrSearchGenerator: {
29
29
  * Please note that, due to the fact that not every query involves dataflow nodes, the search may not contain any elements at all for certain queries.
30
30
  */
31
31
  readonly fromQuery: (...from: readonly Query[]) => FlowrSearchBuilder<"from-query", [], ParentInformation, FlowrSearchElements<ParentInformation, FlowrSearchElement<ParentInformation>[]>>;
32
+ /**
33
+ * Initializes a new search query based on the results of the given tree-sitter syntax query.
34
+ * Please note that this search generator is incompatible with the {@link RShell} parser and only works when using flowR with the {@link TreeSitterExecutor}.
35
+ */
36
+ readonly syntax: (source: TreeSitter.Query | string, ...captures: readonly string[]) => FlowrSearchBuilder<"from-query", [], ParentInformation, FlowrSearchElements<ParentInformation, FlowrSearchElement<ParentInformation>[]>>;
32
37
  /**
33
38
  * Returns all elements (nodes/dataflow vertices) from the given data.
34
39
  */
@@ -87,6 +92,11 @@ export declare const Q: {
87
92
  * Please note that, due to the fact that not every query involves dataflow nodes, the search may not contain any elements at all for certain queries.
88
93
  */
89
94
  readonly fromQuery: (...from: readonly Query[]) => FlowrSearchBuilder<"from-query", [], ParentInformation, FlowrSearchElements<ParentInformation, FlowrSearchElement<ParentInformation>[]>>;
95
+ /**
96
+ * Initializes a new search query based on the results of the given tree-sitter syntax query.
97
+ * Please note that this search generator is incompatible with the {@link RShell} parser and only works when using flowR with the {@link TreeSitterExecutor}.
98
+ */
99
+ readonly syntax: (source: TreeSitter.Query | string, ...captures: readonly string[]) => FlowrSearchBuilder<"from-query", [], ParentInformation, FlowrSearchElements<ParentInformation, FlowrSearchElement<ParentInformation>[]>>;
90
100
  /**
91
101
  * Returns all elements (nodes/dataflow vertices) from the given data.
92
102
  */
@@ -130,7 +140,6 @@ export type FlowrSearchBuilderType<Generator extends GeneratorNames = GeneratorN
130
140
  /**
131
141
  * The search query is a combination of a generator and a list of transformers
132
142
  * and allows this view to pass such queries in a serialized form.
133
- *
134
143
  * @typeParam Transformers - The list of transformers that are applied to the generator's output.
135
144
  */
136
145
  export interface FlowrSearch<Info = ParentInformation, _Generator extends GeneratorNames = GeneratorNames, _Transformers extends readonly TransformerNames[] = readonly TransformerNames[], _ElementType = FlowrSearchElements<Info, FlowrSearchElement<Info>[]>> {
@@ -143,7 +152,6 @@ type FlowrSearchBuilderOut<Generator extends GeneratorNames, Transformers extend
143
152
  * Please use the {@link Q} object to create an object of this class!
144
153
  * In the end, you _can_ freeze the search by calling {@link FlowrSearchBuilder#build},
145
154
  * however, the search executors may do that for you.
146
- *
147
155
  * @see {@link FlowrSearchGenerator}
148
156
  * @see {@link FlowrSearch}
149
157
  * @see {@link FlowrSearchLike}
@@ -207,7 +215,6 @@ export declare class FlowrSearchBuilder<Generator extends GeneratorNames, Transf
207
215
  unique(): FlowrSearchBuilderOut<Generator, Transformers, Info, 'unique'>;
208
216
  /**
209
217
  * Construct the final search (this may happen automatically with most search handlers).
210
- *
211
218
  * @param shouldOptimize - This may optimize the search.
212
219
  */
213
220
  build(shouldOptimize?: boolean): FlowrSearch<Info, Generator, Transformers, ElementType>;
@@ -26,6 +26,13 @@ exports.FlowrSearchGenerator = {
26
26
  fromQuery(...from) {
27
27
  return new FlowrSearchBuilder({ type: 'generator', name: 'from-query', args: { from } });
28
28
  },
29
+ /**
30
+ * Initializes a new search query based on the results of the given tree-sitter syntax query.
31
+ * Please note that this search generator is incompatible with the {@link RShell} parser and only works when using flowR with the {@link TreeSitterExecutor}.
32
+ */
33
+ syntax(source, ...captures) {
34
+ return new FlowrSearchBuilder({ type: 'generator', name: 'syntax', args: { source, captures } });
35
+ },
29
36
  /**
30
37
  * Returns all elements (nodes/dataflow vertices) from the given data.
31
38
  */
@@ -95,7 +102,6 @@ exports.Q = exports.FlowrSearchGenerator;
95
102
  * Please use the {@link Q} object to create an object of this class!
96
103
  * In the end, you _can_ freeze the search by calling {@link FlowrSearchBuilder#build},
97
104
  * however, the search executors may do that for you.
98
- *
99
105
  * @see {@link FlowrSearchGenerator}
100
106
  * @see {@link FlowrSearch}
101
107
  * @see {@link FlowrSearchLike}
@@ -204,7 +210,6 @@ class FlowrSearchBuilder {
204
210
  }
205
211
  /**
206
212
  * Construct the final search (this may happen automatically with most search handlers).
207
- *
208
213
  * @param shouldOptimize - This may optimize the search.
209
214
  */
210
215
  build(shouldOptimize = true) {
@@ -1,7 +1,7 @@
1
- import type { FlowrSearch, FlowrSearchLike, SearchOutput } from './flowr-search-builder';
2
- import type { FlowrAnalysisProvider } from '../project/flowr-analyzer';
1
+ import { type FlowrSearch, type FlowrSearchLike, type SearchOutput } from './flowr-search-builder';
2
+ import type { ReadonlyFlowrAnalysisProvider } from '../project/flowr-analyzer';
3
3
  export type GetSearchElements<S> = S extends FlowrSearch<infer _, infer _, infer _, infer Elements> ? Elements : never;
4
4
  /**
5
5
  * Run a search with the given search query and data.
6
6
  */
7
- export declare function runSearch<S extends FlowrSearchLike>(search: S, input: FlowrAnalysisProvider): Promise<GetSearchElements<SearchOutput<S>>>;
7
+ export declare function runSearch<S extends FlowrSearchLike>(search: S, input: ReadonlyFlowrAnalysisProvider): Promise<GetSearchElements<SearchOutput<S>>>;
@@ -2,7 +2,7 @@ import { RType } from '../r-bridge/lang-4.x/ast/model/type';
2
2
  import { VertexType } from '../dataflow/graph/vertex';
3
3
  import type { ParentInformation } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
4
4
  import type { FlowrSearchElement } from './flowr-search';
5
- import type { Enrichment } from './search-executor/search-enrichers';
5
+ import { type Enrichment } from './search-executor/search-enrichers';
6
6
  import type { BuiltInMappingName } from '../dataflow/environments/built-in';
7
7
  import type { DataflowInformation } from '../dataflow/info';
8
8
  export type FlowrFilterName = keyof typeof FlowrFilters;
@@ -52,6 +52,9 @@ export interface OriginKindArgs {
52
52
  matchType?: 'some' | 'every';
53
53
  keepNonFunctionCalls?: boolean;
54
54
  }
55
+ /**
56
+ * Helper to create a regular expression that matches function names, ignoring their package.
57
+ */
55
58
  export declare function testFunctionsIgnoringPackage(functions: readonly string[]): RegExp;
56
59
  type ValidFilterTypes<F extends FlowrFilter = FlowrFilter> = FlowrFilterName | FlowrFilterWithArgs<F, FlowrFilterArgs<F>> | RType | VertexType;
57
60
  /**
@@ -100,7 +103,14 @@ export declare class FlowrFilterCombinator {
100
103
  private unpack;
101
104
  get(): BooleanNode;
102
105
  }
106
+ /**
107
+ * Converts the given binary tree to a string representation.
108
+ */
103
109
  export declare function binaryTreeToString(tree: BooleanNode): string;
110
+ /**
111
+ * Checks whether the given value is a binary tree combinator.
112
+ * @see {@link FlowrFilterCombinator}
113
+ */
104
114
  export declare function isBinaryTree(tree: unknown): tree is {
105
115
  tree: BooleanNode;
106
116
  };
@@ -110,5 +120,8 @@ interface FilterData {
110
120
  dataflow: DataflowInformation;
111
121
  };
112
122
  }
123
+ /**
124
+ * Evaluates the given filter expression against the provided data.
125
+ */
113
126
  export declare function evalFilter<Filter extends FlowrFilter>(filter: FlowrFilterExpression<Filter>, data: FilterData): boolean;
114
127
  export {};