@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
@@ -29,9 +29,9 @@ class Stopwatch {
29
29
  class Measurements {
30
30
  measurements = new Map();
31
31
  /**
32
- * Start a timer for the given key, and guards that this is the first time this key is started.
33
- * Call {@link IStoppableStopwatch#stop} on the returned stopwatch to stop the timer.
34
- */
32
+ * Start a timer for the given key, and guards that this is the first time this key is started.
33
+ * Call {@link IStoppableStopwatch#stop} on the returned stopwatch to stop the timer.
34
+ */
35
35
  start(key) {
36
36
  // we guard *before* starting so there is no additional time penalty
37
37
  (0, assert_1.guard)(!this.measurements.has(key), `already started stop watch for ${JSON.stringify(key)}`);
@@ -41,9 +41,9 @@ class Measurements {
41
41
  return stopwatch;
42
42
  }
43
43
  /**
44
- * Automatically call {@link Measurements#start | start} and the corresponding stop to measure the execution time of the given function.
45
- * @see {@link measureAsync}
46
- */
44
+ * Automatically call {@link Measurements#start | start} and the corresponding stop to measure the execution time of the given function.
45
+ * @see {@link measureAsync}
46
+ */
47
47
  measure(key, fn) {
48
48
  const stopwatch = this.start(key);
49
49
  const result = fn();
@@ -51,13 +51,11 @@ class Measurements {
51
51
  return result;
52
52
  }
53
53
  /**
54
- * Similar to {@link measure}, but await the promise as part of the measurement
55
- *
54
+ * Similar to {@link measure}, but await the promise as part of the measurement
56
55
  * @param key - The key to write the resulting measurement to
57
56
  * @param fn - The function to measure
58
- *
59
- * @see measure
60
- */
57
+ * @see measure
58
+ */
61
59
  async measureAsync(key, fn) {
62
60
  const stopwatch = this.start(key);
63
61
  const result = await fn();
@@ -65,8 +63,8 @@ class Measurements {
65
63
  return result;
66
64
  }
67
65
  /**
68
- * Retrieve all measure-results, requires that all stop-watches that have been started have also been stopped.
69
- */
66
+ * Retrieve all measure-results, requires that all stop-watches that have been started have also been stopped.
67
+ */
70
68
  get() {
71
69
  const result = new Map();
72
70
  for (const [key, stopwatch] of this.measurements) {
@@ -1,2 +1,8 @@
1
+ /**
2
+ * Processes a single run measurement line from the benchmark output.
3
+ */
1
4
  export declare function processRunMeasurement(line: Buffer, fileNum: number, lineNum: number, textOutputAppendPath: string, rawOutputPath: string): Promise<void>;
5
+ /**
6
+ * Processes multiple summarized run measurement files and appends an overall summary to the given path.
7
+ */
2
8
  export declare function processSummarizedRunMeasurement(runNum: number, summarizedFiles: string[], appendPath: string): void;
@@ -12,6 +12,9 @@ const assert_1 = require("../../../util/assert");
12
12
  const ansi_1 = require("../../../util/text/ansi");
13
13
  const json_1 = require("../../../util/json");
14
14
  const print_1 = require("../../stats/print");
15
+ /**
16
+ * Processes a single run measurement line from the benchmark output.
17
+ */
15
18
  async function processRunMeasurement(line, fileNum, lineNum, textOutputAppendPath, rawOutputPath) {
16
19
  let got = JSON.parse(line.toString());
17
20
  console.log(`[file ${fileNum}, line ${lineNum}] Summarize for ${got.filename}`);
@@ -54,6 +57,9 @@ async function processRunMeasurement(line, fileNum, lineNum, textOutputAppendPat
54
57
  console.log(` - Append textual summary to ${textOutputAppendPath}`);
55
58
  fs_1.default.appendFileSync(textOutputAppendPath, `${(0, print_1.stats2string)(summarized)}\n`);
56
59
  }
60
+ /**
61
+ * Processes multiple summarized run measurement files and appends an overall summary to the given path.
62
+ */
57
63
  function processSummarizedRunMeasurement(runNum, summarizedFiles, appendPath) {
58
64
  console.log(`Summarizing all file statistics for run ${runNum}`);
59
65
  const summaries = [];
@@ -1,5 +1,5 @@
1
1
  import type { Reduction, SummarizedSlicerStats, TimePerToken } from '../data';
2
- import type { SummarizedMeasurement } from '../../../util/summarizer';
2
+ import { type SummarizedMeasurement } from '../../../util/summarizer';
3
3
  import type { PerSliceStats, SlicerStats } from '../../stats/stats';
4
4
  import type { SlicingCriteria } from '../../../slicing/criterion/parse';
5
5
  import type { RShellEngineConfig } from '../../../config';
@@ -8,7 +8,19 @@ import type { RShellEngineConfig } from '../../../config';
8
8
  * @see Slicer
9
9
  */
10
10
  export declare function summarizeSlicerStats(stats: SlicerStats, report?: (criteria: SlicingCriteria, stats: PerSliceStats) => void, engineConf?: RShellEngineConfig): Promise<Readonly<SummarizedSlicerStats>>;
11
+ /**
12
+ * Summarizes the given measurements by calculating the min, max, median, mean, standard deviation, and total.
13
+ */
11
14
  export declare function summarizeSummarizedMeasurement(data: SummarizedMeasurement[]): SummarizedMeasurement;
15
+ /**
16
+ * Summarizes the given reductions of summarized measurements.
17
+ */
12
18
  export declare function summarizeSummarizedReductions(reductions: Reduction<SummarizedMeasurement>[]): Reduction<SummarizedMeasurement>;
19
+ /**
20
+ * Summarizes the given times per token by calculating the min, max, median, mean, and standard deviation for each measurement.
21
+ */
13
22
  export declare function summarizeSummarizedTimePerToken(times: TimePerToken[]): TimePerToken;
23
+ /**
24
+ * Summarizes the given times per token by calculating the min, max, median, mean, and standard deviation for each measurement.
25
+ */
14
26
  export declare function summarizeTimePerToken(times: TimePerToken<number>[]): TimePerToken;
@@ -299,6 +299,9 @@ function summarizePerOperationStats(nodeStats) {
299
299
  }
300
300
  return perOperationNumber;
301
301
  }
302
+ /**
303
+ * Summarizes the given measurements by calculating the min, max, median, mean, standard deviation, and total.
304
+ */
302
305
  function summarizeSummarizedMeasurement(data) {
303
306
  data = data.filter(assert_1.isNotUndefined);
304
307
  const min = Math.min(...data.map(d => d.min).filter(assert_1.isNotUndefined));
@@ -312,6 +315,9 @@ function summarizeSummarizedMeasurement(data) {
312
315
  const total = (0, arrays_1.arraySum)(data.map(d => d.total).filter(assert_1.isNotUndefined));
313
316
  return { min, max, median, mean, std, total };
314
317
  }
318
+ /**
319
+ * Summarizes the given reductions of summarized measurements.
320
+ */
315
321
  function summarizeSummarizedReductions(reductions) {
316
322
  return {
317
323
  numberOfDataflowNodes: summarizeSummarizedMeasurement(reductions.map(r => r.numberOfDataflowNodes)),
@@ -334,12 +340,18 @@ function summarizeReductions(reductions) {
334
340
  numberOfDataflowNodes: (0, summarizer_1.summarizeMeasurement)(reductions.map(r => r.numberOfDataflowNodes).filter(assert_1.isNotUndefined))
335
341
  };
336
342
  }
343
+ /**
344
+ * Summarizes the given times per token by calculating the min, max, median, mean, and standard deviation for each measurement.
345
+ */
337
346
  function summarizeSummarizedTimePerToken(times) {
338
347
  return {
339
348
  raw: summarizeSummarizedMeasurement(times.map(t => t.raw)),
340
349
  normalized: summarizeSummarizedMeasurement(times.map(t => t.normalized)),
341
350
  };
342
351
  }
352
+ /**
353
+ * Summarizes the given times per token by calculating the min, max, median, mean, and standard deviation for each measurement.
354
+ */
343
355
  function summarizeTimePerToken(times) {
344
356
  return {
345
357
  raw: (0, summarizer_1.summarizeMeasurement)(times.map(t => t.raw)),
@@ -1,2 +1,5 @@
1
1
  import type { UltimateSlicerStats } from '../data';
2
+ /**
3
+ *
4
+ */
2
5
  export declare function writeGraphOutput(ultimate: UltimateSlicerStats, outputGraphPath: string): void;
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.writeGraphOutput = writeGraphOutput;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const json_1 = require("../../../util/json");
9
+ /**
10
+ *
11
+ */
9
12
  function writeGraphOutput(ultimate, outputGraphPath) {
10
13
  console.log(`Producing benchmark graph data (${outputGraphPath})...`);
11
14
  const data = [];
@@ -1,5 +1,17 @@
1
1
  import type { SummarizedSlicerStats, UltimateSlicerStats } from '../data';
2
+ /**
3
+ * This big function summarizes multiple summarized stats into one ultimate stat.
4
+ */
2
5
  export declare function summarizeAllSummarizedStats(stats: SummarizedSlicerStats[]): UltimateSlicerStats;
6
+ /**
7
+ * This big function summarizes multiple ultimate stats into one.
8
+ */
3
9
  export declare function summarizeAllUltimateStats(stats: UltimateSlicerStats[]): UltimateSlicerStats;
10
+ /**
11
+ * Processes the next summary line.
12
+ */
4
13
  export declare function processNextSummary(line: Buffer, allSummarized: SummarizedSlicerStats[]): void;
14
+ /**
15
+ * Processes the next ultimate summary line.
16
+ */
5
17
  export declare function processNextUltimateSummary(line: Buffer, allSummarized: UltimateSlicerStats[]): void;
@@ -11,6 +11,9 @@ const assert_1 = require("../../../util/assert");
11
11
  const stats_1 = require("../../stats/stats");
12
12
  const semantics_1 = require("../../../abstract-interpretation/data-frame/semantics");
13
13
  const arrays_1 = require("../../../util/collections/arrays");
14
+ /**
15
+ * This big function summarizes multiple summarized stats into one ultimate stat.
16
+ */
14
17
  function summarizeAllSummarizedStats(stats) {
15
18
  const commonMeasurements = new defaultmap_1.DefaultMap(() => []);
16
19
  const perSliceMeasurements = new defaultmap_1.DefaultMap(() => []);
@@ -144,6 +147,9 @@ function summarizeAllSummarizedStats(stats) {
144
147
  } : undefined
145
148
  };
146
149
  }
150
+ /**
151
+ * This big function summarizes multiple ultimate stats into one.
152
+ */
147
153
  function summarizeAllUltimateStats(stats) {
148
154
  return {
149
155
  // these should be deterministic, so we don't technically need to use max, but we do just in case something unexpected happens :)
@@ -225,6 +231,9 @@ function summarizeAllUltimateStats(stats) {
225
231
  } : undefined
226
232
  };
227
233
  }
234
+ /**
235
+ * Processes the next summary line.
236
+ */
228
237
  function processNextSummary(line, allSummarized) {
229
238
  let got = JSON.parse(line.toString());
230
239
  got = {
@@ -251,6 +260,9 @@ function processNextSummary(line, allSummarized) {
251
260
  };
252
261
  allSummarized.push(got.summarize);
253
262
  }
263
+ /**
264
+ * Processes the next ultimate summary line.
265
+ */
254
266
  function processNextUltimateSummary(line, allSummarized) {
255
267
  let got = JSON.parse(line.toString());
256
268
  got = {
@@ -3,8 +3,7 @@
3
3
  * @module
4
4
  */
5
5
  import type { UltimateSlicerStats } from './data';
6
- import type { CommonSummarizerConfiguration } from '../../util/summarizer';
7
- import { Summarizer } from '../../util/summarizer';
6
+ import { type CommonSummarizerConfiguration, Summarizer } from '../../util/summarizer';
8
7
  export interface BenchmarkSummarizerConfiguration extends CommonSummarizerConfiguration {
9
8
  /**
10
9
  * If given, produce graph data output (e.g., for the benchmark visualization) to the given path
@@ -90,7 +90,6 @@ async function benchmark() {
90
90
  }
91
91
  /**
92
92
  * Collect all R files from the given paths.
93
- *
94
93
  * @param files - list of files to append to
95
94
  * @param paths - list of paths to search for R files
96
95
  * @param getBaseDir - function to get the base directory of a path
@@ -104,7 +103,6 @@ async function collectFiles(files, paths, getBaseDir) {
104
103
  }
105
104
  /**
106
105
  * Find the common base directory of a list of paths.
107
- *
108
106
  * @param paths - list of paths
109
107
  * @returns the common base directory
110
108
  */
@@ -1,3 +1,9 @@
1
- import type { FeatureKey } from '../../statistics/features/feature';
1
+ import { type FeatureKey } from '../../statistics/features/feature';
2
+ /**
3
+ * Validate that the given features are known by flowR.
4
+ */
2
5
  export declare function validateFeatures(features: (string[] | ['all'] | FeatureKey[])): Set<FeatureKey>;
6
+ /**
7
+ * Retrieve the archive name for the given path.
8
+ */
3
9
  export declare function retrieveArchiveName(p: string): string;
@@ -7,6 +7,9 @@ exports.validateFeatures = validateFeatures;
7
7
  exports.retrieveArchiveName = retrieveArchiveName;
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const feature_1 = require("../../statistics/features/feature");
10
+ /**
11
+ * Validate that the given features are known by flowR.
12
+ */
10
13
  function validateFeatures(features) {
11
14
  for (const feature of features) {
12
15
  if (feature === 'all') {
@@ -22,6 +25,9 @@ function validateFeatures(features) {
22
25
  }
23
26
  return features[0] === 'all' ? feature_1.allFeatureNames : new Set(features);
24
27
  }
28
+ /**
29
+ * Retrieve the archive name for the given path.
30
+ */
25
31
  function retrieveArchiveName(p) {
26
32
  const basepath = path_1.default.normalize(p);
27
33
  return `${basepath.endsWith(path_1.default.sep) ? basepath.substring(0, basepath.length - 1) : basepath}.tar.gz`;
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * The goal of this module is simply to streamline the creation of new scripts.
3
- *
4
3
  * @module
5
4
  */
6
5
  import { scripts } from './scripts-info';
@@ -18,4 +17,7 @@ export interface HelpContent {
18
17
  * Additionally, you can pass usage examples that may make use of the formatting instructions `{italic x}` and `{bold x}`.
19
18
  */
20
19
  export declare function helpForOptions(script: keyof typeof scripts, content: HelpContent): string;
20
+ /**
21
+ * Processes the command line arguments for a given script.
22
+ */
21
23
  export declare function processCommandLineArgs<T extends CommonOptions>(script: keyof typeof scripts, requireAdditionally: (keyof T)[], help: HelpContent): T;
@@ -7,7 +7,6 @@ exports.helpForOptions = helpForOptions;
7
7
  exports.processCommandLineArgs = processCommandLineArgs;
8
8
  /**
9
9
  * The goal of this module is simply to streamline the creation of new scripts.
10
- *
11
10
  * @module
12
11
  */
13
12
  const scripts_info_1 = require("./scripts-info");
@@ -35,6 +34,9 @@ function helpForOptions(script, content) {
35
34
  }
36
35
  ]);
37
36
  }
37
+ /**
38
+ * Processes the command line arguments for a given script.
39
+ */
38
40
  function processCommandLineArgs(script, requireAdditionally, help) {
39
41
  const options = (0, command_line_args_1.default)(scripts_info_1.scripts[script].options);
40
42
  if (options.help) {
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * This file contains the references to all scripts, as well as their explanations and arguments.
3
- *
4
3
  * @module
5
4
  */
6
5
  import type { OptionDefinition } from 'command-line-usage';
@@ -89,5 +88,8 @@ declare const _scripts: {
89
88
  };
90
89
  };
91
90
  export declare const scripts: Record<keyof typeof _scripts, ScriptInformation>;
91
+ /**
92
+ * Given a set of option definitions and previously provided arguments, determine which options can still be added.
93
+ */
92
94
  export declare function getValidOptionsForCompletion(options: readonly OptionDefinition[], prevArgs: readonly string[]): string[];
93
95
  export {};
@@ -68,6 +68,9 @@ const _scripts = {
68
68
  }
69
69
  };
70
70
  exports.scripts = _scripts;
71
+ /**
72
+ * Given a set of option definitions and previously provided arguments, determine which options can still be added.
73
+ */
71
74
  function getValidOptionsForCompletion(options, prevArgs) {
72
75
  return options.filter(o => canAddOption(o, prevArgs)).flatMap(o => {
73
76
  const args = [(0, repl_commands_1.asOptionName)(o.name)];
@@ -1,4 +1,7 @@
1
1
  import type { OptionDefinition } from 'command-line-usage';
2
+ /**
3
+ * Returns a comma-separated list of all available master scripts.
4
+ */
2
5
  export declare function getScriptsText(): string;
3
6
  export declare const flowrMainOptionDefinitions: OptionDefinition[];
4
7
  export declare const defaultConfigFile = "flowr.json";
@@ -4,6 +4,9 @@ exports.defaultConfigFile = exports.flowrMainOptionDefinitions = void 0;
4
4
  exports.getScriptsText = getScriptsText;
5
5
  const scripts_info_1 = require("./common/scripts-info");
6
6
  let _scriptsText;
7
+ /**
8
+ * Returns a comma-separated list of all available master scripts.
9
+ */
7
10
  function getScriptsText() {
8
11
  if (_scriptsText === undefined) {
9
12
  _scriptsText = Array.from(Object.entries(scripts_info_1.scripts).filter(([, { type }]) => type === 'master script'), ([k]) => k).join(', ');
@@ -1,5 +1,8 @@
1
1
  import type { ReplCodeCommand, ReplCommand } from './repl-main';
2
2
  export declare const helpCommand: ReplCommand;
3
+ /**
4
+ * Retrieve all REPL commands (including those generated from master scripts)
5
+ */
3
6
  export declare function getReplCommands(): Record<string, ReplCommand | ReplCodeCommand>;
4
7
  /**
5
8
  * The names of all commands including their aliases (but without the leading `:`)
@@ -10,6 +13,16 @@ export declare function getCommandNames(): string[];
10
13
  * @param command - The name of the command (without the leading `:`)
11
14
  */
12
15
  export declare function getCommand(command: string): ReplCodeCommand | ReplCommand | undefined;
16
+ /**
17
+ * Formats the given argument name as a command line option (with single or double dashes).
18
+ */
13
19
  export declare function asOptionName(argument: string): string;
20
+ /**
21
+ * Retrieve the length of the longest command name (including star and brackets if applicable)
22
+ */
14
23
  export declare function longestCommandName(): number;
24
+ /**
25
+ * Pad the given command string to the length of the longest command name plus two spaces.
26
+ * @see {@link longestCommandName}
27
+ */
15
28
  export declare function padCmd<T>(string: T): string;
@@ -20,7 +20,6 @@ const ansi_1 = require("../../../util/text/ansi");
20
20
  const args_1 = require("../../../util/text/args");
21
21
  const assert_1 = require("../../../util/assert");
22
22
  const scripts_info_1 = require("../../common/scripts-info");
23
- const repl_lineage_1 = require("./repl-lineage");
24
23
  const repl_query_1 = require("./repl-query");
25
24
  function printHelpForScript(script, f, starredVersion) {
26
25
  let base = ` ${(0, ansi_1.bold)(padCmd(':' + script[0] + (starredVersion ? '[*]' : '')), f)}${script[1].description}`;
@@ -88,7 +87,6 @@ const _commands = {
88
87
  'controlflow*': repl_cfg_1.controlflowStarCommand,
89
88
  'controlflowbb': repl_cfg_1.controlflowBbCommand,
90
89
  'controlflowbb*': repl_cfg_1.controlflowBbStarCommand,
91
- 'lineage': repl_lineage_1.lineageCommand,
92
90
  'query': repl_query_1.queryCommand,
93
91
  'query*': repl_query_1.queryStarCommand
94
92
  };
@@ -102,6 +100,9 @@ function hasModule(path) {
102
100
  return false;
103
101
  }
104
102
  }
103
+ /**
104
+ * Retrieve all REPL commands (including those generated from master scripts)
105
+ */
105
106
  function getReplCommands() {
106
107
  if (commandsInitialized) {
107
108
  return _commands;
@@ -168,6 +169,9 @@ function getCommand(command) {
168
169
  }
169
170
  return getReplCommands()[commandMapping[command]];
170
171
  }
172
+ /**
173
+ * Formats the given argument name as a command line option (with single or double dashes).
174
+ */
171
175
  function asOptionName(argument) {
172
176
  if (argument.length == 1) {
173
177
  return `-${argument}`;
@@ -177,12 +181,19 @@ function asOptionName(argument) {
177
181
  }
178
182
  }
179
183
  let _longestCommandName = undefined;
184
+ /**
185
+ * Retrieve the length of the longest command name (including star and brackets if applicable)
186
+ */
180
187
  function longestCommandName() {
181
188
  if (_longestCommandName === undefined) {
182
189
  _longestCommandName = Array.from(Object.keys(getReplCommands()), k => k.endsWith('*') ? k.length + 3 : k.length).reduce((p, n) => Math.max(p, n), 0);
183
190
  }
184
191
  return _longestCommandName;
185
192
  }
193
+ /**
194
+ * Pad the given command string to the length of the longest command name plus two spaces.
195
+ * @see {@link longestCommandName}
196
+ */
186
197
  function padCmd(string) {
187
198
  return String(string).padEnd(longestCommandName() + 2, ' ');
188
199
  }
@@ -1,3 +1,7 @@
1
1
  import type { ReplCommand, ReplCommandInformation } from './repl-main';
2
+ /**
3
+ * Tries to execute the given R shell command.
4
+ * If not allowed, an error message is printed to the output.
5
+ */
2
6
  export declare function tryExecuteRShellCommand({ output, analyzer, allowRSessionAccess, remainingLine }: ReplCommandInformation): Promise<void>;
3
7
  export declare const executeCommand: ReplCommand;
@@ -3,8 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.executeCommand = void 0;
4
4
  exports.tryExecuteRShellCommand = tryExecuteRShellCommand;
5
5
  const ansi_1 = require("../../../util/text/ansi");
6
+ /**
7
+ * Tries to execute the given R shell command.
8
+ * If not allowed, an error message is printed to the output.
9
+ */
6
10
  async function tryExecuteRShellCommand({ output, analyzer, allowRSessionAccess, remainingLine }) {
7
- const parserInfo = await analyzer.parserInformation();
11
+ const parserInfo = analyzer.parserInformation();
8
12
  if (!allowRSessionAccess) {
9
13
  output.stderr(`${output.formatter.format('You are not allowed to execute arbitrary R code.', { style: 1 /* FontStyles.Bold */, color: 1 /* Colors.Red */, effect: ansi_1.ColorEffect.Foreground })}
10
14
  If you want to do so, please restart flowR with the ${output.formatter.format('--r-session-access', { style: 1 /* FontStyles.Bold */ })} flag${parserInfo.name !== 'r-shell' ? '. Additionally, please enable the r-shell engine, e.g., with ' + output.formatter.format('--default-engine r-shell', { style: 1 /* FontStyles.Bold */ }) : ''}. Please be careful of the security implications of this action. When running flowR with npm, you have to use an extra ${output.formatter.format('--', { style: 1 /* FontStyles.Bold */ })} to separate flowR from npm arguments.`);
@@ -18,7 +22,7 @@ If you want to do so, please restart flowR with the ${output.formatter.format('-
18
22
  }
19
23
  async function executeRShellCommand(output, analyzer, statement) {
20
24
  try {
21
- const result = await analyzer.sendCommandWithOutput(statement, {
25
+ const result = await analyzer.parserInformation().sendCommandWithOutput(statement, {
22
26
  from: 'both',
23
27
  automaticallyTrimOutput: true
24
28
  });
@@ -1,11 +1,10 @@
1
- import type { OutputFormatter } from '../../../util/text/ansi';
2
- import type { FlowrAnalysisProvider } from '../../../project/flowr-analyzer';
1
+ import { type OutputFormatter } from '../../../util/text/ansi';
2
+ import type { FlowrAnalysisProvider, ReadonlyFlowrAnalysisProvider } from '../../../project/flowr-analyzer';
3
3
  /**
4
4
  * Defines the main interface for output of the repl.
5
5
  * This allows us to redirect it (e.g., in the case of a server connection or tests).
6
6
  *
7
7
  * The formatter allows to dynamically change the use of ansi escape sequences (see {@link OutputFormatter})
8
- *
9
8
  * @see standardReplOutput
10
9
  */
11
10
  export interface ReplOutput {
@@ -24,7 +23,7 @@ export declare const standardReplOutput: ReplOutput;
24
23
  export interface ReplCommandInformation {
25
24
  output: ReplOutput;
26
25
  allowRSessionAccess: boolean;
27
- analyzer: FlowrAnalysisProvider;
26
+ analyzer: ReadonlyFlowrAnalysisProvider;
28
27
  remainingLine: string;
29
28
  }
30
29
  /**
@@ -58,6 +57,14 @@ export interface ReplCommand extends ReplBaseCommand {
58
57
  */
59
58
  fn: (info: ReplCommandInformation) => Promise<void> | void;
60
59
  }
60
+ /**
61
+ * Result of parsing a REPL code command line.
62
+ * `rCode` may be undefined, in which case the R code of a previous REPL command will be re-used.
63
+ */
64
+ interface ParsedReplLine {
65
+ rCode: string | undefined;
66
+ remaining: string[];
67
+ }
61
68
  /**
62
69
  * Repl command that uses the {@link FlowrAnalyzer}
63
70
  */
@@ -69,10 +76,9 @@ export interface ReplCodeCommand extends ReplBaseCommand {
69
76
  */
70
77
  fn: (info: ReplCodeCommandInformation) => Promise<void> | void;
71
78
  /**
72
- * Argument parser function which handles the input given after the repl command
79
+ * Argument parser function which handles the input given after the repl command.
80
+ * If no R code is returned, the input R code of a previous REPL command will be re-used for processing the current REPL command.
73
81
  */
74
- argsParser: (remainingLine: string) => {
75
- input: string | undefined;
76
- remaining: string[];
77
- };
82
+ argsParser: (remainingLine: string) => ParsedReplLine;
78
83
  }
84
+ export {};
@@ -133,13 +133,13 @@ exports.parseCommand = {
133
133
  argsParser: (line) => {
134
134
  return {
135
135
  // Threat the whole input line as R code
136
- input: (0, retriever_1.removeRQuotes)(line.trim()),
136
+ rCode: (0, retriever_1.removeRQuotes)(line.trim()),
137
137
  remaining: []
138
138
  };
139
139
  },
140
140
  fn: async ({ output, analyzer }) => {
141
141
  const result = await analyzer.parse();
142
- const parserInfo = await analyzer.parserInformation();
142
+ const parserInfo = analyzer.parserInformation();
143
143
  if (parserInfo.name === 'r-shell') {
144
144
  const object = (0, format_1.convertPreparedParsedData)((0, format_1.prepareParsedData)(result.parsed));
145
145
  output.stdout(depthListToTextTree(toDepthMap(object), output.formatter));
@@ -29,15 +29,19 @@ async function processQueryArgs(output, analyzer, remainingArgs) {
29
29
  return;
30
30
  }
31
31
  let parsedQuery;
32
+ let input;
32
33
  if (query.startsWith('@')) {
33
34
  const queryName = query.slice(1);
34
35
  const queryObj = query_1.SupportedQueries[queryName];
35
36
  if (queryObj?.fromLine) {
36
- const q = queryObj.fromLine(remainingArgs, analyzer.flowrConfig);
37
+ const parseResult = queryObj.fromLine(output, remainingArgs, analyzer.flowrConfig);
38
+ const q = parseResult.query;
37
39
  parsedQuery = q ? (Array.isArray(q) ? q : [q]) : [];
40
+ input = parseResult.rCode;
38
41
  }
39
42
  else {
40
43
  parsedQuery = [{ type: query.slice(1) }];
44
+ input = remainingArgs.join(' ').trim();
41
45
  }
42
46
  const validationResult = (0, query_1.QueriesSchema)().validate(parsedQuery);
43
47
  if (validationResult.error) {
@@ -54,10 +58,15 @@ async function processQueryArgs(output, analyzer, remainingArgs) {
54
58
  printHelp(output);
55
59
  return;
56
60
  }
61
+ input = remainingArgs.join(' ').trim();
57
62
  }
58
63
  else {
59
64
  parsedQuery = [{ type: 'call-context', callName: query }];
60
65
  }
66
+ if (input) {
67
+ analyzer.reset();
68
+ analyzer.addRequest((0, retriever_1.requestFromInput)(input));
69
+ }
61
70
  return {
62
71
  query: await (0, query_1.executeQueries)({
63
72
  analyzer,
@@ -68,13 +77,13 @@ async function processQueryArgs(output, analyzer, remainingArgs) {
68
77
  }
69
78
  /**
70
79
  * Function for splitting the input line.
71
- * The first token is the query command.
72
- * The rest of the line is treated as input code.
80
+ * All input is treated as arguments, no R code is separated so that the individual queries can handle it.
81
+ * @param line - The input line
73
82
  */
74
83
  function parseArgs(line) {
75
84
  const args = (0, args_1.splitAtEscapeSensitive)(line);
76
85
  return {
77
- input: args[1].trim() === 'help' ? '' : args.slice(1).join(' ').trim(),
86
+ rCode: undefined,
78
87
  remaining: args
79
88
  };
80
89
  }
@@ -104,7 +113,9 @@ exports.queryStarCommand = {
104
113
  fn: async ({ output, analyzer, remainingArgs }) => {
105
114
  const results = await processQueryArgs(output, analyzer, remainingArgs);
106
115
  if (results) {
107
- output.stdout(JSON.stringify(results.query, json_1.jsonReplacer));
116
+ const json = Object.fromEntries(Object.entries(results.query)
117
+ .map(([query, queryResults]) => [query, query_1.SupportedQueries[query]?.jsonFormatter?.(queryResults) ?? queryResults]));
118
+ output.stdout(JSON.stringify(json, json_1.jsonReplacer));
108
119
  }
109
120
  }
110
121
  };