@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
@@ -6,7 +6,6 @@ import type { JsonEntry } from '../../../json/format';
6
6
  * Normalize the given object as an R line directive (`#line <number> "<file>"`).
7
7
  * This requires you to check the corresponding name beforehand.
8
8
  * If the given object turns out to be no line directive, this returns a normal comment instead.
9
- *
10
9
  * @param data - The data used by the parser (see {@link NormalizerData})
11
10
  * @param obj - The JSON object to extract the meta-information from
12
11
  */
@@ -10,7 +10,6 @@ const LineDirectiveRegex = /^#line\s+(\d+)\s+"([^"]+)"\s*$/;
10
10
  * Normalize the given object as an R line directive (`#line <number> "<file>"`).
11
11
  * This requires you to check the corresponding name beforehand.
12
12
  * If the given object turns out to be no line directive, this returns a normal comment instead.
13
- *
14
13
  * @param data - The data used by the parser (see {@link NormalizerData})
15
14
  * @param obj - The JSON object to extract the meta-information from
16
15
  */
@@ -1,3 +1,6 @@
1
1
  import type { RDelimiter } from '../../../../model/nodes/info/r-delimiter';
2
2
  import type { NamedJsonEntry } from '../../../json/format';
3
+ /**
4
+ * Normalizes a delimiter node like `,`.
5
+ */
3
6
  export declare function normalizeDelimiter(elem: NamedJsonEntry): RDelimiter;
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizeDelimiter = normalizeDelimiter;
4
4
  const normalize_meta_1 = require("../../normalize-meta");
5
5
  const type_1 = require("../../../../model/type");
6
+ /**
7
+ * Normalizes a delimiter node like `,`.
8
+ */
6
9
  function normalizeDelimiter(elem) {
7
10
  const { location, content } = (0, normalize_meta_1.retrieveMetaStructure)(elem.content);
8
11
  return {
@@ -2,9 +2,18 @@ import type { NormalizerData } from '../../normalizer-data';
2
2
  import type { RDelimiter } from '../../../../model/nodes/info/r-delimiter';
3
3
  import type { RNode } from '../../../../model/model';
4
4
  import type { JsonEntry, NamedJsonEntry } from '../../../json/format';
5
+ /**
6
+ * Split a token collection into comments tokens and "other" tokens
7
+ */
5
8
  export declare function splitComments(tokens: readonly NamedJsonEntry[]): {
6
9
  comments: NamedJsonEntry[];
7
10
  others: NamedJsonEntry[];
8
11
  };
12
+ /**
13
+ * Normalizes a list of expressions, handling semicolons and braces
14
+ */
9
15
  export declare function normalizeExpressions(data: NormalizerData, tokens: readonly JsonEntry[] | readonly NamedJsonEntry[]): (RNode | RDelimiter)[];
16
+ /**
17
+ * Parses nodes when their type is unknown
18
+ */
10
19
  export declare function parseNodesWithUnknownType(data: NormalizerData, mappedWithName: readonly NamedJsonEntry[] | undefined): (RNode | RDelimiter)[];
@@ -45,6 +45,9 @@ function normalizeMappedWithoutSemicolonBasedOnType(mappedWithName, data) {
45
45
  // otherwise perform default parsing
46
46
  return result !== undefined ? [result] : parseNodesWithUnknownType(data, mappedWithName);
47
47
  }
48
+ /**
49
+ * Split a token collection into comments tokens and "other" tokens
50
+ */
48
51
  function splitComments(tokens) {
49
52
  const comments = [];
50
53
  const others = [];
@@ -132,6 +135,9 @@ function processBraces([start, end], processed, comments, data) {
132
135
  }
133
136
  };
134
137
  }
138
+ /**
139
+ * Normalizes a list of expressions, handling semicolons and braces
140
+ */
135
141
  function normalizeExpressions(data, tokens) {
136
142
  if (tokens.length === 0) {
137
143
  parser_1.parseLog.warn('no children received, skipping');
@@ -170,6 +176,9 @@ function normalizeExpressions(data, tokens) {
170
176
  }
171
177
  return [...parsedComments, ...normalizeMappedWithoutSemicolonBasedOnType(mappedWithName, data)];
172
178
  }
179
+ /**
180
+ * Parses nodes when their type is unknown
181
+ */
173
182
  function parseNodesWithUnknownType(data, mappedWithName) {
174
183
  const parsedNodes = [];
175
184
  // used to indicate the new root node of this set of nodes
@@ -1,13 +1,11 @@
1
- import type { NormalizerData } from '../../normalizer-data';
1
+ import { type NormalizerData } from '../../normalizer-data';
2
2
  import type { RNode } from '../../../../model/model';
3
3
  import type { RDelimiter } from '../../../../model/nodes/info/r-delimiter';
4
4
  import type { NamedJsonEntry } from '../../../json/format';
5
5
  /**
6
6
  * Parses a single structure in the ast based on its type (e.g., a string, a number, a symbol, ...)
7
- *
8
7
  * @param data - The data used by the parser (see {@link NormalizerData})
9
8
  * @param elem - The element to parse
10
- *
11
9
  * @returns The parsed element as an `RNode` or an `RDelimiter` if it is such.
12
10
  */
13
11
  export declare function normalizeSingleNode(data: NormalizerData, elem: NamedJsonEntry): RNode | RDelimiter;
@@ -16,10 +16,8 @@ const normalize_next_1 = require("../loops/normalize-next");
16
16
  const normalize_symbol_1 = require("../values/normalize-symbol");
17
17
  /**
18
18
  * Parses a single structure in the ast based on its type (e.g., a string, a number, a symbol, ...)
19
- *
20
19
  * @param data - The data used by the parser (see {@link NormalizerData})
21
20
  * @param elem - The element to parse
22
- *
23
21
  * @returns The parsed element as an `RNode` or an `RDelimiter` if it is such.
24
22
  */
25
23
  function normalizeSingleNode(data, elem) {
@@ -1,5 +1,5 @@
1
1
  import type { NormalizerData } from '../../normalizer-data';
2
- import type { RNa } from '../../../../../convert-values';
2
+ import { type RNa } from '../../../../../convert-values';
3
3
  import type { RNumber } from '../../../../model/nodes/r-number';
4
4
  import type { RLogical } from '../../../../model/nodes/r-logical';
5
5
  import type { RSymbol } from '../../../../model/nodes/r-symbol';
@@ -9,7 +9,6 @@ import type { JsonEntry } from '../../../json/format';
9
9
  * Normalize the given object as a R number (see {@link number2ts}), supporting booleans (see {@link boolean2ts}),
10
10
  * and special values.
11
11
  * This requires you to check the corresponding name beforehand.
12
- *
13
12
  * @param data - The data used by the parser (see {@link NormalizerData})
14
13
  * @param obj - The JSON object to extract the meta-information from
15
14
  */
@@ -8,7 +8,6 @@ const type_1 = require("../../../../model/type");
8
8
  * Normalize the given object as a R number (see {@link number2ts}), supporting booleans (see {@link boolean2ts}),
9
9
  * and special values.
10
10
  * This requires you to check the corresponding name beforehand.
11
- *
12
11
  * @param data - The data used by the parser (see {@link NormalizerData})
13
12
  * @param obj - The JSON object to extract the meta-information from
14
13
  */
@@ -4,7 +4,6 @@ import type { JsonEntry } from '../../../json/format';
4
4
  /**
5
5
  * Normalize the given object as a R string (see {@link string2ts}).
6
6
  * This requires you to check the corresponding name beforehand.
7
- *
8
7
  * @param data - The data used by the parser (see {@link NormalizerData})
9
8
  * @param obj - The JSON object to extract the meta-information from
10
9
  */
@@ -8,7 +8,6 @@ const type_1 = require("../../../../model/type");
8
8
  /**
9
9
  * Normalize the given object as a R string (see {@link string2ts}).
10
10
  * This requires you to check the corresponding name beforehand.
11
- *
12
11
  * @param data - The data used by the parser (see {@link NormalizerData})
13
12
  * @param obj - The JSON object to extract the meta-information from
14
13
  */
@@ -5,10 +5,8 @@ import type { NamedJsonEntry } from '../../../json/format';
5
5
  * Normalize the given object as an R symbol (incorporating namespace information).
6
6
  * <p>
7
7
  * The special symbols `T` and `F` are parsed as logic values.
8
- *
9
8
  * @param data - The data used by the parser (see {@link NormalizerData})
10
9
  * @param objs - The JSON object to extract the meta-information from
11
- *
12
10
  * @returns The parsed symbol (with populated namespace information) or `undefined` if the given object is not a symbol.
13
11
  */
14
12
  export declare function tryNormalizeSymbol(data: NormalizerData, objs: readonly NamedJsonEntry[]): RSymbol | undefined;
@@ -9,10 +9,8 @@ const type_1 = require("../../../../model/type");
9
9
  * Normalize the given object as an R symbol (incorporating namespace information).
10
10
  * <p>
11
11
  * The special symbols `T` and `F` are parsed as logic values.
12
- *
13
12
  * @param data - The data used by the parser (see {@link NormalizerData})
14
13
  * @param objs - The JSON object to extract the meta-information from
15
- *
16
14
  * @returns The parsed symbol (with populated namespace information) or `undefined` if the given object is not a symbol.
17
15
  */
18
16
  function tryNormalizeSymbol(data, objs) {
@@ -1,6 +1,6 @@
1
1
  import type { JsonEntry, NamedJsonEntry } from '../json/format';
2
- import type { SourceRange } from '../../../../../util/range';
3
- import type { RawRType } from '../../model/type';
2
+ import { type SourceRange } from '../../../../../util/range';
3
+ import { type RawRType } from '../../model/type';
4
4
  import type { RNode } from '../../model/model';
5
5
  import type { RExpressionList } from '../../model/nodes/r-expression-list';
6
6
  /**
@@ -10,7 +10,6 @@ export declare function extractLocation(ast: JsonEntry): SourceRange;
10
10
  /**
11
11
  * The JSON object that represents the input contains various meta-information.
12
12
  * This function extracts the meta-information and returns it.
13
- *
14
13
  * @param entry - The JSON object to extract the meta-information from
15
14
  * @returns An object containing the passed entry, the location of the corresponding R-ast element, and the content of the passed entry
16
15
  */
@@ -18,24 +17,34 @@ export declare function retrieveMetaStructure(entry: JsonEntry): {
18
17
  location: SourceRange;
19
18
  content: string;
20
19
  };
20
+ /**
21
+ * Ensure that the given token is of the expected type.
22
+ */
21
23
  export declare function assureTokenType(token: string, expectedName: RawRType): void;
22
24
  /**
23
25
  * Extract the token-type of the given object. This is based on the knowledge, that all JSON objects created
24
26
  * from the R XML have a name attached.
25
- *
26
27
  * @param content - the JSON object to extract the token-type from
27
28
  */
28
29
  export declare function getTokenType(content: JsonEntry): RawRType;
30
+ /**
31
+ * Given a list of JSON objects, extract their token-types and return them alongside the original objects.
32
+ */
29
33
  export declare function getWithTokenType(obj: JsonEntry[]): {
30
34
  name: RawRType;
31
35
  content: JsonEntry;
32
36
  }[];
37
+ /**
38
+ * Extract the operation name from the given operator node.
39
+ */
33
40
  export declare function retrieveOpName(operator: NamedJsonEntry): string;
34
41
  /**
35
42
  * Ensure that the first child is completely before the second child.
36
- *
37
43
  * @param first - the first child which should be the lhs
38
44
  * @param second - the second child which should be the rhs
39
45
  */
40
46
  export declare function ensureChildrenAreLhsAndRhsOrdered(first: JsonEntry, second: JsonEntry): void;
47
+ /**
48
+ * Ensure that the given node is an expression list. If it is not, wrap it in an expression list.
49
+ */
41
50
  export declare function ensureExpressionList<Info>(node: RNode<Info>): RExpressionList<Info>;
@@ -20,7 +20,6 @@ function extractLocation(ast) {
20
20
  /**
21
21
  * The JSON object that represents the input contains various meta-information.
22
22
  * This function extracts the meta-information and returns it.
23
- *
24
23
  * @param entry - The JSON object to extract the meta-information from
25
24
  * @returns An object containing the passed entry, the location of the corresponding R-ast element, and the content of the passed entry
26
25
  */
@@ -30,6 +29,9 @@ function retrieveMetaStructure(entry) {
30
29
  content: entry.text
31
30
  };
32
31
  }
32
+ /**
33
+ * Ensure that the given token is of the expected type.
34
+ */
33
35
  function assureTokenType(token, expectedName) {
34
36
  if (token !== expectedName) {
35
37
  throw new normalizer_data_1.ParseError(`expected name to be ${expectedName}, yet received ${token}`);
@@ -38,27 +40,29 @@ function assureTokenType(token, expectedName) {
38
40
  /**
39
41
  * Extract the token-type of the given object. This is based on the knowledge, that all JSON objects created
40
42
  * from the R XML have a name attached.
41
- *
42
43
  * @param content - the JSON object to extract the token-type from
43
44
  */
44
45
  function getTokenType(content) {
45
46
  return content.token;
46
47
  }
48
+ /**
49
+ * Given a list of JSON objects, extract their token-types and return them alongside the original objects.
50
+ */
47
51
  function getWithTokenType(obj) {
48
52
  return obj.map((content) => ({
49
53
  name: getTokenType(content),
50
54
  content
51
55
  }));
52
56
  }
57
+ /**
58
+ * Extract the operation name from the given operator node.
59
+ */
53
60
  function retrieveOpName(operator) {
54
- /*
55
- * only real arithmetic ops have their operation as their own name, the others identify via content/text
56
- */
61
+ /* only real arithmetic ops have their operation as their own name, the others identify via content/text */
57
62
  return operator.content.text;
58
63
  }
59
64
  /**
60
65
  * Ensure that the first child is completely before the second child.
61
- *
62
66
  * @param first - the first child which should be the lhs
63
67
  * @param second - the second child which should be the rhs
64
68
  */
@@ -69,6 +73,9 @@ function ensureChildrenAreLhsAndRhsOrdered(first, second) {
69
73
  throw new normalizer_data_1.ParseError(`expected the first child to be the lhs, yet received ${JSON.stringify(first)} & ${JSON.stringify(second)}`);
70
74
  }
71
75
  }
76
+ /**
77
+ * Ensure that the given node is an expression list. If it is not, wrap it in an expression list.
78
+ */
72
79
  function ensureExpressionList(node) {
73
80
  if (node.type !== type_1.RType.ExpressionList) {
74
81
  return {
@@ -6,7 +6,13 @@ export declare function ts2r<T>(value: T): string;
6
6
  export declare const RTrue = "TRUE";
7
7
  /** The R literal for the logical false */
8
8
  export declare const RFalse = "FALSE";
9
+ /**
10
+ * Checks whether the given string is an R boolean (logical) literal.
11
+ */
9
12
  export declare function isBoolean(value: string): boolean;
13
+ /**
14
+ * Converts an R boolean (logical) literal to a TypeScript boolean.
15
+ */
10
16
  export declare function boolean2ts(value: string): boolean;
11
17
  export declare const RNumHexFloatRegex: RegExp;
12
18
  export declare const RImaginaryMarker = "i";
@@ -19,6 +25,9 @@ export interface RNumberValue {
19
25
  /** see {@link RImaginaryMarker}, compound imaginary numbers are expressions in R */
20
26
  complexNumber: boolean;
21
27
  }
28
+ /**
29
+ * Convert a valid R number into a {@link RNumberValue}.
30
+ */
22
31
  export declare function number2ts(value: string): RNumberValue;
23
32
  export interface RStringValue {
24
33
  str: string;
@@ -29,10 +38,12 @@ export interface RStringValue {
29
38
  }
30
39
  /**
31
40
  * Convert a valid R string into a {@link RStringValue}.
32
- *
33
41
  * @throws {@link ValueConversionError} if the string has an unknown starting quote
34
42
  */
35
43
  export declare function string2ts(value: string): RStringValue;
36
44
  export declare const RNa = "NA";
37
45
  export declare const RNull = "NULL";
46
+ /**
47
+ * Checks whether the given string is the R NA literal (untyped).
48
+ */
38
49
  export declare function isNA(value: string): value is (typeof RNa);
@@ -54,9 +54,15 @@ function ts2r(value) {
54
54
  exports.RTrue = 'TRUE';
55
55
  /** The R literal for the logical false */
56
56
  exports.RFalse = 'FALSE';
57
+ /**
58
+ * Checks whether the given string is an R boolean (logical) literal.
59
+ */
57
60
  function isBoolean(value) {
58
61
  return value === exports.RTrue || value === exports.RFalse;
59
62
  }
63
+ /**
64
+ * Converts an R boolean (logical) literal to a TypeScript boolean.
65
+ */
60
66
  function boolean2ts(value) {
61
67
  if (value === exports.RTrue) {
62
68
  return true;
@@ -73,6 +79,9 @@ function getDecimalPlacesWithRadix(floatPart, radix) {
73
79
  exports.RImaginaryMarker = 'i';
74
80
  exports.RIntegerMarker = 'L';
75
81
  exports.RInf = 'Inf';
82
+ /**
83
+ * Convert a valid R number into a {@link RNumberValue}.
84
+ */
76
85
  function number2ts(value) {
77
86
  // check for hexadecimal number with floating point addon which is supported by R but not by JS :/
78
87
  let lcValue = value.toLowerCase();
@@ -119,7 +128,6 @@ function number2ts(value) {
119
128
  }
120
129
  /**
121
130
  * Convert a valid R string into a {@link RStringValue}.
122
- *
123
131
  * @throws {@link ValueConversionError} if the string has an unknown starting quote
124
132
  */
125
133
  function string2ts(value) {
@@ -152,6 +160,9 @@ function string2ts(value) {
152
160
  }
153
161
  exports.RNa = 'NA';
154
162
  exports.RNull = 'NULL';
163
+ /**
164
+ * Checks whether the given string is the R NA literal (untyped).
165
+ */
155
166
  function isNA(value) {
156
167
  return value === exports.RNa;
157
168
  }
@@ -1,7 +1,9 @@
1
1
  import Parser from 'web-tree-sitter';
2
+ import type { Query, QueryCapture } from 'web-tree-sitter';
2
3
  import type { RParseRequest } from '../../retriever';
3
- import type { SyncParser } from '../../parser';
4
+ import type { SyncParser, TreeSitterInformation } from '../../parser';
4
5
  import type { TreeSitterEngineConfig } from '../../../config';
6
+ import type { FlowrAnalysisProvider } from '../../../project/flowr-analyzer';
5
7
  export declare const DEFAULT_TREE_SITTER_R_WASM_PATH = "./node_modules/@eagleoutice/tree-sitter-r/tree-sitter-r.wasm";
6
8
  export declare const DEFAULT_TREE_SITTER_WASM_PATH = "./node_modules/web-tree-sitter/tree-sitter.wasm";
7
9
  /**
@@ -9,7 +11,7 @@ export declare const DEFAULT_TREE_SITTER_WASM_PATH = "./node_modules/web-tree-si
9
11
  */
10
12
  export declare class TreeSitterExecutor implements SyncParser<Parser.Tree> {
11
13
  readonly name = "tree-sitter";
12
- readonly parser: Parser;
14
+ private readonly parser;
13
15
  private static language;
14
16
  /**
15
17
  * Initializes the underlying tree-sitter parser. This only needs to be called once globally.
@@ -20,7 +22,10 @@ export declare class TreeSitterExecutor implements SyncParser<Parser.Tree> {
20
22
  static initTreeSitter(config?: TreeSitterEngineConfig, overrideWasmPath?: string, overrideTreeSitterWasmPath?: string): Promise<void>;
21
23
  constructor();
22
24
  rVersion(): Promise<string | 'unknown' | 'none'>;
25
+ information(analyzer: FlowrAnalysisProvider): TreeSitterInformation;
23
26
  treeSitterVersion(): number;
24
27
  parse(request: RParseRequest): Parser.Tree;
28
+ createQuery(source: string): Query;
29
+ query(source: Query | string, tree: Parser.Tree): QueryCapture[];
25
30
  close(): void;
26
31
  }
@@ -48,6 +48,15 @@ class TreeSitterExecutor {
48
48
  rVersion() {
49
49
  return Promise.resolve('none');
50
50
  }
51
+ information(analyzer) {
52
+ return {
53
+ name: 'tree-sitter',
54
+ grammarVersion: this.treeSitterVersion(),
55
+ treeSitterQuery: async (source, force) => {
56
+ return this.query(source, (await analyzer.parse(force)).parsed);
57
+ }
58
+ };
59
+ }
51
60
  treeSitterVersion() {
52
61
  return this.parser.getLanguage().version;
53
62
  }
@@ -61,6 +70,14 @@ class TreeSitterExecutor {
61
70
  }
62
71
  return this.parser.parse(sourceCode);
63
72
  }
73
+ createQuery(source) {
74
+ return this.parser.getLanguage().query(source);
75
+ }
76
+ query(source, tree) {
77
+ const query = typeof source === 'string' ? this.createQuery(source) : source;
78
+ const matches = query.matches(tree.rootNode);
79
+ return matches.flatMap(m => m.captures);
80
+ }
64
81
  close() {
65
82
  this.parser.delete();
66
83
  }
@@ -1,8 +1,20 @@
1
1
  import type { RExpressionList } from '../ast/model/nodes/r-expression-list';
2
2
  import type { Tree } from 'web-tree-sitter';
3
+ export interface TreeSitterInfo {
4
+ treeSitterId: number;
5
+ }
3
6
  /**
4
7
  * @param tree - The tree to normalize
8
+ * @param lax - Whether to use lax parsing (i.e., ignore errors) or strict parsing (i.e., fail on errors)
9
+ */
10
+ export declare function normalizeTreeSitterTreeToAst(tree: Tree, lax?: boolean): RExpressionList<TreeSitterInfo>;
11
+ /**
12
+ * Globally switch to lax parsing mode for tree-sitter normalization
13
+ * @see {@link makeTreeSitterStrict}
5
14
  */
6
- export declare function normalizeTreeSitterTreeToAst(tree: Tree, lax?: boolean): RExpressionList;
7
15
  export declare function makeTreeSitterLax(): void;
16
+ /**
17
+ * Globally switch to strict parsing mode for tree-sitter normalization
18
+ * @see {@link makeTreeSitterLax}
19
+ */
8
20
  export declare function makeTreeSitterStrict(): void;
@@ -15,6 +15,7 @@ const strings_1 = require("../../../util/text/strings");
15
15
  const log_1 = require("../../../util/log");
16
16
  /**
17
17
  * @param tree - The tree to normalize
18
+ * @param lax - Whether to use lax parsing (i.e., ignore errors) or strict parsing (i.e., fail on errors)
18
19
  */
19
20
  function normalizeTreeSitterTreeToAst(tree, lax) {
20
21
  if (lax) {
@@ -36,10 +37,18 @@ function nonErrorChildrenLax(node) {
36
37
  return node.hasError ? node.children.filter(n => n.type !== tree_sitter_types_1.TreeSitterType.Error) : node.children;
37
38
  }
38
39
  let nonErrorChildren = nonErrorChildrenStrict;
40
+ /**
41
+ * Globally switch to lax parsing mode for tree-sitter normalization
42
+ * @see {@link makeTreeSitterStrict}
43
+ */
39
44
  function makeTreeSitterLax() {
40
45
  log_1.log.info('[Tree-Sitter] Lax parsing active');
41
46
  nonErrorChildren = nonErrorChildrenLax;
42
47
  }
48
+ /**
49
+ * Globally switch to strict parsing mode for tree-sitter normalization
50
+ * @see {@link makeTreeSitterLax}
51
+ */
43
52
  function makeTreeSitterStrict() {
44
53
  log_1.log.info('[Tree-Sitter] Strict parsing active');
45
54
  nonErrorChildren = nonErrorChildrenStrict;
@@ -52,7 +61,8 @@ function convertTreeNode(node) {
52
61
  info: {
53
62
  fullRange: range,
54
63
  additionalTokens: [],
55
- fullLexeme: node.text
64
+ fullLexeme: node.text,
65
+ treeSitterId: node.id
56
66
  }
57
67
  };
58
68
  switch (node.type) {
@@ -66,7 +76,8 @@ function convertTreeNode(node) {
66
76
  grouping: undefined,
67
77
  lexeme: undefined,
68
78
  info: {
69
- additionalTokens: remainingComments.map(c => c[1])
79
+ additionalTokens: remainingComments.map(c => c[1]),
80
+ treeSitterId: node.id
70
81
  }
71
82
  };
72
83
  }
@@ -100,7 +111,8 @@ function convertTreeNode(node) {
100
111
  }
101
112
  ],
102
113
  info: {
103
- additionalTokens: remainingComments.map(c => c[1])
114
+ additionalTokens: remainingComments.map(c => c[1]),
115
+ treeSitterId: node.id
104
116
  }
105
117
  };
106
118
  }
@@ -117,7 +129,9 @@ function convertTreeNode(node) {
117
129
  value: lhs,
118
130
  name: undefined,
119
131
  lexeme: lhs.lexeme,
120
- info: {}
132
+ info: {
133
+ treeSitterId: lhs.info.treeSitterId
134
+ }
121
135
  };
122
136
  if (op.type == 'special') {
123
137
  return {
@@ -130,7 +144,9 @@ function convertTreeNode(node) {
130
144
  lexeme: op.text,
131
145
  content: op.text,
132
146
  namespace: undefined,
133
- info: {}
147
+ info: {
148
+ treeSitterId: op.id
149
+ }
134
150
  },
135
151
  arguments: [lhsAsArg, {
136
152
  type: type_1.RType.Argument,
@@ -138,12 +154,15 @@ function convertTreeNode(node) {
138
154
  value: rhs,
139
155
  name: undefined,
140
156
  lexeme: rhs.lexeme,
141
- info: {}
157
+ info: {
158
+ treeSitterId: rhs.info.treeSitterId
159
+ }
142
160
  }],
143
161
  named: true,
144
162
  infixSpecial: true,
145
163
  info: {
146
- additionalTokens: comments
164
+ additionalTokens: comments,
165
+ treeSitterId: node.id
147
166
  }
148
167
  };
149
168
  }
@@ -158,7 +177,8 @@ function convertTreeNode(node) {
158
177
  info: {
159
178
  fullRange: range,
160
179
  additionalTokens: comments,
161
- fullLexeme: node.text
180
+ fullLexeme: node.text,
181
+ treeSitterId: node.id
162
182
  }
163
183
  };
164
184
  }
@@ -172,7 +192,8 @@ function convertTreeNode(node) {
172
192
  info: {
173
193
  fullRange: range,
174
194
  additionalTokens: comments,
175
- fullLexeme: node.text
195
+ fullLexeme: node.text,
196
+ treeSitterId: node.id
176
197
  }
177
198
  };
178
199
  }
@@ -247,7 +268,8 @@ function convertTreeNode(node) {
247
268
  info: {
248
269
  fullRange: undefined,
249
270
  additionalTokens: [],
250
- fullLexeme: undefined
271
+ fullLexeme: undefined,
272
+ treeSitterId: variableNode.id
251
273
  }
252
274
  },
253
275
  vector: convertTreeNode(sequenceNode),
@@ -256,8 +278,9 @@ function convertTreeNode(node) {
256
278
  lexeme: forNode.text,
257
279
  info: {
258
280
  fullRange: range,
259
- additionalTokens: [...variableComments, ...sequenceComments].map(c => c[1]),
260
- fullLexeme: node.text
281
+ additionalTokens: variableComments.concat(sequenceComments).map(c => c[1]),
282
+ fullLexeme: node.text,
283
+ treeSitterId: node.id
261
284
  }
262
285
  };
263
286
  }
@@ -324,7 +347,8 @@ function convertTreeNode(node) {
324
347
  info: {
325
348
  fullRange: range,
326
349
  additionalTokens: [],
327
- fullLexeme: node.text
350
+ fullLexeme: node.text,
351
+ treeSitterId: node.id
328
352
  }
329
353
  },
330
354
  named: true
@@ -428,7 +452,8 @@ function convertTreeNode(node) {
428
452
  info: {
429
453
  fullRange: rhsRange,
430
454
  additionalTokens: [],
431
- fullLexeme: rhs.text
455
+ fullLexeme: rhs.text,
456
+ treeSitterId: rhs.id
432
457
  }
433
458
  }],
434
459
  location: makeSourceRange(operator),
@@ -455,7 +480,8 @@ function convertTreeNode(node) {
455
480
  info: {
456
481
  fullRange: range,
457
482
  additionalTokens: [],
458
- fullLexeme: name.text
483
+ fullLexeme: name.text,
484
+ treeSitterId: name.id
459
485
  }
460
486
  },
461
487
  special: name.text === '...',
@@ -465,7 +491,8 @@ function convertTreeNode(node) {
465
491
  info: {
466
492
  fullRange: range,
467
493
  additionalTokens: [],
468
- fullLexeme: name.text
494
+ fullLexeme: name.text,
495
+ treeSitterId: name.id
469
496
  }
470
497
  };
471
498
  }
@@ -507,7 +534,8 @@ function convertTreeNode(node) {
507
534
  info: {
508
535
  fullRange: nameRange,
509
536
  additionalTokens: [],
510
- fullLexeme: nameNode.text
537
+ fullLexeme: nameNode.text,
538
+ treeSitterId: nameNode.id
511
539
  }
512
540
  };
513
541
  }
@@ -527,7 +555,7 @@ function convertTreeNode(node) {
527
555
  lexeme: undefined,
528
556
  children: [],
529
557
  grouping: undefined,
530
- info: defaultInfo
558
+ ...defaultInfo
531
559
  };
532
560
  default:
533
561
  throw new normalizer_data_1.ParseError(`unexpected node type ${node.type} at ${JSON.stringify(range)}`);
@@ -562,7 +590,8 @@ function splitComments(nodes) {
562
590
  lexeme: node.text,
563
591
  info: {
564
592
  additionalTokens: [],
565
- fullLexeme: node.text
593
+ fullLexeme: node.text,
594
+ treeSitterId: node.id
566
595
  }
567
596
  }]);
568
597
  }