@eagleoutice/flowr 2.6.0 → 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 (703) hide show
  1. package/README.md +142 -45
  2. package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
  3. package/abstract-interpretation/data-frame/absint-visitor.d.ts +3 -4
  4. package/abstract-interpretation/data-frame/absint-visitor.js +16 -11
  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/flowr.js +8 -4
  73. package/cli/repl/commands/repl-cfg.js +4 -4
  74. package/cli/repl/commands/repl-commands.d.ts +13 -0
  75. package/cli/repl/commands/repl-commands.js +15 -4
  76. package/cli/repl/commands/repl-dataflow.js +4 -4
  77. package/cli/repl/commands/repl-execute.d.ts +5 -1
  78. package/cli/repl/commands/repl-execute.js +12 -8
  79. package/cli/repl/commands/repl-main.d.ts +17 -14
  80. package/cli/repl/commands/repl-normalize.js +2 -2
  81. package/cli/repl/commands/repl-parse.js +4 -3
  82. package/cli/repl/commands/repl-query.js +18 -7
  83. package/cli/repl/commands/repl-quit.js +1 -1
  84. package/cli/repl/commands/repl-version.d.ts +1 -16
  85. package/cli/repl/commands/repl-version.js +2 -19
  86. package/cli/repl/core.d.ts +32 -14
  87. package/cli/repl/core.js +38 -35
  88. package/cli/repl/execute.d.ts +0 -2
  89. package/cli/repl/execute.js +0 -2
  90. package/cli/repl/parser/slice-query-parser.d.ts +14 -0
  91. package/cli/repl/parser/slice-query-parser.js +34 -0
  92. package/cli/repl/print-version.d.ts +6 -0
  93. package/cli/repl/print-version.js +8 -2
  94. package/cli/repl/server/compact.d.ts +8 -0
  95. package/cli/repl/server/compact.js +8 -0
  96. package/cli/repl/server/connection.d.ts +4 -3
  97. package/cli/repl/server/connection.js +9 -33
  98. package/cli/repl/server/messages/all-messages.d.ts +1 -3
  99. package/cli/repl/server/messages/all-messages.js +0 -1
  100. package/cli/repl/server/messages/message-analysis.d.ts +0 -2
  101. package/cli/repl/server/messages/message-hello.d.ts +1 -1
  102. package/cli/repl/server/messages/message-query.d.ts +1 -1
  103. package/cli/repl/server/messages/message-repl.d.ts +0 -1
  104. package/cli/repl/server/send.d.ts +6 -0
  105. package/cli/repl/server/send.js +6 -0
  106. package/cli/repl/server/server.d.ts +1 -1
  107. package/cli/repl/server/server.js +2 -2
  108. package/cli/repl/server/validate.d.ts +10 -1
  109. package/cli/repl/server/validate.js +9 -0
  110. package/cli/run-script.d.ts +1 -2
  111. package/cli/run-script.js +0 -1
  112. package/cli/script-core/statistics-core.d.ts +3 -0
  113. package/cli/script-core/statistics-core.js +3 -0
  114. package/cli/script-core/statistics-helper-core.d.ts +4 -1
  115. package/cli/script-core/statistics-helper-core.js +3 -0
  116. package/cli/script-core/summarizer-core.d.ts +3 -0
  117. package/cli/script-core/summarizer-core.js +3 -0
  118. package/cli/summarizer-app.d.ts +2 -3
  119. package/cli/summarizer-app.js +2 -3
  120. package/config.d.ts +17 -3
  121. package/config.js +15 -0
  122. package/control-flow/basic-cfg-guided-visitor.d.ts +1 -2
  123. package/control-flow/basic-cfg-guided-visitor.js +0 -1
  124. package/control-flow/cfg-to-basic-blocks.d.ts +1 -1
  125. package/control-flow/control-flow-graph.d.ts +20 -12
  126. package/control-flow/control-flow-graph.js +16 -4
  127. package/control-flow/dfg-cfg-guided-visitor.d.ts +2 -3
  128. package/control-flow/diff-cfg.d.ts +3 -5
  129. package/control-flow/diff-cfg.js +0 -1
  130. package/control-flow/extract-cfg.d.ts +3 -6
  131. package/control-flow/extract-cfg.js +0 -3
  132. package/control-flow/happens-before.d.ts +1 -1
  133. package/control-flow/semantic-cfg-guided-visitor.d.ts +2 -31
  134. package/control-flow/semantic-cfg-guided-visitor.js +0 -28
  135. package/control-flow/simple-visitor.d.ts +1 -3
  136. package/control-flow/simple-visitor.js +0 -2
  137. package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
  138. package/control-flow/useless-loop.d.ts +0 -3
  139. package/control-flow/useless-loop.js +2 -5
  140. package/core/pipeline-executor.d.ts +8 -16
  141. package/core/pipeline-executor.js +9 -18
  142. package/core/print/dataflow-printer.d.ts +19 -0
  143. package/core/print/dataflow-printer.js +19 -0
  144. package/core/print/normalize-printer.d.ts +21 -1
  145. package/core/print/normalize-printer.js +20 -0
  146. package/core/print/parse-printer.d.ts +6 -1
  147. package/core/print/parse-printer.js +5 -0
  148. package/core/print/print.d.ts +0 -1
  149. package/core/print/print.js +0 -1
  150. package/core/print/slice-diff-ansi.d.ts +3 -0
  151. package/core/print/slice-diff-ansi.js +3 -0
  152. package/core/steps/all/core/00-parse.d.ts +1 -1
  153. package/core/steps/all/core/01-parse-tree-sitter.d.ts +1 -11
  154. package/core/steps/all/core/10-normalize.d.ts +3 -0
  155. package/core/steps/all/core/10-normalize.js +3 -0
  156. package/core/steps/all/core/11-normalize-tree-sitter.d.ts +4 -3
  157. package/core/steps/all/core/20-dataflow.d.ts +3 -1
  158. package/core/steps/pipeline/create-pipeline.d.ts +1 -1
  159. package/core/steps/pipeline/default-pipelines.d.ts +29 -13
  160. package/core/steps/pipeline/default-pipelines.js +0 -4
  161. package/core/steps/pipeline/pipeline.d.ts +1 -8
  162. package/core/steps/pipeline/pipeline.js +1 -3
  163. package/core/steps/pipeline-step.d.ts +0 -1
  164. package/core/steps/pipeline-step.js +0 -1
  165. package/dataflow/cluster.d.ts +3 -0
  166. package/dataflow/cluster.js +3 -0
  167. package/dataflow/environments/append.d.ts +1 -1
  168. package/dataflow/environments/built-in-config.d.ts +1 -5
  169. package/dataflow/environments/built-in-config.js +0 -1
  170. package/dataflow/environments/built-in.d.ts +10 -5
  171. package/dataflow/environments/built-in.js +6 -1
  172. package/dataflow/environments/clone.d.ts +1 -1
  173. package/dataflow/environments/default-builtin-config.d.ts +3 -0
  174. package/dataflow/environments/default-builtin-config.js +12 -1
  175. package/dataflow/environments/diff.d.ts +11 -2
  176. package/dataflow/environments/diff.js +9 -0
  177. package/dataflow/environments/environment.d.ts +3 -3
  178. package/dataflow/environments/environment.js +8 -6
  179. package/dataflow/environments/identifier.d.ts +0 -4
  180. package/dataflow/environments/identifier.js +0 -1
  181. package/dataflow/environments/overwrite.d.ts +4 -1
  182. package/dataflow/environments/overwrite.js +3 -0
  183. package/dataflow/environments/resolve-by-name.d.ts +4 -4
  184. package/dataflow/environments/resolve-by-name.js +3 -2
  185. package/dataflow/environments/scoping.d.ts +4 -1
  186. package/dataflow/environments/scoping.js +3 -0
  187. package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
  188. package/dataflow/eval/resolve/alias-tracking.js +13 -14
  189. package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
  190. package/dataflow/eval/resolve/resolve.d.ts +1 -7
  191. package/dataflow/eval/resolve/resolve.js +3 -5
  192. package/dataflow/eval/values/general.d.ts +1 -3
  193. package/dataflow/eval/values/general.js +0 -1
  194. package/dataflow/eval/values/intervals/interval-constants.d.ts +7 -1
  195. package/dataflow/eval/values/intervals/interval-constants.js +6 -0
  196. package/dataflow/eval/values/logical/logical-constants.d.ts +4 -1
  197. package/dataflow/eval/values/logical/logical-constants.js +3 -0
  198. package/dataflow/eval/values/r-value.d.ts +16 -1
  199. package/dataflow/eval/values/r-value.js +14 -0
  200. package/dataflow/eval/values/scalar/scalar-consatnts.d.ts +7 -1
  201. package/dataflow/eval/values/scalar/scalar-consatnts.js +6 -0
  202. package/dataflow/eval/values/sets/set-constants.d.ts +7 -2
  203. package/dataflow/eval/values/sets/set-constants.js +6 -0
  204. package/dataflow/eval/values/string/string-constants.d.ts +10 -1
  205. package/dataflow/eval/values/string/string-constants.js +9 -0
  206. package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
  207. package/dataflow/extractor.d.ts +5 -2
  208. package/dataflow/extractor.js +7 -5
  209. package/dataflow/fn/higher-order-function.d.ts +9 -0
  210. package/dataflow/fn/higher-order-function.js +75 -0
  211. package/dataflow/graph/dataflowgraph-builder.d.ts +20 -38
  212. package/dataflow/graph/dataflowgraph-builder.js +6 -23
  213. package/dataflow/graph/diff-dataflow-graph.d.ts +16 -6
  214. package/dataflow/graph/diff-dataflow-graph.js +12 -1
  215. package/dataflow/graph/edge.d.ts +9 -0
  216. package/dataflow/graph/edge.js +9 -0
  217. package/dataflow/graph/graph.d.ts +6 -19
  218. package/dataflow/graph/graph.js +4 -15
  219. package/dataflow/graph/invert-dfg.d.ts +3 -0
  220. package/dataflow/graph/invert-dfg.js +3 -0
  221. package/dataflow/graph/quads.d.ts +1 -1
  222. package/dataflow/graph/unknown-replacement.d.ts +6 -0
  223. package/dataflow/graph/unknown-replacement.js +6 -0
  224. package/dataflow/graph/unknown-side-effect.d.ts +8 -0
  225. package/dataflow/graph/unknown-side-effect.js +8 -0
  226. package/dataflow/graph/vertex.d.ts +9 -9
  227. package/dataflow/graph/vertex.js +9 -1
  228. package/dataflow/info.d.ts +9 -10
  229. package/dataflow/info.js +6 -1
  230. package/dataflow/internal/linker.d.ts +25 -9
  231. package/dataflow/internal/linker.js +23 -7
  232. package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
  233. package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -0
  234. package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +1 -1
  235. package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +4 -1
  236. package/dataflow/internal/process/functions/call/built-in/built-in-access.js +3 -1
  237. package/dataflow/internal/process/functions/call/built-in/built-in-apply.d.ts +4 -1
  238. package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +3 -0
  239. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +2 -2
  240. package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +6 -3
  241. package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +3 -0
  242. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +4 -1
  243. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +3 -0
  244. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +5 -2
  245. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +3 -0
  246. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +10 -4
  247. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +6 -0
  248. package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +3 -0
  249. package/dataflow/internal/process/functions/call/built-in/built-in-get.js +3 -0
  250. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +5 -2
  251. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +4 -0
  252. package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +3 -0
  253. package/dataflow/internal/process/functions/call/built-in/built-in-library.js +3 -0
  254. package/dataflow/internal/process/functions/call/built-in/built-in-list.d.ts +1 -1
  255. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +3 -0
  256. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +3 -0
  257. package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +3 -0
  258. package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +3 -0
  259. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +5 -2
  260. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +3 -0
  261. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +6 -3
  262. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +3 -1
  263. package/dataflow/internal/process/functions/call/built-in/built-in-rm.d.ts +4 -1
  264. package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +3 -0
  265. package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +23 -6
  266. package/dataflow/internal/process/functions/call/built-in/built-in-source.js +20 -1
  267. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +3 -0
  268. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +3 -0
  269. package/dataflow/internal/process/functions/call/built-in/built-in-vector.d.ts +1 -1
  270. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +5 -2
  271. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +3 -0
  272. package/dataflow/internal/process/functions/call/common.d.ts +11 -5
  273. package/dataflow/internal/process/functions/call/common.js +6 -0
  274. package/dataflow/internal/process/functions/call/default-call-handling.d.ts +3 -0
  275. package/dataflow/internal/process/functions/call/default-call-handling.js +3 -0
  276. package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
  277. package/dataflow/internal/process/functions/call/known-call-handling.js +7 -0
  278. package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
  279. package/dataflow/internal/process/functions/call/named-call-handling.js +6 -0
  280. package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +4 -1
  281. package/dataflow/internal/process/functions/call/unnamed-call-handling.js +3 -0
  282. package/dataflow/internal/process/functions/process-argument.d.ts +8 -2
  283. package/dataflow/internal/process/functions/process-argument.js +6 -0
  284. package/dataflow/internal/process/functions/process-parameter.d.ts +5 -2
  285. package/dataflow/internal/process/functions/process-parameter.js +3 -0
  286. package/dataflow/internal/process/process-symbol.d.ts +3 -0
  287. package/dataflow/internal/process/process-symbol.js +3 -0
  288. package/dataflow/internal/process/process-uninteresting-leaf.d.ts +3 -0
  289. package/dataflow/internal/process/process-uninteresting-leaf.js +3 -0
  290. package/dataflow/internal/process/process-value.d.ts +3 -0
  291. package/dataflow/internal/process/process-value.js +3 -0
  292. package/dataflow/origin/dfg-get-origin.d.ts +0 -2
  293. package/dataflow/origin/dfg-get-symbol-refs.d.ts +5 -7
  294. package/dataflow/origin/dfg-get-symbol-refs.js +6 -8
  295. package/dataflow/processor.d.ts +0 -1
  296. package/dataflow/processor.js +0 -1
  297. package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -0
  298. package/documentation/data/dfg/doc-data-dfg-util.js +6 -0
  299. package/documentation/data/faq/faqs.d.ts +5 -0
  300. package/documentation/data/faq/faqs.js +78 -0
  301. package/documentation/data/faq/wiki-faq-store.d.ts +18 -0
  302. package/documentation/data/faq/wiki-faq-store.js +75 -0
  303. package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
  304. package/documentation/data/server/doc-data-server-messages.js +4 -63
  305. package/documentation/doc-util/doc-auto-gen.d.ts +6 -0
  306. package/documentation/doc-util/doc-auto-gen.js +6 -0
  307. package/documentation/doc-util/doc-benchmarks.d.ts +12 -0
  308. package/documentation/doc-util/doc-benchmarks.js +12 -0
  309. package/documentation/doc-util/doc-cfg.d.ts +7 -1
  310. package/documentation/doc-util/doc-cfg.js +9 -0
  311. package/documentation/doc-util/doc-cli-option.d.ts +9 -0
  312. package/documentation/doc-util/doc-cli-option.js +9 -0
  313. package/documentation/doc-util/doc-code.d.ts +24 -0
  314. package/documentation/doc-util/doc-code.js +24 -0
  315. package/documentation/doc-util/doc-dfg.d.ts +7 -1
  316. package/documentation/doc-util/doc-dfg.js +9 -0
  317. package/documentation/doc-util/doc-env.d.ts +3 -0
  318. package/documentation/doc-util/doc-env.js +3 -0
  319. package/documentation/doc-util/doc-escape.d.ts +0 -1
  320. package/documentation/doc-util/doc-escape.js +0 -1
  321. package/documentation/doc-util/doc-files.d.ts +11 -0
  322. package/documentation/doc-util/doc-files.js +15 -4
  323. package/documentation/doc-util/doc-general.d.ts +6 -0
  324. package/documentation/doc-util/doc-general.js +6 -0
  325. package/documentation/doc-util/doc-normalized-ast.d.ts +7 -1
  326. package/documentation/doc-util/doc-normalized-ast.js +6 -0
  327. package/documentation/doc-util/doc-query.d.ts +15 -0
  328. package/documentation/doc-util/doc-query.js +17 -2
  329. package/documentation/doc-util/doc-repl.d.ts +6 -0
  330. package/documentation/doc-util/doc-repl.js +11 -2
  331. package/documentation/doc-util/doc-search.d.ts +15 -0
  332. package/documentation/doc-util/doc-search.js +17 -2
  333. package/documentation/doc-util/doc-server-message.d.ts +13 -1
  334. package/documentation/doc-util/doc-server-message.js +13 -1
  335. package/documentation/doc-util/doc-structure.d.ts +9 -0
  336. package/documentation/doc-util/doc-structure.js +10 -1
  337. package/documentation/doc-util/doc-types.d.ts +42 -0
  338. package/documentation/doc-util/doc-types.js +42 -0
  339. package/documentation/print-analyzer-wiki.js +4 -0
  340. package/documentation/print-core-wiki.d.ts +3 -0
  341. package/documentation/print-core-wiki.js +5 -2
  342. package/documentation/print-dataflow-graph-wiki.js +7 -7
  343. package/documentation/print-faq-wiki.js +3 -75
  344. package/documentation/print-interface-wiki.js +1 -1
  345. package/documentation/print-onboarding-wiki.js +1 -1
  346. package/documentation/print-query-wiki.js +24 -34
  347. package/documentation/print-readme.js +106 -1
  348. package/engines.d.ts +1 -1
  349. package/linter/linter-executor.d.ts +6 -3
  350. package/linter/linter-executor.js +3 -0
  351. package/linter/linter-format.d.ts +8 -0
  352. package/linter/linter-format.js +8 -0
  353. package/linter/rules/absolute-path.d.ts +3 -4
  354. package/linter/rules/dataframe-access-validation.d.ts +3 -4
  355. package/linter/rules/dataframe-access-validation.js +9 -11
  356. package/linter/rules/dead-code.d.ts +1 -1
  357. package/linter/rules/deprecated-functions.d.ts +1 -1
  358. package/linter/rules/file-path-validity.d.ts +1 -2
  359. package/linter/rules/function-finder-util.d.ts +1 -2
  360. package/linter/rules/naming-convention.d.ts +13 -2
  361. package/linter/rules/naming-convention.js +13 -1
  362. package/linter/rules/network-functions.d.ts +1 -1
  363. package/linter/rules/seeded-randomness.d.ts +1 -2
  364. package/linter/rules/unused-definition.d.ts +2 -3
  365. package/linter/rules/useless-loop.d.ts +1 -2
  366. package/package.json +2 -2
  367. package/project/cache/flowr-analyzer-cache.d.ts +8 -14
  368. package/project/cache/flowr-analyzer-cache.js +21 -19
  369. package/project/cfg-kind.d.ts +17 -0
  370. package/project/cfg-kind.js +22 -0
  371. package/project/context/abstract-flowr-analyzer-context.d.ts +4 -0
  372. package/project/context/flowr-analyzer-context.d.ts +9 -6
  373. package/project/context/flowr-analyzer-context.js +11 -0
  374. package/project/context/flowr-analyzer-dependencies-context.d.ts +1 -1
  375. package/project/context/flowr-analyzer-dependencies-context.js +4 -0
  376. package/project/context/flowr-analyzer-files-context.d.ts +3 -4
  377. package/project/context/flowr-analyzer-files-context.js +4 -0
  378. package/project/context/flowr-analyzer-loading-order-context.d.ts +1 -0
  379. package/project/context/flowr-analyzer-loading-order-context.js +6 -0
  380. package/project/context/flowr-file.d.ts +0 -1
  381. package/project/flowr-analyzer-builder.d.ts +1 -3
  382. package/project/flowr-analyzer-builder.js +5 -6
  383. package/project/flowr-analyzer.d.ts +42 -32
  384. package/project/flowr-analyzer.js +14 -8
  385. package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +1 -1
  386. package/project/plugins/file-plugins/flowr-description-file.d.ts +1 -3
  387. package/project/plugins/file-plugins/flowr-description-file.js +0 -1
  388. package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
  389. package/queries/base-query-format.d.ts +2 -2
  390. package/queries/catalog/call-context-query/call-context-query-executor.d.ts +3 -0
  391. package/queries/catalog/call-context-query/call-context-query-executor.js +5 -1
  392. package/queries/catalog/call-context-query/call-context-query-format.d.ts +3 -3
  393. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +11 -2
  394. package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +9 -0
  395. package/queries/catalog/cluster-query/cluster-query-executor.d.ts +3 -0
  396. package/queries/catalog/cluster-query/cluster-query-executor.js +3 -0
  397. package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
  398. package/queries/catalog/config-query/config-query-executor.d.ts +3 -0
  399. package/queries/catalog/config-query/config-query-executor.js +3 -0
  400. package/queries/catalog/config-query/config-query-format.d.ts +6 -3
  401. package/queries/catalog/config-query/config-query-format.js +13 -16
  402. package/queries/catalog/control-flow-query/control-flow-query-executor.d.ts +3 -0
  403. package/queries/catalog/control-flow-query/control-flow-query-executor.js +5 -1
  404. package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +3 -3
  405. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.d.ts +3 -0
  406. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +3 -0
  407. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
  408. package/queries/catalog/dataflow-query/dataflow-query-executor.d.ts +3 -0
  409. package/queries/catalog/dataflow-query/dataflow-query-executor.js +3 -0
  410. package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
  411. package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +4 -1
  412. package/queries/catalog/dependencies-query/dependencies-query-executor.js +7 -4
  413. package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +4 -1
  414. package/queries/catalog/dependencies-query/dependencies-query-format.js +4 -1
  415. package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +4 -1
  416. package/queries/catalog/df-shape-query/df-shape-query-executor.js +8 -4
  417. package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +10 -3
  418. package/queries/catalog/df-shape-query/df-shape-query-format.js +24 -5
  419. package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +3 -0
  420. package/queries/catalog/happens-before-query/happens-before-query-executor.js +3 -0
  421. package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
  422. package/queries/catalog/id-map-query/id-map-query-executor.d.ts +3 -0
  423. package/queries/catalog/id-map-query/id-map-query-executor.js +3 -0
  424. package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
  425. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +6 -0
  426. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +48 -0
  427. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +22 -0
  428. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.js +32 -0
  429. package/queries/catalog/linter-query/linter-query-executor.d.ts +4 -0
  430. package/queries/catalog/linter-query/linter-query-executor.js +4 -0
  431. package/queries/catalog/linter-query/linter-query-format.d.ts +12 -3
  432. package/queries/catalog/linter-query/linter-query-format.js +67 -0
  433. package/queries/catalog/location-map-query/location-map-query-executor.d.ts +4 -0
  434. package/queries/catalog/location-map-query/location-map-query-executor.js +5 -1
  435. package/queries/catalog/location-map-query/location-map-query-format.d.ts +7 -1
  436. package/queries/catalog/location-map-query/location-map-query-format.js +12 -0
  437. package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.d.ts +3 -0
  438. package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.js +3 -0
  439. package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
  440. package/queries/catalog/origin-query/origin-query-executor.d.ts +7 -1
  441. package/queries/catalog/origin-query/origin-query-executor.js +6 -0
  442. package/queries/catalog/origin-query/origin-query-format.d.ts +7 -1
  443. package/queries/catalog/origin-query/origin-query-format.js +17 -1
  444. package/queries/catalog/project-query/project-query-executor.d.ts +3 -0
  445. package/queries/catalog/project-query/project-query-executor.js +3 -0
  446. package/queries/catalog/project-query/project-query-format.d.ts +1 -1
  447. package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +6 -0
  448. package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +6 -0
  449. package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +7 -1
  450. package/queries/catalog/resolve-value-query/resolve-value-query-format.js +19 -1
  451. package/queries/catalog/search-query/search-query-executor.d.ts +3 -0
  452. package/queries/catalog/search-query/search-query-executor.js +3 -0
  453. package/queries/catalog/search-query/search-query-format.d.ts +1 -1
  454. package/queries/catalog/static-slice-query/static-slice-query-executor.d.ts +9 -0
  455. package/queries/catalog/static-slice-query/static-slice-query-executor.js +9 -0
  456. package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +7 -1
  457. package/queries/catalog/static-slice-query/static-slice-query-format.js +17 -0
  458. package/queries/query-print.d.ts +20 -4
  459. package/queries/query-print.js +18 -2
  460. package/queries/query.d.ts +91 -53
  461. package/queries/query.js +37 -23
  462. package/queries/virtual-query/virtual-queries.d.ts +1 -2
  463. package/r-bridge/data/get.d.ts +6 -0
  464. package/r-bridge/data/get.js +6 -0
  465. package/r-bridge/lang-4.x/ast/model/collect.d.ts +0 -1
  466. package/r-bridge/lang-4.x/ast/model/collect.js +0 -1
  467. package/r-bridge/lang-4.x/ast/model/model.d.ts +8 -11
  468. package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +0 -2
  469. package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +3 -0
  470. package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
  471. package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +3 -0
  472. package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
  473. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +3 -0
  474. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +3 -0
  475. package/r-bridge/lang-4.x/ast/model/operators.d.ts +0 -1
  476. package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +6 -7
  477. package/r-bridge/lang-4.x/ast/model/processing/decorate.js +6 -6
  478. package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +1 -1
  479. package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +0 -1
  480. package/r-bridge/lang-4.x/ast/model/processing/node-id.js +0 -1
  481. package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +0 -1
  482. package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +1 -2
  483. package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +0 -1
  484. package/r-bridge/lang-4.x/ast/model/processing/visitor.js +0 -1
  485. package/r-bridge/lang-4.x/ast/model/type.d.ts +4 -5
  486. package/r-bridge/lang-4.x/ast/model/type.js +4 -5
  487. package/r-bridge/lang-4.x/ast/model/versions.d.ts +0 -1
  488. package/r-bridge/lang-4.x/ast/model/versions.js +0 -1
  489. package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +4 -5
  490. package/r-bridge/lang-4.x/ast/parser/json/parser.js +0 -1
  491. package/r-bridge/lang-4.x/ast/parser/main/internal/control/normalize-if-then.d.ts +1 -1
  492. package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.d.ts +0 -1
  493. package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.js +0 -1
  494. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.d.ts +0 -2
  495. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.js +0 -2
  496. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.d.ts +1 -3
  497. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.js +0 -2
  498. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.d.ts +0 -2
  499. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.js +0 -2
  500. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.d.ts +0 -2
  501. package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.js +0 -2
  502. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.d.ts +3 -0
  503. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.js +3 -0
  504. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.d.ts +4 -1
  505. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.js +3 -0
  506. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.d.ts +3 -0
  507. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.js +3 -0
  508. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.d.ts +0 -2
  509. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.js +0 -2
  510. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.d.ts +4 -1
  511. package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.js +3 -0
  512. package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.d.ts +0 -2
  513. package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.js +0 -2
  514. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-binary.d.ts +1 -1
  515. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.d.ts +0 -2
  516. package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.js +0 -2
  517. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.d.ts +0 -1
  518. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.js +0 -1
  519. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.d.ts +0 -1
  520. package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.js +0 -1
  521. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.d.ts +3 -0
  522. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.js +3 -0
  523. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.d.ts +9 -0
  524. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.js +9 -0
  525. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.d.ts +1 -3
  526. package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.js +0 -2
  527. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.d.ts +1 -2
  528. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.js +0 -1
  529. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.d.ts +0 -1
  530. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.js +0 -1
  531. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.d.ts +0 -2
  532. package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.js +0 -2
  533. package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.d.ts +14 -5
  534. package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.js +13 -6
  535. package/r-bridge/lang-4.x/convert-values.d.ts +12 -1
  536. package/r-bridge/lang-4.x/convert-values.js +12 -1
  537. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +7 -2
  538. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +17 -0
  539. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +13 -1
  540. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +48 -19
  541. package/r-bridge/parser.d.ts +30 -2
  542. package/r-bridge/retriever.d.ts +16 -1
  543. package/r-bridge/retriever.js +15 -0
  544. package/r-bridge/shell-executor.d.ts +3 -3
  545. package/r-bridge/shell-executor.js +6 -1
  546. package/r-bridge/shell.d.ts +24 -23
  547. package/r-bridge/shell.js +37 -31
  548. package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -1
  549. package/reconstruct/auto-select/magic-comments.d.ts +1 -2
  550. package/reconstruct/auto-select/magic-comments.js +1 -2
  551. package/reconstruct/reconstruct.d.ts +1 -3
  552. package/reconstruct/reconstruct.js +0 -2
  553. package/search/flowr-search-builder.d.ts +12 -5
  554. package/search/flowr-search-builder.js +7 -2
  555. package/search/flowr-search-executor.d.ts +3 -3
  556. package/search/flowr-search-filters.d.ts +14 -1
  557. package/search/flowr-search-filters.js +13 -0
  558. package/search/flowr-search-printer.d.ts +6 -0
  559. package/search/flowr-search-printer.js +6 -0
  560. package/search/flowr-search-traverse.d.ts +1 -1
  561. package/search/flowr-search.d.ts +3 -3
  562. package/search/search-executor/search-enrichers.d.ts +9 -6
  563. package/search/search-executor/search-enrichers.js +5 -1
  564. package/search/search-executor/search-generators.d.ts +19 -10
  565. package/search/search-executor/search-generators.js +49 -2
  566. package/search/search-executor/search-mappers.d.ts +8 -5
  567. package/search/search-executor/search-mappers.js +3 -0
  568. package/search/search-executor/search-transformer.d.ts +19 -16
  569. package/search/search-executor/search-transformer.js +3 -0
  570. package/slicing/criterion/collect-all.d.ts +10 -10
  571. package/slicing/criterion/parse.d.ts +4 -2
  572. package/slicing/criterion/parse.js +4 -2
  573. package/slicing/static/fingerprint.d.ts +9 -1
  574. package/slicing/static/fingerprint.js +8 -0
  575. package/slicing/static/slice-call.d.ts +2 -2
  576. package/slicing/static/static-slicer.d.ts +8 -4
  577. package/slicing/static/static-slicer.js +5 -1
  578. package/slicing/static/visiting-queue.d.ts +1 -1
  579. package/statistics/features/common-syntax-probability.d.ts +10 -1
  580. package/statistics/features/common-syntax-probability.js +9 -0
  581. package/statistics/features/feature.d.ts +0 -4
  582. package/statistics/features/feature.js +0 -1
  583. package/statistics/features/post-processing.d.ts +6 -0
  584. package/statistics/features/post-processing.js +6 -0
  585. package/statistics/features/supported/assignments/post-process.d.ts +3 -0
  586. package/statistics/features/supported/assignments/post-process.js +3 -0
  587. package/statistics/features/supported/comments/post-process.d.ts +3 -0
  588. package/statistics/features/supported/comments/post-process.js +3 -0
  589. package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
  590. package/statistics/features/supported/control-flow/post-process.js +3 -0
  591. package/statistics/features/supported/data-access/data-access.d.ts +1 -1
  592. package/statistics/features/supported/data-access/post-process.d.ts +3 -0
  593. package/statistics/features/supported/data-access/post-process.js +3 -0
  594. package/statistics/features/supported/defined-functions/defined-functions.d.ts +1 -1
  595. package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
  596. package/statistics/features/supported/expression-list/post-process.js +3 -0
  597. package/statistics/features/supported/loops/post-process.d.ts +3 -0
  598. package/statistics/features/supported/loops/post-process.js +3 -0
  599. package/statistics/features/supported/used-functions/used-functions.d.ts +1 -1
  600. package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
  601. package/statistics/features/supported/used-packages/post-process.js +3 -0
  602. package/statistics/features/supported/values/post-process.d.ts +3 -0
  603. package/statistics/features/supported/values/post-process.js +3 -0
  604. package/statistics/features/supported/variables/post-process.d.ts +7 -1
  605. package/statistics/features/supported/variables/post-process.js +6 -0
  606. package/statistics/meta-statistics.d.ts +8 -9
  607. package/statistics/output/file-provider.d.ts +5 -6
  608. package/statistics/output/file-provider.js +5 -6
  609. package/statistics/output/print-stats.d.ts +13 -1
  610. package/statistics/output/print-stats.js +12 -0
  611. package/statistics/output/statistics-file.d.ts +1 -2
  612. package/statistics/output/statistics-file.js +0 -1
  613. package/statistics/statistics.d.ts +3 -4
  614. package/statistics/statistics.js +1 -2
  615. package/statistics/summarizer/auto-detect.d.ts +3 -0
  616. package/statistics/summarizer/auto-detect.js +3 -0
  617. package/statistics/summarizer/post-process/clusterer.d.ts +3 -4
  618. package/statistics/summarizer/post-process/clusterer.js +0 -2
  619. package/statistics/summarizer/post-process/file-based-count.d.ts +0 -1
  620. package/statistics/summarizer/post-process/file-based-count.js +0 -1
  621. package/statistics/summarizer/post-process/histogram.d.ts +0 -2
  622. package/statistics/summarizer/post-process/histogram.js +0 -2
  623. package/statistics/summarizer/post-process/post-process-output.d.ts +2 -4
  624. package/statistics/summarizer/post-process/post-process-output.js +0 -3
  625. package/statistics/summarizer/second-phase/process.d.ts +5 -3
  626. package/statistics/summarizer/second-phase/process.js +3 -1
  627. package/statistics/summarizer/summarizer.d.ts +1 -2
  628. package/util/assert.d.ts +52 -2
  629. package/util/assert.js +52 -2
  630. package/util/collections/arrays.d.ts +10 -5
  631. package/util/collections/arrays.js +10 -5
  632. package/util/collections/defaultmap.d.ts +11 -11
  633. package/util/collections/defaultmap.js +11 -11
  634. package/util/containers.d.ts +2 -7
  635. package/util/containers.js +0 -5
  636. package/util/diff-graph.d.ts +0 -1
  637. package/util/diff-graph.js +0 -1
  638. package/util/diff.d.ts +3 -1
  639. package/util/diff.js +3 -1
  640. package/util/files.d.ts +11 -11
  641. package/util/files.js +10 -10
  642. package/util/formats/adapter.d.ts +9 -0
  643. package/util/formats/adapter.js +9 -0
  644. package/util/formats/adapters/rmd-adapter.d.ts +10 -1
  645. package/util/formats/adapters/rmd-adapter.js +10 -1
  646. package/util/html-hover-over.d.ts +5 -0
  647. package/util/html-hover-over.js +5 -0
  648. package/util/json.d.ts +13 -0
  649. package/util/json.js +13 -0
  650. package/util/log.d.ts +2 -2
  651. package/util/log.js +2 -2
  652. package/util/mermaid/ast.d.ts +3 -0
  653. package/util/mermaid/ast.js +3 -0
  654. package/util/mermaid/cfg.d.ts +1 -1
  655. package/util/mermaid/dfg.d.ts +12 -4
  656. package/util/mermaid/dfg.js +9 -1
  657. package/util/mermaid/mermaid.d.ts +6 -1
  658. package/util/mermaid/mermaid.js +6 -1
  659. package/util/numbers.d.ts +7 -0
  660. package/util/numbers.js +7 -0
  661. package/util/objects.d.ts +0 -2
  662. package/util/os.d.ts +3 -0
  663. package/util/os.js +3 -0
  664. package/util/parallel.d.ts +4 -4
  665. package/util/parallel.js +4 -4
  666. package/util/prefix.d.ts +0 -1
  667. package/util/prefix.js +0 -1
  668. package/util/quads.d.ts +14 -17
  669. package/util/quads.js +3 -5
  670. package/util/r-value.d.ts +11 -2
  671. package/util/r-value.js +23 -0
  672. package/util/random.d.ts +3 -0
  673. package/util/random.js +3 -0
  674. package/util/range.d.ts +9 -3
  675. package/util/range.js +15 -2
  676. package/util/schema.d.ts +14 -1
  677. package/util/schema.js +15 -2
  678. package/util/simple-df/dfg-view.d.ts +4 -1
  679. package/util/simple-df/dfg-view.js +4 -1
  680. package/util/summarizer.d.ts +9 -1
  681. package/util/summarizer.js +9 -0
  682. package/util/text/ansi.d.ts +3 -0
  683. package/util/text/ansi.js +3 -0
  684. package/util/text/args.d.ts +2 -4
  685. package/util/text/args.js +7 -5
  686. package/util/text/text.d.ts +4 -0
  687. package/util/text/text.js +4 -0
  688. package/util/text/time.d.ts +0 -1
  689. package/util/text/time.js +0 -1
  690. package/util/version.d.ts +26 -0
  691. package/util/version.js +37 -1
  692. package/abstract-interpretation/data-frame/domain.d.ts +0 -107
  693. package/abstract-interpretation/data-frame/domain.js +0 -315
  694. package/abstract-interpretation/domains/set-bounded-set-domain.d.ts +0 -43
  695. package/abstract-interpretation/domains/set-bounded-set-domain.js +0 -164
  696. package/cli/repl/commands/repl-lineage.d.ts +0 -15
  697. package/cli/repl/commands/repl-lineage.js +0 -67
  698. package/cli/repl/server/messages/message-lineage.d.ts +0 -17
  699. package/cli/repl/server/messages/message-lineage.js +0 -25
  700. package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
  701. package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
  702. package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
  703. package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
@@ -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
@@ -138,6 +136,8 @@ function resolveIdToValue(id, { environment, graph, idMap, full = true, resolve
138
136
  else {
139
137
  return r_value_1.Top;
140
138
  }
139
+ case type_1.RType.FunctionDefinition:
140
+ return (0, set_constants_1.setFrom)({ type: 'function-definition' });
141
141
  case type_1.RType.FunctionCall:
142
142
  case type_1.RType.BinaryOp:
143
143
  case type_1.RType.UnaryOp:
@@ -155,8 +155,6 @@ function resolveIdToValue(id, { environment, graph, idMap, full = true, resolve
155
155
  *
156
156
  * Uses the aliases that were tracked in the environments (by the
157
157
  * {@link getAliases} function) to resolve a node to a value.
158
- *
159
- *
160
158
  * @param resolve - Variable resolve mode
161
159
  * @param identifier - Identifier to resolve
162
160
  * @param use - Environment to use
@@ -254,20 +252,22 @@ function isNestedInLoop(node, ast) {
254
252
  * Please use {@link resolveIdToValue}
255
253
  *
256
254
  * Tries to resolve the value of a node by traversing the dataflow graph
257
- *
258
255
  * @param id - node to resolve
259
256
  * @param graph - dataflow graph
260
257
  * @param idMap - idmap of dataflow graph
261
258
  * @returns Value of node or Top/Bottom
262
259
  */
263
260
  function trackAliasesInGraph(id, graph, idMap) {
261
+ if (!graph.get(id)) {
262
+ return r_value_1.Bottom;
263
+ }
264
264
  idMap ??= graph.idMap;
265
265
  (0, assert_1.guard)(idMap !== undefined, 'The ID map is required to get the lineage of a node');
266
266
  const queue = new visiting_queue_1.VisitingQueue(25);
267
267
  const clean = (0, environment_1.initializeCleanEnvironments)();
268
268
  const cleanFingerprint = (0, fingerprint_1.envFingerprint)(clean);
269
269
  queue.add(id, clean, cleanFingerprint, false);
270
- let forceBot = false;
270
+ let forceTop = false;
271
271
  const resultIds = [];
272
272
  while (queue.nonEmpty()) {
273
273
  const { id, baseEnvironment } = queue.next();
@@ -282,15 +282,15 @@ function trackAliasesInGraph(id, graph, idMap) {
282
282
  if (target === undefined) {
283
283
  continue;
284
284
  }
285
- if (target.type === type_1.RType.WhileLoop || target.type === type_1.RType.RepeatLoop) {
286
- 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;
287
287
  break;
288
288
  }
289
289
  }
290
- if (!forceBot && (cds?.length === 0 && isNestedInLoop(idMap.get(id), idMap))) {
291
- forceBot = true;
290
+ if (!forceTop && (cds?.length === 0 && isNestedInLoop(idMap.get(id), idMap))) {
291
+ forceTop = true;
292
292
  }
293
- if (forceBot) {
293
+ if (forceTop) {
294
294
  break;
295
295
  }
296
296
  if (vertex.tag === vertex_1.VertexType.Value) {
@@ -316,8 +316,8 @@ function trackAliasesInGraph(id, graph, idMap) {
316
316
  }
317
317
  }
318
318
  }
319
- if (forceBot || resultIds.length === 0) {
320
- return r_value_1.Bottom;
319
+ if (forceTop || resultIds.length === 0) {
320
+ return r_value_1.Top;
321
321
  }
322
322
  const values = new Set();
323
323
  for (const id of resultIds) {
@@ -332,7 +332,6 @@ function trackAliasesInGraph(id, graph, idMap) {
332
332
  * Please use {@link resolveIdToValue}
333
333
  *
334
334
  * Resolve an Identifier to a constant, if the identifier is a constant
335
- *
336
335
  * @param name - Identifier to resolve
337
336
  * @param environment - Environment to use
338
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
@@ -23,7 +23,6 @@ const scalar_consatnts_1 = require("../values/scalar/scalar-consatnts");
23
23
  *
24
24
  * This function converts an RNode to its Value, but also recursively resolves
25
25
  * aliases and vectors (in case of a vector).
26
- *
27
26
  * @param a - Ast node to resolve
28
27
  * @param resolve - Variable resolve mode
29
28
  * @param env - Environment to use
@@ -41,6 +40,9 @@ function resolveNode(resolve, a, env, graph, map) {
41
40
  else if (a.type === type_1.RType.Logical) {
42
41
  return a.content.valueOf() ? logical_constants_1.ValueLogicalTrue : logical_constants_1.ValueLogicalFalse;
43
42
  }
43
+ else if (a.type === type_1.RType.FunctionDefinition) {
44
+ return { type: 'function-definition' };
45
+ }
44
46
  else if ((a.type === type_1.RType.FunctionCall || a.type === type_1.RType.BinaryOp || a.type === type_1.RType.UnaryOp) && graph) {
45
47
  const origin = (0, dfg_get_origin_1.getOriginInDfg)(graph, a.info.id)?.[0];
46
48
  if (origin === undefined || origin.type !== 3 /* OriginType.BuiltInFunctionOrigin */) {
@@ -72,7 +74,6 @@ function resolveNode(resolve, a, env, graph, map) {
72
74
  *
73
75
  * This function resolves a vector function call `c` to a {@link ValueVector}
74
76
  * by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
75
- *
76
77
  * @param resolve - Variable resolve mode
77
78
  * @param node - Node of the vector function to resolve
78
79
  * @param env - Environment to use
@@ -94,7 +95,6 @@ function resolveAsVector(resolve, node, environment, graph, idMap) {
94
95
  *
95
96
  * This function resolves a binary sequence operator `:` to a {@link ValueVector} of {@link ValueNumber}s
96
97
  * by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
97
- *
98
98
  * @param resolve - Variable resolve mode
99
99
  * @param operator - Node of the sequence operator to resolve
100
100
  * @param env - Environment to use
@@ -122,7 +122,6 @@ function resolveAsSeq(resolve, operator, environment, graph, idMap) {
122
122
  *
123
123
  * This function resolves a unary plus operator `+` to a {@link ValueNumber} or {@link ValueVector} of ValueNumbers
124
124
  * by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
125
- *
126
125
  * @param resolve - Variable resolve mode
127
126
  * @param operator - Node of the plus operator to resolve
128
127
  * @param env - Environment to use
@@ -151,7 +150,6 @@ function resolveAsPlus(resolve, operator, environment, graph, idMap) {
151
150
  *
152
151
  * This function resolves a unary minus operator `-` to a {@link ValueNumber} or {@link ValueVector} of ValueNumbers
153
152
  * by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
154
- *
155
153
  * @param resolve - Variable resolve mode
156
154
  * @param operator - Node of the minus operator to resolve
157
155
  * @param env - Environment to use
@@ -1,6 +1,5 @@
1
1
  import type { RNodeWithParent } from '../../../r-bridge/lang-4.x/ast/model/processing/decorate';
2
- import type { Lift, Value, ValueSet } from './r-value';
3
- import { Bottom, Top } from './r-value';
2
+ import { type Lift, type Value, type ValueSet, Bottom, Top } from './r-value';
4
3
  /**
5
4
  * Takes n potentially lifted ops and returns `Top` or `Bottom` if any is `Top` or `Bottom`.
6
5
  */
@@ -8,7 +7,6 @@ export declare function bottomTopGuard(...a: Lift<unknown>[]): typeof Top | type
8
7
  /**
9
8
  * Returns a value set, if a is not bottom or top, otherwise undefined.
10
9
  * Useful when working with values returned by {@link resolveIdToValue}
11
- *
12
10
  * @param a - value set to check
13
11
  * @returns value set if a is not top or bottom
14
12
  */
@@ -23,7 +23,6 @@ function bottomTopGuard(...a) {
23
23
  /**
24
24
  * Returns a value set, if a is not bottom or top, otherwise undefined.
25
25
  * Useful when working with values returned by {@link resolveIdToValue}
26
- *
27
26
  * @param a - value set to check
28
27
  * @returns value set if a is not top or bottom
29
28
  */
@@ -1,4 +1,10 @@
1
1
  import type { RNumberValue } from '../../../../r-bridge/lang-4.x/convert-values';
2
- import type { Lift, ValueInterval, ValueNumber } from '../r-value';
2
+ import { type Lift, type ValueInterval, type ValueNumber } from '../r-value';
3
+ /**
4
+ *
5
+ */
3
6
  export declare function intervalFrom(start: RNumberValue | number, end?: number | RNumberValue, startInclusive?: boolean, endInclusive?: boolean): ValueInterval;
7
+ /**
8
+ *
9
+ */
4
10
  export declare function intervalFromValues(start: Lift<ValueNumber>, end?: Lift<ValueNumber<Lift<RNumberValue>>>, startInclusive?: boolean, endInclusive?: boolean): ValueInterval;
@@ -4,6 +4,9 @@ exports.intervalFrom = intervalFrom;
4
4
  exports.intervalFromValues = intervalFromValues;
5
5
  const r_value_1 = require("../r-value");
6
6
  const scalar_consatnts_1 = require("../scalar/scalar-consatnts");
7
+ /**
8
+ *
9
+ */
7
10
  function intervalFrom(start, end = start, startInclusive = true, endInclusive = true) {
8
11
  return intervalFromValues(typeof start === 'number' ? (0, scalar_consatnts_1.getScalarFromInteger)(start) : (0, scalar_consatnts_1.liftScalar)(start), typeof end === 'number' ? (0, scalar_consatnts_1.getScalarFromInteger)(end) : (0, scalar_consatnts_1.liftScalar)(end), startInclusive, endInclusive);
9
12
  }
@@ -15,6 +18,9 @@ function shiftNum(v) {
15
18
  return v;
16
19
  }
17
20
  }
21
+ /**
22
+ *
23
+ */
18
24
  function intervalFromValues(start, end = start, startInclusive = true, endInclusive = true) {
19
25
  return {
20
26
  type: 'interval',
@@ -1,4 +1,7 @@
1
- import type { Lift, TernaryLogical, ValueLogical } from '../r-value';
1
+ import { type Lift, type TernaryLogical, type ValueLogical } from '../r-value';
2
+ /**
3
+ *
4
+ */
2
5
  export declare function liftLogical(log: Lift<TernaryLogical>): ValueLogical;
3
6
  export declare const ValueLogicalTrue: ValueLogical;
4
7
  export declare const ValueLogicalFalse: ValueLogical;
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ValueLogicalBot = exports.ValueLogicalTop = exports.ValueLogicalMaybe = exports.ValueLogicalFalse = exports.ValueLogicalTrue = void 0;
4
4
  exports.liftLogical = liftLogical;
5
5
  const r_value_1 = require("../r-value");
6
+ /**
7
+ *
8
+ */
6
9
  function liftLogical(log) {
7
10
  if (log === r_value_1.Top) {
8
11
  return exports.ValueLogicalTop;
@@ -37,6 +37,9 @@ export interface ValueString<Str extends Lift<RStringValue> = Lift<RStringValue>
37
37
  type: 'string';
38
38
  value: Str;
39
39
  }
40
+ export interface ValueFunctionDefinition {
41
+ type: 'function-definition';
42
+ }
40
43
  export interface ValueMissing {
41
44
  type: 'missing';
42
45
  }
@@ -45,14 +48,26 @@ export interface ValueLogical {
45
48
  type: 'logical';
46
49
  value: Lift<TernaryLogical>;
47
50
  }
48
- export type Value = Lift<ValueInterval | ValueVector | ValueSet | ValueNumber | ValueString | ValueLogical | ValueMissing>;
51
+ export type Value = Lift<ValueInterval | ValueVector | ValueSet | ValueNumber | ValueString | ValueLogical | ValueMissing | ValueFunctionDefinition>;
49
52
  export type ValueType<V> = V extends {
50
53
  type: infer T;
51
54
  } ? T : never;
52
55
  export type ValueTypes = ValueType<Value>;
56
+ /**
57
+ *
58
+ */
53
59
  export declare function typeOfValue<V extends Value>(value: V): V['type'];
60
+ /** Checks whether the given value is the top value */
54
61
  export declare function isTop<V extends Lift<unknown>>(value: V): value is typeof Top;
62
+ /** Checks whether the given value is the bottom value */
55
63
  export declare function isBottom<V extends Lift<unknown>>(value: V): value is typeof Bottom;
64
+ /** Checks whether the given value is a proper value (neither top nor bottom) */
56
65
  export declare function isValue<V extends Lift<unknown>>(value: V): value is Unlift<V>;
66
+ /**
67
+ * Treat a value as unlifted value, throws if it is top or bottom.
68
+ */
57
69
  export declare function asValue<V extends Lift<unknown>>(value: V): Unlift<V>;
70
+ /**
71
+ *
72
+ */
58
73
  export declare function stringifyValue(value: Lift<Value>): string;
@@ -10,20 +10,29 @@ exports.stringifyValue = stringifyValue;
10
10
  const assert_1 = require("../../../util/assert");
11
11
  exports.Top = { type: Symbol('⊤') };
12
12
  exports.Bottom = { type: Symbol('⊥') };
13
+ /**
14
+ *
15
+ */
13
16
  function typeOfValue(value) {
14
17
  return value.type;
15
18
  }
19
+ /** Checks whether the given value is the top value */
16
20
  // @ts-expect-error -- this is a save cast
17
21
  function isTop(value) {
18
22
  return value === exports.Top;
19
23
  }
24
+ /** Checks whether the given value is the bottom value */
20
25
  // @ts-expect-error -- this is a save cast
21
26
  function isBottom(value) {
22
27
  return value === exports.Bottom;
23
28
  }
29
+ /** Checks whether the given value is a proper value (neither top nor bottom) */
24
30
  function isValue(value) {
25
31
  return !isTop(value) && !isBottom(value);
26
32
  }
33
+ /**
34
+ * Treat a value as unlifted value, throws if it is top or bottom.
35
+ */
27
36
  function asValue(value) {
28
37
  (0, assert_1.guard)(isValue(value), 'Expected a value, but got a top or bottom value');
29
38
  return value;
@@ -60,6 +69,9 @@ function renderString(value) {
60
69
  return `${quote}${JSON.stringify(value.str).slice(1, -1)}${quote}`;
61
70
  }
62
71
  }
72
+ /**
73
+ *
74
+ */
63
75
  function stringifyValue(value) {
64
76
  return tryStringifyBoTop(value, v => {
65
77
  const t = v.type;
@@ -82,6 +94,8 @@ function stringifyValue(value) {
82
94
  return tryStringifyBoTop(v.value, l => l === 'maybe' ? 'maybe' : l ? 'TRUE' : 'FALSE', () => '⊤ (logical)', () => '⊥ (logical)');
83
95
  case 'missing':
84
96
  return '(missing)';
97
+ case 'function-definition':
98
+ return 'fn-def';
85
99
  default:
86
100
  (0, assert_1.assertUnreachable)(t);
87
101
  }
@@ -1,6 +1,12 @@
1
- import type { Lift, ValueNumber } from '../r-value';
1
+ import { type Lift, type ValueNumber } from '../r-value';
2
2
  import type { RNumberValue } from '../../../../r-bridge/lang-4.x/convert-values';
3
+ /**
4
+ *
5
+ */
3
6
  export declare function getScalarFromInteger(num: number, markedAsInt?: boolean, complexNumber?: boolean): ValueNumber<RNumberValue>;
7
+ /**
8
+ *
9
+ */
4
10
  export declare function liftScalar(value: Lift<RNumberValue>): ValueNumber;
5
11
  export declare const ValueIntegerOne: ValueNumber<RNumberValue>;
6
12
  export declare const ValueNumberComplexOne: ValueNumber<RNumberValue>;
@@ -4,6 +4,9 @@ exports.ValueIntegerBottom = exports.ValueIntegerTop = exports.ValueNumberOneHal
4
4
  exports.getScalarFromInteger = getScalarFromInteger;
5
5
  exports.liftScalar = liftScalar;
6
6
  const r_value_1 = require("../r-value");
7
+ /**
8
+ *
9
+ */
7
10
  function getScalarFromInteger(num, markedAsInt = Number.isInteger(num), complexNumber = false) {
8
11
  return {
9
12
  type: 'number',
@@ -14,6 +17,9 @@ function getScalarFromInteger(num, markedAsInt = Number.isInteger(num), complexN
14
17
  }
15
18
  };
16
19
  }
20
+ /**
21
+ *
22
+ */
17
23
  function liftScalar(value) {
18
24
  return {
19
25
  type: 'number',
@@ -1,6 +1,11 @@
1
- import type { Lift, Value, ValueSet } from '../r-value';
2
- import { Top } from '../r-value';
1
+ import { type Lift, type Value, type ValueSet, Top } from '../r-value';
2
+ /**
3
+ *
4
+ */
3
5
  export declare function setFrom<V extends Value[]>(...elements: V): Lift<ValueSet<Value[]>>;
6
+ /**
7
+ *
8
+ */
4
9
  export declare function isSet<V extends Value>(element: V): boolean;
5
10
  export declare const ValueEmptySet: Lift<ValueSet<Value[]>>;
6
11
  export declare const ValueSetTop: ValueSet<typeof Top>;