@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,6 +1,5 @@
1
1
  /**
2
2
  * Defines the {@link IPipelineStep} interface which specifies all data available for a single step.
3
- *
4
3
  * @module
5
4
  */
6
5
  import type { MergeableRecord } from '../../util/objects';
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Defines the {@link IPipelineStep} interface which specifies all data available for a single step.
4
- *
5
4
  * @module
6
5
  */
7
6
  Object.defineProperty(exports, "__esModule", { value: true });
@@ -17,4 +17,7 @@ export interface DataflowGraphCluster {
17
17
  /** If the cluster contains unknown side effects */
18
18
  readonly hasUnknownSideEffects: boolean;
19
19
  }
20
+ /**
21
+ * Find all clusters in the given dataflow graph.
22
+ */
20
23
  export declare function findAllClusters(graph: DataflowGraph): DataflowGraphClusters;
@@ -4,6 +4,9 @@ exports.findAllClusters = findAllClusters;
4
4
  const edge_1 = require("./graph/edge");
5
5
  const vertex_1 = require("./graph/vertex");
6
6
  const assert_1 = require("../util/assert");
7
+ /**
8
+ * Find all clusters in the given dataflow graph.
9
+ */
7
10
  function findAllClusters(graph) {
8
11
  const clusters = [];
9
12
  // we reverse the vertices since dependencies usually point "backwards" from later nodes
@@ -1,4 +1,4 @@
1
- import type { REnvironmentInformation } from './environment';
1
+ import { type REnvironmentInformation } from './environment';
2
2
  /**
3
3
  * Adds all writes of `next` to `base` (i.e., the operations of `next` *might* happen).
4
4
  */
@@ -1,5 +1,4 @@
1
- import type { BuiltInMappingName, ConfigOfBuiltInMappingName } from './built-in';
2
- import { BuiltIns } from './built-in';
1
+ import { type BuiltInMappingName, type ConfigOfBuiltInMappingName, BuiltIns } from './built-in';
3
2
  import type { Identifier } from './identifier';
4
3
  export interface BaseBuiltInDefinition {
5
4
  /** The type of the built-in configuration */
@@ -11,7 +10,6 @@ export interface BaseBuiltInDefinition {
11
10
  }
12
11
  /**
13
12
  * Define a built-in constant (like `NULL` or `TRUE`) and the TS value it should have
14
- *
15
13
  * @template Value - The type of the constant value
16
14
  */
17
15
  export interface BuiltInConstantDefinition<Value> extends BaseBuiltInDefinition {
@@ -21,7 +19,6 @@ export interface BuiltInConstantDefinition<Value> extends BaseBuiltInDefinition
21
19
  }
22
20
  /**
23
21
  * Define a built-in function (like `print` or `c`) and the processor to use.
24
- *
25
22
  * @template BuiltInProcessor - The processor to use for this function
26
23
  */
27
24
  export interface BuiltInFunctionDefinition<BuiltInProcessor extends BuiltInMappingName> extends BaseBuiltInDefinition {
@@ -52,7 +49,6 @@ export type BuiltInDefinitions = BuiltInDefinition[];
52
49
  export declare function getDefaultBuiltInDefinitions(): BuiltIns;
53
50
  /**
54
51
  * Get the {@link BuiltIns#builtInMemory} and {@link BuiltIns#emptyBuiltInMemory} for the given list of built-in definitions.
55
- *
56
52
  * @param definitions - the list of built-in definitions
57
53
  * @param loadDefaults - whether to first add the {@link DefaultBuiltinConfig} before the given {@link definitions}
58
54
  */
@@ -16,7 +16,6 @@ function getDefaultBuiltInDefinitions() {
16
16
  }
17
17
  /**
18
18
  * Get the {@link BuiltIns#builtInMemory} and {@link BuiltIns#emptyBuiltInMemory} for the given list of built-in definitions.
19
- *
20
19
  * @param definitions - the list of built-in definitions
21
20
  * @param loadDefaults - whether to first add the {@link DefaultBuiltinConfig} before the given {@link definitions}
22
21
  */
@@ -8,15 +8,14 @@ import { processPipe } from '../internal/process/functions/call/built-in/built-i
8
8
  import { processForLoop } from '../internal/process/functions/call/built-in/built-in-for-loop';
9
9
  import { processRepeatLoop } from '../internal/process/functions/call/built-in/built-in-repeat-loop';
10
10
  import { processWhileLoop } from '../internal/process/functions/call/built-in/built-in-while-loop';
11
- import type { Identifier, IdentifierDefinition, IdentifierReference } from './identifier';
12
- import { ReferenceType } from './identifier';
11
+ import { type Identifier, type IdentifierDefinition, type IdentifierReference, ReferenceType } from './identifier';
13
12
  import { processReplacementFunction } from '../internal/process/functions/call/built-in/built-in-replacement';
14
13
  import { processQuote } from '../internal/process/functions/call/built-in/built-in-quote';
15
14
  import { processFunctionDefinition } from '../internal/process/functions/call/built-in/built-in-function-definition';
16
15
  import { processExpressionList } from '../internal/process/functions/call/built-in/built-in-expression-list';
17
16
  import { processGet } from '../internal/process/functions/call/built-in/built-in-get';
18
17
  import type { AstIdMap, ParentInformation, RNodeWithParent } from '../../r-bridge/lang-4.x/ast/model/processing/decorate';
19
- import type { RFunctionArgument } from '../../r-bridge/lang-4.x/ast/model/nodes/r-function-call';
18
+ import { type RFunctionArgument } from '../../r-bridge/lang-4.x/ast/model/nodes/r-function-call';
20
19
  import type { RSymbol } from '../../r-bridge/lang-4.x/ast/model/nodes/r-symbol';
21
20
  import type { NodeId } from '../../r-bridge/lang-4.x/ast/model/processing/node-id';
22
21
  import { processLibrary } from '../internal/process/functions/call/built-in/built-in-library';
@@ -35,7 +34,13 @@ import type { DataflowGraph } from '../graph/graph';
35
34
  import type { VariableResolve } from '../../config';
36
35
  import type { BuiltInConstantDefinition, BuiltInDefinition, BuiltInFunctionDefinition, BuiltInReplacementDefinition } from './built-in-config';
37
36
  export type BuiltIn = `built-in:${string}`;
37
+ /**
38
+ * Generate a built-in id for the given name
39
+ */
38
40
  export declare function builtInId(name: string): BuiltIn;
41
+ /**
42
+ * Checks whether the given name is a built-in identifier
43
+ */
39
44
  export declare function isBuiltIn(name: NodeId | string): name is BuiltIn;
40
45
  export type BuiltInIdentifierProcessor = <OtherInfo>(name: RSymbol<OtherInfo & ParentInformation>, args: readonly RFunctionArgument<OtherInfo & ParentInformation>[], rootId: NodeId, data: DataflowProcessorInformation<OtherInfo & ParentInformation>) => DataflowInformation;
41
46
  export type BuiltInIdentifierProcessorWithConfig<Config> = <OtherInfo>(name: RSymbol<OtherInfo & ParentInformation>, args: readonly RFunctionArgument<OtherInfo & ParentInformation>[], rootId: NodeId, data: DataflowProcessorInformation<OtherInfo & ParentInformation>, config: Config) => DataflowInformation;
@@ -58,7 +63,8 @@ export interface DefaultBuiltInProcessorConfiguration extends ForceArguments {
58
63
  readonly hasUnknownSideEffects?: boolean | LinkTo<RegExp | string>;
59
64
  /** record mapping the actual function name called to the arguments that should be treated as function calls */
60
65
  readonly treatAsFnCall?: Record<string, readonly string[]>;
61
- /** Name that should be used for the origin (useful when needing to differentiate between
66
+ /**
67
+ * Name that should be used for the origin (useful when needing to differentiate between
62
68
  * functions like 'return' that use the default builtin processor)
63
69
  */
64
70
  readonly useAsProcessor?: UseAsProcessors;
@@ -125,7 +131,6 @@ export declare class BuiltIns {
125
131
  * The twin of the {@link builtInMemory} but with less built ins defined for
126
132
  * cases in which we want some commonly overwritten variables to remain open.
127
133
  * If you do not know if you need the empty environment, you do not need the empty environment (right now).
128
- *
129
134
  * @see {@link builtInMemory}
130
135
  */
131
136
  emptyBuiltInMemory: BuiltInMemory;
@@ -32,9 +32,15 @@ const vertex_1 = require("../graph/vertex");
32
32
  const type_1 = require("../../r-bridge/lang-4.x/ast/model/type");
33
33
  const unknown_side_effect_1 = require("../graph/unknown-side-effect");
34
34
  const resolve_1 = require("../eval/resolve/resolve");
35
+ /**
36
+ * Generate a built-in id for the given name
37
+ */
35
38
  function builtInId(name) {
36
39
  return `built-in:${name}`;
37
40
  }
41
+ /**
42
+ * Checks whether the given name is a built-in identifier
43
+ */
38
44
  function isBuiltIn(name) {
39
45
  return String(name).startsWith('built-in:');
40
46
  }
@@ -218,7 +224,6 @@ class BuiltIns {
218
224
  * The twin of the {@link builtInMemory} but with less built ins defined for
219
225
  * cases in which we want some commonly overwritten variables to remain open.
220
226
  * If you do not know if you need the empty environment, you do not need the empty environment (right now).
221
- *
222
227
  * @see {@link builtInMemory}
223
228
  */
224
229
  emptyBuiltInMemory = new Map();
@@ -1,4 +1,4 @@
1
- import type { REnvironmentInformation } from './environment';
1
+ import { type REnvironmentInformation } from './environment';
2
2
  /**
3
3
  * Produce a clone of the given environment information.
4
4
  * @param environment - The environment information to clone.
@@ -13,4 +13,7 @@ export declare const GgPlotAddons: string[];
13
13
  * Contains the built-in definitions recognized by flowR
14
14
  */
15
15
  export declare const DefaultBuiltinConfig: BuiltInDefinitions;
16
+ /**
17
+ *
18
+ */
16
19
  export declare function getDefaultProcessor(name: string): BuiltInMappingName | 'unnamed' | undefined;
@@ -93,7 +93,7 @@ function toRegex(n) {
93
93
  * Contains the built-in definitions recognized by flowR
94
94
  */
95
95
  exports.DefaultBuiltinConfig = [
96
- { type: 'constant', names: ['NULL', 'NA'], value: null, assumePrimitive: true },
96
+ { type: 'constant', names: ['NULL', 'NA', 'NaN', 'NA_integer_', 'NA_real_', 'NA_complex_', 'NA_character_'], value: null, assumePrimitive: true },
97
97
  { type: 'constant', names: ['TRUE', 'T'], value: true, assumePrimitive: true },
98
98
  { type: 'constant', names: ['FALSE', 'F'], value: false, assumePrimitive: true },
99
99
  {
@@ -302,6 +302,9 @@ exports.DefaultBuiltinConfig = [
302
302
  }
303
303
  }
304
304
  ];
305
+ /**
306
+ *
307
+ */
305
308
  function getDefaultProcessor(name) {
306
309
  if (name.startsWith(unnamed_call_handling_1.UnnamedFunctionCallPrefix)) {
307
310
  return 'unnamed';
@@ -1,6 +1,15 @@
1
- import type { GenericDifferenceInformation, WriteableDifferenceReport } from '../../util/diff';
2
- import type { IEnvironment, REnvironmentInformation } from './environment';
1
+ import { type GenericDifferenceInformation, type WriteableDifferenceReport } from '../../util/diff';
2
+ import { type IEnvironment, type REnvironmentInformation } from './environment';
3
3
  import type { IdentifierReference } from './identifier';
4
+ /**
5
+ * Compares two identifier references and reports differences.
6
+ */
4
7
  export declare function diffIdentifierReferences<Report extends WriteableDifferenceReport>(a: IdentifierReference | undefined, b: IdentifierReference | undefined, info: GenericDifferenceInformation<Report>): void;
8
+ /**
9
+ * Compares two environments and reports differences.
10
+ */
5
11
  export declare function diffEnvironment<Report extends WriteableDifferenceReport>(a: IEnvironment | undefined, b: IEnvironment | undefined, info: GenericDifferenceInformation<Report>, depth: number): void;
12
+ /**
13
+ * Compares two REnvironmentInformation objects and reports differences.
14
+ */
6
15
  export declare function diffEnvironmentInformation<Report extends WriteableDifferenceReport>(a: REnvironmentInformation | undefined, b: REnvironmentInformation | undefined, info: GenericDifferenceInformation<Report>): void;
@@ -7,6 +7,9 @@ const diff_1 = require("../../util/diff");
7
7
  const environment_1 = require("./environment");
8
8
  const json_1 = require("../../util/json");
9
9
  const info_1 = require("../info");
10
+ /**
11
+ * Compares two identifier references and reports differences.
12
+ */
10
13
  function diffIdentifierReferences(a, b, info) {
11
14
  if (a === undefined || b === undefined) {
12
15
  if (a !== b) {
@@ -51,6 +54,9 @@ function diffMemory(a, b, info) {
51
54
  }
52
55
  }
53
56
  }
57
+ /**
58
+ * Compares two environments and reports differences.
59
+ */
54
60
  function diffEnvironment(a, b, info, depth) {
55
61
  if (a === undefined || b === undefined) {
56
62
  if (a !== b) {
@@ -71,6 +77,9 @@ function diffEnvironment(a, b, info, depth) {
71
77
  diffMemory(a, b, { ...info, position: `${info.position}[at level: ${depth}] ` });
72
78
  diffEnvironment(a.parent, b.parent, { ...info, position: `${info.position}Parents of ${a.id} & ${b.id}. ` }, depth--);
73
79
  }
80
+ /**
81
+ * Compares two REnvironmentInformation objects and reports differences.
82
+ */
74
83
  function diffEnvironmentInformation(a, b, info) {
75
84
  if (a === undefined || b === undefined) {
76
85
  if (a !== b) {
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * Provides an environment structure similar to R.
3
3
  * This allows the dataflow to hold current definition locations for variables, based on the current scope.
4
- *
5
4
  * @module
6
5
  */
7
6
  import type { IdentifierReference } from './identifier';
@@ -12,6 +11,9 @@ import type { BuiltInMemory } from './built-in';
12
11
  * Marks the reference as maybe (i.e., as controlled by a set of {@link IdentifierReference#controlDependencies|control dependencies}).
13
12
  */
14
13
  export declare function makeReferenceMaybe(ref: IdentifierReference, graph: DataflowGraph, environments: REnvironmentInformation, includeDefs: boolean, defaultCd?: ControlDependency | undefined): IdentifierReference;
14
+ /**
15
+ *
16
+ */
15
17
  export declare function makeAllMaybe(references: readonly IdentifierReference[] | undefined, graph: DataflowGraph, environments: REnvironmentInformation, includeDefs: boolean, defaultCd?: ControlDependency | undefined): IdentifierReference[];
16
18
  /** A single entry/scope within an {@link REnvironmentInformation} */
17
19
  export interface IEnvironment {
@@ -55,8 +57,6 @@ export interface WorkingDirectoryReference {
55
57
  * One important environment is the {@link BuiltIns|BuiltInEnvironment} which contains the default definitions for R's built-in functions and constants.
56
58
  * Please use {@link initializeCleanEnvironments} to initialize the environments (which includes the built-ins).
57
59
  * During serialization, you may want to rely on the {@link builtInEnvJsonReplacer} to avoid the huge built-in environment.
58
- *
59
- *
60
60
  * @see {@link define} - to define a new {@link IdentifierDefinition|identifier definition} within an environment
61
61
  * @see {@link resolveByName} - to resolve an {@link Identifier|identifier/name} to its {@link IdentifierDefinition|definitions} within an environment
62
62
  * @see {@link makeReferenceMaybe} - to attach control dependencies to a reference
@@ -29,16 +29,15 @@ function makeReferenceMaybe(ref, graph, environments, includeDefs, defaultCd = u
29
29
  }
30
30
  }
31
31
  }
32
- const node = graph.get(ref.nodeId, true);
32
+ const node = graph.getVertex(ref.nodeId, true);
33
33
  if (node) {
34
- const [fst] = node;
35
- if (fst.cds) {
36
- if (defaultCd && !fst.cds.find(c => c.id === defaultCd.id && c.when === defaultCd.when)) {
37
- fst.cds.push(defaultCd);
34
+ if (node.cds) {
35
+ if (defaultCd && !node.cds.find(c => c.id === defaultCd.id && c.when === defaultCd.when)) {
36
+ node.cds.push(defaultCd);
38
37
  }
39
38
  }
40
39
  else {
41
- fst.cds = defaultCd ? [defaultCd] : [];
40
+ node.cds = defaultCd ? [defaultCd] : [];
42
41
  }
43
42
  }
44
43
  if (ref.controlDependencies) {
@@ -51,6 +50,9 @@ function makeReferenceMaybe(ref, graph, environments, includeDefs, defaultCd = u
51
50
  }
52
51
  return ref;
53
52
  }
53
+ /**
54
+ *
55
+ */
54
56
  function makeAllMaybe(references, graph, environments, includeDefs, defaultCd = undefined) {
55
57
  return references?.map(ref => makeReferenceMaybe(ref, graph, environments, includeDefs, defaultCd)) ?? [];
56
58
  }
@@ -14,7 +14,6 @@ export type Identifier = string & {
14
14
  * a function when resolving an {@link Identifier|identifier}.
15
15
  * In `c <- 3; print(c(1, 2))` the call to `c` works normally (as the vector constructor),
16
16
  * while writing `c <- function(...) ..1` overshadows the built-in and causes `print` to only output the first element.
17
- *
18
17
  * @see {@link isReferenceType} - for checking if a (potentially joint) reference type contains a certain type
19
18
  * @see {@link ReferenceTypeReverseMapping} - for debugging
20
19
  */
@@ -45,7 +44,6 @@ export declare function isReferenceType(t: ReferenceType, target: ReferenceType)
45
44
  /**
46
45
  * Describes all types of reference (definitions) that can appear within a graph (i.e., that are not built-in like the
47
46
  * default definition for the assignment operator `<-`).
48
- *
49
47
  * @see {@link InGraphIdentifierDefinition} - for the definition of an identifier within the graph
50
48
  */
51
49
  export type InGraphReferenceType = Exclude<ReferenceType, ReferenceType.BuiltInConstant | ReferenceType.BuiltInFunction>;
@@ -61,7 +59,6 @@ export type InGraphReferenceType = Exclude<ReferenceType, ReferenceType.BuiltInC
61
59
  * they indicate the references that are currently (during the analysis at this given node)
62
60
  * {@link DataflowInformation#in|read (`in`)}, {@link DataflowInformation#out|written (`out`)},
63
61
  * or {@link DataflowInformation#unknownReferences|unknown (`unknownReferences`)}.
64
- *
65
62
  * @see {@link InGraphIdentifierDefinition}
66
63
  */
67
64
  export interface IdentifierReference {
@@ -88,7 +85,6 @@ export interface IdentifierReference {
88
85
  * Within a code snippet like `a <- 3`, the symbol processor will first create an
89
86
  * {@link IdentifierReference|identifier reference} for `a` to reference the use
90
87
  * and then promote it to an {@link InGraphIdentifierDefinition|identifier definition}.
91
- *
92
88
  * @see {@link IdentifierReference}
93
89
  */
94
90
  export interface InGraphIdentifierDefinition extends IdentifierReference {
@@ -11,7 +11,6 @@ exports.isReferenceType = isReferenceType;
11
11
  * a function when resolving an {@link Identifier|identifier}.
12
12
  * In `c <- 3; print(c(1, 2))` the call to `c` works normally (as the vector constructor),
13
13
  * while writing `c <- function(...) ..1` overshadows the built-in and causes `print` to only output the first element.
14
- *
15
14
  * @see {@link isReferenceType} - for checking if a (potentially joint) reference type contains a certain type
16
15
  * @see {@link ReferenceTypeReverseMapping} - for debugging
17
16
  */
@@ -1,5 +1,8 @@
1
- import type { IEnvironment, REnvironmentInformation } from './environment';
1
+ import { type IEnvironment, type REnvironmentInformation } from './environment';
2
2
  import type { ControlDependency } from '../info';
3
+ /**
4
+ *
5
+ */
3
6
  export declare function overwriteIEnvironmentWith(base: IEnvironment | undefined, next: IEnvironment | undefined, includeParent?: boolean, applyCds?: readonly ControlDependency[]): IEnvironment;
4
7
  export declare function overwriteEnvironment(base: REnvironmentInformation, next: REnvironmentInformation | undefined, applyCds?: readonly ControlDependency[]): REnvironmentInformation;
5
8
  export declare function overwriteEnvironment(base: REnvironmentInformation | undefined, next: REnvironmentInformation, applyCds?: readonly ControlDependency[]): REnvironmentInformation;
@@ -16,6 +16,9 @@ function anyIsMaybeOrEmpty(values) {
16
16
  }
17
17
  return false;
18
18
  }
19
+ /**
20
+ *
21
+ */
19
22
  function overwriteIEnvironmentWith(base, next, includeParent = true, applyCds) {
20
23
  (0, assert_1.guard)(base !== undefined && next !== undefined, 'can not overwrite environments with undefined');
21
24
  const map = new Map(base.memory);
@@ -1,16 +1,16 @@
1
1
  import type { REnvironmentInformation } from './environment';
2
2
  import { Ternary } from '../../util/logic';
3
- import type { Identifier, IdentifierDefinition } from './identifier';
4
- import { ReferenceType } from './identifier';
3
+ import { type Identifier, type IdentifierDefinition, ReferenceType } from './identifier';
5
4
  /**
6
5
  * Resolves a given identifier name to a list of its possible definition location using R scoping and resolving rules.
7
- *
8
6
  * @param name - The name of the identifier to resolve
9
7
  * @param environment - The current environment used for name resolution
10
8
  * @param target - The target (meta) type of the identifier to resolve
11
- *
12
9
  * @returns A list of possible identifier definitions (one if the definition location is exactly and always known), or `undefined`
13
10
  * if the identifier is undefined in the current scope/with the current environment information.
14
11
  */
15
12
  export declare function resolveByName(name: Identifier, environment: REnvironmentInformation, target?: ReferenceType): IdentifierDefinition[] | undefined;
13
+ /**
14
+ *
15
+ */
16
16
  export declare function resolvesToBuiltInConstant(name: Identifier | undefined, environment: REnvironmentInformation, wantedValue: unknown): Ternary;
@@ -22,11 +22,9 @@ const TargetTypePredicate = {
22
22
  };
23
23
  /**
24
24
  * Resolves a given identifier name to a list of its possible definition location using R scoping and resolving rules.
25
- *
26
25
  * @param name - The name of the identifier to resolve
27
26
  * @param environment - The current environment used for name resolution
28
27
  * @param target - The target (meta) type of the identifier to resolve
29
- *
30
28
  * @returns A list of possible identifier definitions (one if the definition location is exactly and always known), or `undefined`
31
29
  * if the identifier is undefined in the current scope/with the current environment information.
32
30
  */
@@ -56,6 +54,9 @@ function resolveByName(name, environment, target = identifier_1.ReferenceType.Un
56
54
  return builtIns;
57
55
  }
58
56
  }
57
+ /**
58
+ *
59
+ */
59
60
  function resolvesToBuiltInConstant(name, environment, wantedValue) {
60
61
  if (name === undefined) {
61
62
  return logic_1.Ternary.Never;
@@ -1,4 +1,7 @@
1
- import type { REnvironmentInformation } from './environment';
1
+ import { type REnvironmentInformation } from './environment';
2
2
  /** Add a new local environment scope to the stack, returns the modified variant - sharing the original environments in the stack (no deep-clone) */
3
3
  export declare function pushLocalEnvironment(base: REnvironmentInformation): REnvironmentInformation;
4
+ /**
5
+ *
6
+ */
4
7
  export declare function popLocalEnvironment(base: REnvironmentInformation): REnvironmentInformation;
@@ -11,6 +11,9 @@ function pushLocalEnvironment(base) {
11
11
  level: base.level + 1
12
12
  };
13
13
  }
14
+ /**
15
+ *
16
+ */
14
17
  function popLocalEnvironment(base) {
15
18
  (0, assert_1.guard)(base.level > 0, 'cannot remove the global/root environment');
16
19
  const parent = base.current.parent;
@@ -1,10 +1,10 @@
1
1
  import { VariableResolve } from '../../../config';
2
2
  import type { AstIdMap, RNodeWithParent } from '../../../r-bridge/lang-4.x/ast/model/processing/decorate';
3
- import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
4
- import type { REnvironmentInformation } from '../../environments/environment';
5
- import type { Identifier } from '../../environments/identifier';
3
+ import { type NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
4
+ import { type REnvironmentInformation } from '../../environments/environment';
5
+ import { type Identifier } from '../../environments/identifier';
6
6
  import type { DataflowGraph } from '../../graph/graph';
7
- import type { Lift, Value, ValueSet } from '../values/r-value';
7
+ import { type Lift, type Value, type ValueSet } from '../values/r-value';
8
8
  export type ResolveResult = Lift<ValueSet<Value[]>>;
9
9
  export interface ResolveInfo {
10
10
  /** The current environment used for name resolution */
@@ -26,7 +26,6 @@ export interface ResolveInfo {
26
26
  * the sourceIds value field of their InGraphIdentifierDefinition. This enables
27
27
  * us later, in the {@link trackAliasInEnvironments} function, to get all the
28
28
  * aliases of an identifier.
29
- *
30
29
  * @param sourceIds - node ids to get the definitions for
31
30
  * @param dataflow - dataflow graph
32
31
  * @param environment - environment
@@ -45,7 +44,6 @@ export declare function getAliases(sourceIds: readonly NodeId[], dataflow: Dataf
45
44
  * This function is also used by the Resolve Value Query and the Dependency Query
46
45
  * to resolve values. For e.g. in the Dependency Query it is used to resolve calls
47
46
  * like `lapply(c("a", "b", "c"), library, character.only = TRUE)`
48
- *
49
47
  * @param id - The node id or node to resolve
50
48
  * @param environment - The current environment used for name resolution
51
49
  * @param graph - The graph to resolve in
@@ -59,8 +57,6 @@ export declare function resolveIdToValue(id: NodeId | RNodeWithParent | undefine
59
57
  *
60
58
  * Uses the aliases that were tracked in the environments (by the
61
59
  * {@link getAliases} function) to resolve a node to a value.
62
- *
63
- *
64
60
  * @param resolve - Variable resolve mode
65
61
  * @param identifier - Identifier to resolve
66
62
  * @param use - Environment to use
@@ -73,7 +69,6 @@ export declare function trackAliasInEnvironments(resolve: VariableResolve, ident
73
69
  * Please use {@link resolveIdToValue}
74
70
  *
75
71
  * Tries to resolve the value of a node by traversing the dataflow graph
76
- *
77
72
  * @param id - node to resolve
78
73
  * @param graph - dataflow graph
79
74
  * @param idMap - idmap of dataflow graph
@@ -84,7 +79,6 @@ export declare function trackAliasesInGraph(id: NodeId, graph: DataflowGraph, id
84
79
  * Please use {@link resolveIdToValue}
85
80
  *
86
81
  * Resolve an Identifier to a constant, if the identifier is a constant
87
- *
88
82
  * @param name - Identifier to resolve
89
83
  * @param environment - Environment to use
90
84
  * @returns Value of Constant or Top
@@ -77,7 +77,6 @@ function getUseAlias(sourceId, dataflow, environment) {
77
77
  * the sourceIds value field of their InGraphIdentifierDefinition. This enables
78
78
  * us later, in the {@link trackAliasInEnvironments} function, to get all the
79
79
  * aliases of an identifier.
80
- *
81
80
  * @param sourceIds - node ids to get the definitions for
82
81
  * @param dataflow - dataflow graph
83
82
  * @param environment - environment
@@ -109,7 +108,6 @@ function getAliases(sourceIds, dataflow, environment) {
109
108
  * This function is also used by the Resolve Value Query and the Dependency Query
110
109
  * to resolve values. For e.g. in the Dependency Query it is used to resolve calls
111
110
  * like `lapply(c("a", "b", "c"), library, character.only = TRUE)`
112
- *
113
111
  * @param id - The node id or node to resolve
114
112
  * @param environment - The current environment used for name resolution
115
113
  * @param graph - The graph to resolve in
@@ -157,8 +155,6 @@ function resolveIdToValue(id, { environment, graph, idMap, full = true, resolve
157
155
  *
158
156
  * Uses the aliases that were tracked in the environments (by the
159
157
  * {@link getAliases} function) to resolve a node to a value.
160
- *
161
- *
162
158
  * @param resolve - Variable resolve mode
163
159
  * @param identifier - Identifier to resolve
164
160
  * @param use - Environment to use
@@ -256,20 +252,22 @@ function isNestedInLoop(node, ast) {
256
252
  * Please use {@link resolveIdToValue}
257
253
  *
258
254
  * Tries to resolve the value of a node by traversing the dataflow graph
259
- *
260
255
  * @param id - node to resolve
261
256
  * @param graph - dataflow graph
262
257
  * @param idMap - idmap of dataflow graph
263
258
  * @returns Value of node or Top/Bottom
264
259
  */
265
260
  function trackAliasesInGraph(id, graph, idMap) {
261
+ if (!graph.get(id)) {
262
+ return r_value_1.Bottom;
263
+ }
266
264
  idMap ??= graph.idMap;
267
265
  (0, assert_1.guard)(idMap !== undefined, 'The ID map is required to get the lineage of a node');
268
266
  const queue = new visiting_queue_1.VisitingQueue(25);
269
267
  const clean = (0, environment_1.initializeCleanEnvironments)();
270
268
  const cleanFingerprint = (0, fingerprint_1.envFingerprint)(clean);
271
269
  queue.add(id, clean, cleanFingerprint, false);
272
- let forceBot = false;
270
+ let forceTop = false;
273
271
  const resultIds = [];
274
272
  while (queue.nonEmpty()) {
275
273
  const { id, baseEnvironment } = queue.next();
@@ -284,15 +282,15 @@ function trackAliasesInGraph(id, graph, idMap) {
284
282
  if (target === undefined) {
285
283
  continue;
286
284
  }
287
- if (target.type === type_1.RType.WhileLoop || target.type === type_1.RType.RepeatLoop) {
288
- forceBot = true;
285
+ if (target.type === type_1.RType.WhileLoop || target.type === type_1.RType.RepeatLoop || target.type === type_1.RType.ForLoop) {
286
+ forceTop = true;
289
287
  break;
290
288
  }
291
289
  }
292
- if (!forceBot && (cds?.length === 0 && isNestedInLoop(idMap.get(id), idMap))) {
293
- forceBot = true;
290
+ if (!forceTop && (cds?.length === 0 && isNestedInLoop(idMap.get(id), idMap))) {
291
+ forceTop = true;
294
292
  }
295
- if (forceBot) {
293
+ if (forceTop) {
296
294
  break;
297
295
  }
298
296
  if (vertex.tag === vertex_1.VertexType.Value) {
@@ -318,8 +316,8 @@ function trackAliasesInGraph(id, graph, idMap) {
318
316
  }
319
317
  }
320
318
  }
321
- if (forceBot || resultIds.length === 0) {
322
- return r_value_1.Bottom;
319
+ if (forceTop || resultIds.length === 0) {
320
+ return r_value_1.Top;
323
321
  }
324
322
  const values = new Set();
325
323
  for (const id of resultIds) {
@@ -334,7 +332,6 @@ function trackAliasesInGraph(id, graph, idMap) {
334
332
  * Please use {@link resolveIdToValue}
335
333
  *
336
334
  * Resolve an Identifier to a constant, if the identifier is a constant
337
- *
338
335
  * @param name - Identifier to resolve
339
336
  * @param environment - Environment to use
340
337
  * @returns Value of Constant or Top
@@ -1,4 +1,4 @@
1
- import type { DataflowGraph } from '../../graph/graph';
1
+ import { type DataflowGraph } from '../../graph/graph';
2
2
  import type { DataflowGraphVertexFunctionCall } from '../../graph/vertex';
3
3
  import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
4
4
  import type { VariableResolve } from '../../../config';
@@ -1,8 +1,7 @@
1
1
  import type { AstIdMap, RNodeWithParent } from '../../../r-bridge/lang-4.x/ast/model/processing/decorate';
2
2
  import type { REnvironmentInformation } from '../../environments/environment';
3
3
  import type { DataflowGraph } from '../../graph/graph';
4
- import type { Lift, Value, ValueNumber, ValueVector } from '../values/r-value';
5
- import { Top } from '../values/r-value';
4
+ import { type Lift, type Value, type ValueNumber, type ValueVector, Top } from '../values/r-value';
6
5
  import type { VariableResolve } from '../../../config';
7
6
  /**
8
7
  * Helper function used by {@link resolveIdToValue}, please use that instead, if
@@ -10,7 +9,6 @@ import type { VariableResolve } from '../../../config';
10
9
  *
11
10
  * This function converts an RNode to its Value, but also recursively resolves
12
11
  * aliases and vectors (in case of a vector).
13
- *
14
12
  * @param a - Ast node to resolve
15
13
  * @param resolve - Variable resolve mode
16
14
  * @param env - Environment to use
@@ -25,7 +23,6 @@ export declare function resolveNode(resolve: VariableResolve, a: RNodeWithParent
25
23
  *
26
24
  * This function resolves a vector function call `c` to a {@link ValueVector}
27
25
  * by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
28
- *
29
26
  * @param resolve - Variable resolve mode
30
27
  * @param node - Node of the vector function to resolve
31
28
  * @param env - Environment to use
@@ -40,7 +37,6 @@ export declare function resolveAsVector(resolve: VariableResolve, node: RNodeWit
40
37
  *
41
38
  * This function resolves a binary sequence operator `:` to a {@link ValueVector} of {@link ValueNumber}s
42
39
  * by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
43
- *
44
40
  * @param resolve - Variable resolve mode
45
41
  * @param operator - Node of the sequence operator to resolve
46
42
  * @param env - Environment to use
@@ -55,7 +51,6 @@ export declare function resolveAsSeq(resolve: VariableResolve, operator: RNodeWi
55
51
  *
56
52
  * This function resolves a unary plus operator `+` to a {@link ValueNumber} or {@link ValueVector} of ValueNumbers
57
53
  * by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
58
- *
59
54
  * @param resolve - Variable resolve mode
60
55
  * @param operator - Node of the plus operator to resolve
61
56
  * @param env - Environment to use
@@ -70,7 +65,6 @@ export declare function resolveAsPlus(resolve: VariableResolve, operator: RNodeW
70
65
  *
71
66
  * This function resolves a unary minus operator `-` to a {@link ValueNumber} or {@link ValueVector} of ValueNumbers
72
67
  * by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
73
- *
74
68
  * @param resolve - Variable resolve mode
75
69
  * @param operator - Node of the minus operator to resolve
76
70
  * @param env - Environment to use