@eagleoutice/flowr 1.3.11

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 (668) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +27 -0
  3. package/benchmark/benchmark-slicer.js +223 -0
  4. package/benchmark/index.d.ts +3 -0
  5. package/benchmark/index.js +20 -0
  6. package/benchmark/slicer.d.ts +100 -0
  7. package/benchmark/slicer.js +223 -0
  8. package/benchmark/stats/index.d.ts +10 -0
  9. package/benchmark/stats/index.js +27 -0
  10. package/benchmark/stats/print.d.ts +7 -0
  11. package/benchmark/stats/print.js +157 -0
  12. package/benchmark/stats/stats.d.ts +41 -0
  13. package/benchmark/stats/stats.js +6 -0
  14. package/benchmark/stopwatch.d.ts +35 -0
  15. package/benchmark/stopwatch.js +79 -0
  16. package/cli/benchmark-app.d.ts +9 -0
  17. package/cli/benchmark-app.js +52 -0
  18. package/cli/benchmark-helper-app.d.ts +7 -0
  19. package/cli/benchmark-helper-app.js +60 -0
  20. package/cli/common/features.d.ts +3 -0
  21. package/cli/common/features.js +30 -0
  22. package/cli/common/index.d.ts +2 -0
  23. package/cli/common/index.js +19 -0
  24. package/cli/common/options.d.ts +20 -0
  25. package/cli/common/options.js +82 -0
  26. package/cli/common/script.d.ts +21 -0
  27. package/cli/common/script.js +61 -0
  28. package/cli/common/scripts-info.d.ts +24 -0
  29. package/cli/common/scripts-info.js +69 -0
  30. package/cli/export-quads-app.d.ts +7 -0
  31. package/cli/export-quads-app.js +46 -0
  32. package/cli/repl/commands/cfg.d.ts +3 -0
  33. package/cli/repl/commands/cfg.js +37 -0
  34. package/cli/repl/commands/commands.d.ts +11 -0
  35. package/cli/repl/commands/commands.js +103 -0
  36. package/cli/repl/commands/dataflow.d.ts +3 -0
  37. package/cli/repl/commands/dataflow.js +34 -0
  38. package/cli/repl/commands/execute.d.ts +4 -0
  39. package/cli/repl/commands/execute.js +27 -0
  40. package/cli/repl/commands/index.d.ts +2 -0
  41. package/cli/repl/commands/index.js +19 -0
  42. package/cli/repl/commands/main.d.ts +39 -0
  43. package/cli/repl/commands/main.js +14 -0
  44. package/cli/repl/commands/normalize.d.ts +3 -0
  45. package/cli/repl/commands/normalize.js +34 -0
  46. package/cli/repl/commands/parse.d.ts +2 -0
  47. package/cli/repl/commands/parse.js +109 -0
  48. package/cli/repl/commands/quit.d.ts +2 -0
  49. package/cli/repl/commands/quit.js +12 -0
  50. package/cli/repl/commands/version.d.ts +16 -0
  51. package/cli/repl/commands/version.js +33 -0
  52. package/cli/repl/core.d.ts +41 -0
  53. package/cli/repl/core.js +89 -0
  54. package/cli/repl/execute.d.ts +28 -0
  55. package/cli/repl/execute.js +79 -0
  56. package/cli/repl/index.d.ts +5 -0
  57. package/cli/repl/index.js +22 -0
  58. package/cli/repl/prompt.d.ts +2 -0
  59. package/cli/repl/prompt.js +9 -0
  60. package/cli/repl/server/connection.d.ts +21 -0
  61. package/cli/repl/server/connection.js +217 -0
  62. package/cli/repl/server/messages/analysis.d.ts +71 -0
  63. package/cli/repl/server/messages/analysis.js +21 -0
  64. package/cli/repl/server/messages/error.d.ts +11 -0
  65. package/cli/repl/server/messages/error.js +3 -0
  66. package/cli/repl/server/messages/hello.d.ts +20 -0
  67. package/cli/repl/server/messages/hello.js +3 -0
  68. package/cli/repl/server/messages/index.d.ts +1 -0
  69. package/cli/repl/server/messages/index.js +3 -0
  70. package/cli/repl/server/messages/messages.d.ts +35 -0
  71. package/cli/repl/server/messages/messages.js +20 -0
  72. package/cli/repl/server/messages/repl.d.ts +33 -0
  73. package/cli/repl/server/messages/repl.js +17 -0
  74. package/cli/repl/server/messages/slice.d.ts +25 -0
  75. package/cli/repl/server/messages/slice.js +17 -0
  76. package/cli/repl/server/net.d.ts +33 -0
  77. package/cli/repl/server/net.js +24 -0
  78. package/cli/repl/server/send.d.ts +4 -0
  79. package/cli/repl/server/send.js +18 -0
  80. package/cli/repl/server/server.d.ts +20 -0
  81. package/cli/repl/server/server.js +66 -0
  82. package/cli/repl/server/validate.d.ts +15 -0
  83. package/cli/repl/server/validate.js +34 -0
  84. package/cli/slicer-app.d.ts +11 -0
  85. package/cli/slicer-app.js +81 -0
  86. package/cli/statistics-app.d.ts +11 -0
  87. package/cli/statistics-app.js +98 -0
  88. package/cli/statistics-helper-app.d.ts +11 -0
  89. package/cli/statistics-helper-app.js +83 -0
  90. package/cli/summarizer-app.d.ts +18 -0
  91. package/cli/summarizer-app.js +67 -0
  92. package/core/index.d.ts +4 -0
  93. package/core/index.js +23 -0
  94. package/core/input.d.ts +42 -0
  95. package/core/input.js +3 -0
  96. package/core/output.d.ts +15 -0
  97. package/core/output.js +3 -0
  98. package/core/pipeline-executor.js +221 -0
  99. package/core/print/dataflow-printer.d.ts +8 -0
  100. package/core/print/dataflow-printer.js +62 -0
  101. package/core/print/normalize-printer.d.ts +7 -0
  102. package/core/print/normalize-printer.js +31 -0
  103. package/core/print/parse-printer.d.ts +3 -0
  104. package/core/print/parse-printer.js +29 -0
  105. package/core/print/print.d.ts +47 -0
  106. package/core/print/print.js +13 -0
  107. package/core/print/slice-diff-ansi.d.ts +2 -0
  108. package/core/print/slice-diff-ansi.js +49 -0
  109. package/core/slicer.d.ts +123 -0
  110. package/core/slicer.js +227 -0
  111. package/core/stepping-slicer.js +160 -0
  112. package/core/steps/all/00-parse.js +19 -0
  113. package/core/steps/all/10-normalize.js +21 -0
  114. package/core/steps/all/20-dataflow.js +21 -0
  115. package/core/steps/all/30-slice.js +16 -0
  116. package/core/steps/all/40-reconstruct.js +16 -0
  117. package/core/steps/all/core/00-parse.js +24 -0
  118. package/core/steps/all/core/10-normalize.js +46 -0
  119. package/core/steps/all/core/20-dataflow.js +39 -0
  120. package/core/steps/all/static-slicing/00-slice.js +21 -0
  121. package/core/steps/all/static-slicing/10-reconstruct.js +21 -0
  122. package/core/steps/index.js +21 -0
  123. package/core/steps/input.js +3 -0
  124. package/core/steps/output.js +3 -0
  125. package/core/steps/pipeline/create.js +130 -0
  126. package/core/steps/pipeline/default.js +15 -0
  127. package/core/steps/pipeline/dependency-checker.js +76 -0
  128. package/core/steps/pipeline/index.js +20 -0
  129. package/core/steps/pipeline/invalid-pipeline-error.js +14 -0
  130. package/core/steps/pipeline/pipeline.js +28 -0
  131. package/core/steps/step.js +8 -0
  132. package/core/steps/steps-provider.js +3 -0
  133. package/core/steps/steps.js +35 -0
  134. package/core/steps.d.ts +166 -0
  135. package/core/steps.js +99 -0
  136. package/dataflow/common/environments/append.js +48 -0
  137. package/dataflow/common/environments/environment.js +165 -0
  138. package/dataflow/common/environments/index.js +23 -0
  139. package/dataflow/common/environments/overwrite.js +82 -0
  140. package/dataflow/common/environments/register.js +49 -0
  141. package/dataflow/common/environments/resolve-by-name.js +35 -0
  142. package/dataflow/common/environments/scopes.js +6 -0
  143. package/dataflow/common/environments/scoping.js +27 -0
  144. package/dataflow/environments/append.d.ts +8 -0
  145. package/dataflow/environments/append.js +48 -0
  146. package/dataflow/environments/environment.d.ts +78 -0
  147. package/dataflow/environments/environment.js +161 -0
  148. package/dataflow/environments/index.d.ts +7 -0
  149. package/dataflow/environments/index.js +23 -0
  150. package/dataflow/environments/overwrite.d.ts +6 -0
  151. package/dataflow/environments/overwrite.js +82 -0
  152. package/dataflow/environments/register.d.ts +7 -0
  153. package/dataflow/environments/register.js +39 -0
  154. package/dataflow/environments/resolve-by-name.d.ts +12 -0
  155. package/dataflow/environments/resolve-by-name.js +35 -0
  156. package/dataflow/environments/scopes.d.ts +6 -0
  157. package/dataflow/environments/scopes.js +6 -0
  158. package/dataflow/environments/scoping.d.ts +4 -0
  159. package/dataflow/environments/scoping.js +27 -0
  160. package/dataflow/extractor.d.ts +6 -0
  161. package/dataflow/extractor.js +60 -0
  162. package/dataflow/graph/diff.d.ts +18 -0
  163. package/dataflow/graph/diff.js +206 -0
  164. package/dataflow/graph/edge.d.ts +37 -0
  165. package/dataflow/graph/edge.js +32 -0
  166. package/dataflow/graph/equal.js +127 -0
  167. package/dataflow/graph/graph.d.ts +120 -0
  168. package/dataflow/graph/graph.js +298 -0
  169. package/dataflow/graph/index.d.ts +4 -0
  170. package/dataflow/graph/index.js +21 -0
  171. package/dataflow/graph/quads.d.ts +8 -0
  172. package/dataflow/graph/quads.js +27 -0
  173. package/dataflow/graph/vertex.d.ts +86 -0
  174. package/dataflow/graph/vertex.js +3 -0
  175. package/dataflow/index.d.ts +5 -0
  176. package/dataflow/index.js +24 -0
  177. package/dataflow/internal/info.d.ts +21 -0
  178. package/dataflow/internal/info.js +16 -0
  179. package/dataflow/internal/linker.d.ts +41 -0
  180. package/dataflow/internal/linker.js +255 -0
  181. package/dataflow/internal/process/access.d.ts +4 -0
  182. package/dataflow/internal/process/access.js +53 -0
  183. package/dataflow/internal/process/expression-list.d.ts +8 -0
  184. package/dataflow/internal/process/expression-list.js +148 -0
  185. package/dataflow/internal/process/functions/argument.d.ts +8 -0
  186. package/dataflow/internal/process/functions/argument.js +46 -0
  187. package/dataflow/internal/process/functions/exit-points.d.ts +2 -0
  188. package/dataflow/internal/process/functions/exit-points.js +121 -0
  189. package/dataflow/internal/process/functions/function-call.d.ts +5 -0
  190. package/dataflow/internal/process/functions/function-call.js +99 -0
  191. package/dataflow/internal/process/functions/function-definition.d.ts +4 -0
  192. package/dataflow/internal/process/functions/function-definition.js +176 -0
  193. package/dataflow/internal/process/functions/parameter.d.ts +4 -0
  194. package/dataflow/internal/process/functions/parameter.js +47 -0
  195. package/dataflow/internal/process/if-then-else.d.ts +4 -0
  196. package/dataflow/internal/process/if-then-else.js +56 -0
  197. package/dataflow/internal/process/loops/for-loop.d.ts +4 -0
  198. package/dataflow/internal/process/loops/for-loop.js +54 -0
  199. package/dataflow/internal/process/loops/repeat-loop.d.ts +4 -0
  200. package/dataflow/internal/process/loops/repeat-loop.js +21 -0
  201. package/dataflow/internal/process/loops/while-loop.d.ts +4 -0
  202. package/dataflow/internal/process/loops/while-loop.js +31 -0
  203. package/dataflow/internal/process/operators/assignment.d.ts +4 -0
  204. package/dataflow/internal/process/operators/assignment.js +129 -0
  205. package/dataflow/internal/process/operators/non-assignment-binary-op.d.ts +4 -0
  206. package/dataflow/internal/process/operators/non-assignment-binary-op.js +25 -0
  207. package/dataflow/internal/process/operators/pipe.d.ts +4 -0
  208. package/dataflow/internal/process/operators/pipe.js +46 -0
  209. package/dataflow/internal/process/operators/unary-op.d.ts +4 -0
  210. package/dataflow/internal/process/operators/unary-op.js +10 -0
  211. package/dataflow/internal/process/symbol.d.ts +4 -0
  212. package/dataflow/internal/process/symbol.js +21 -0
  213. package/dataflow/internal/process/uninteresting-leaf.d.ts +3 -0
  214. package/dataflow/internal/process/uninteresting-leaf.js +9 -0
  215. package/dataflow/processor.d.ts +47 -0
  216. package/dataflow/processor.js +20 -0
  217. package/dataflow/v1/extractor.js +60 -0
  218. package/dataflow/v1/graph/diff.js +206 -0
  219. package/dataflow/v1/graph/edge.js +32 -0
  220. package/dataflow/v1/graph/graph.js +298 -0
  221. package/dataflow/v1/graph/index.js +21 -0
  222. package/dataflow/v1/graph/quads.js +27 -0
  223. package/dataflow/v1/graph/vertex.js +3 -0
  224. package/dataflow/v1/index.js +24 -0
  225. package/dataflow/v1/internal/info.js +16 -0
  226. package/dataflow/v1/internal/linker.js +255 -0
  227. package/dataflow/v1/internal/process/access.js +54 -0
  228. package/dataflow/v1/internal/process/expression-list.js +154 -0
  229. package/dataflow/v1/internal/process/functions/argument.js +46 -0
  230. package/dataflow/v1/internal/process/functions/exit-points.js +125 -0
  231. package/dataflow/v1/internal/process/functions/function-call.js +99 -0
  232. package/dataflow/v1/internal/process/functions/function-definition.js +176 -0
  233. package/dataflow/v1/internal/process/functions/parameter.js +47 -0
  234. package/dataflow/v1/internal/process/if-then-else.js +57 -0
  235. package/dataflow/v1/internal/process/loops/for-loop.js +54 -0
  236. package/dataflow/v1/internal/process/loops/repeat-loop.js +21 -0
  237. package/dataflow/v1/internal/process/loops/while-loop.js +31 -0
  238. package/dataflow/v1/internal/process/operators/assignment.js +129 -0
  239. package/dataflow/v1/internal/process/operators/non-assignment-binary-op.js +25 -0
  240. package/dataflow/v1/internal/process/operators/pipe.js +46 -0
  241. package/dataflow/v1/internal/process/operators/unary-op.js +10 -0
  242. package/dataflow/v1/internal/process/symbol.js +21 -0
  243. package/dataflow/v1/internal/process/uninteresting-leaf.js +9 -0
  244. package/dataflow/v1/processor.js +20 -0
  245. package/dataflow/v2/entry.js +11 -0
  246. package/flowr-1.3.7.tgz +0 -0
  247. package/flowr.d.ts +26 -0
  248. package/flowr.js +135 -0
  249. package/index.d.ts +6 -0
  250. package/index.js +23 -0
  251. package/package.json +384 -0
  252. package/r-bridge/index.d.ts +11 -0
  253. package/r-bridge/index.js +28 -0
  254. package/r-bridge/lang-4.x/ast/index.d.ts +2 -0
  255. package/r-bridge/lang-4.x/ast/index.js +19 -0
  256. package/r-bridge/lang-4.x/ast/model/collect.d.ts +9 -0
  257. package/r-bridge/lang-4.x/ast/model/collect.js +23 -0
  258. package/r-bridge/lang-4.x/ast/model/index.d.ts +6 -0
  259. package/r-bridge/lang-4.x/ast/model/index.js +23 -0
  260. package/r-bridge/lang-4.x/ast/model/model.d.ts +127 -0
  261. package/r-bridge/lang-4.x/ast/model/model.js +3 -0
  262. package/r-bridge/lang-4.x/ast/model/nodes/index.d.ts +21 -0
  263. package/r-bridge/lang-4.x/ast/model/nodes/index.js +38 -0
  264. package/r-bridge/lang-4.x/ast/model/nodes/info/index.d.ts +13 -0
  265. package/r-bridge/lang-4.x/ast/model/nodes/info/index.js +27 -0
  266. package/r-bridge/lang-4.x/ast/model/nodes/info/r-delimiter.d.ts +12 -0
  267. package/r-bridge/lang-4.x/ast/model/nodes/info/r-delimiter.js +3 -0
  268. package/r-bridge/lang-4.x/ast/model/nodes/r-access.d.ts +24 -0
  269. package/r-bridge/lang-4.x/ast/model/nodes/r-access.js +3 -0
  270. package/r-bridge/lang-4.x/ast/model/nodes/r-argument.d.ts +11 -0
  271. package/r-bridge/lang-4.x/ast/model/nodes/r-argument.js +3 -0
  272. package/r-bridge/lang-4.x/ast/model/nodes/r-binary-op.d.ts +25 -0
  273. package/r-bridge/lang-4.x/ast/model/nodes/r-binary-op.js +3 -0
  274. package/r-bridge/lang-4.x/ast/model/nodes/r-break.d.ts +5 -0
  275. package/r-bridge/lang-4.x/ast/model/nodes/r-break.js +3 -0
  276. package/r-bridge/lang-4.x/ast/model/nodes/r-comment.d.ts +6 -0
  277. package/r-bridge/lang-4.x/ast/model/nodes/r-comment.js +3 -0
  278. package/r-bridge/lang-4.x/ast/model/nodes/r-expression-list.d.ts +6 -0
  279. package/r-bridge/lang-4.x/ast/model/nodes/r-expression-list.js +3 -0
  280. package/r-bridge/lang-4.x/ast/model/nodes/r-for-loop.d.ts +18 -0
  281. package/r-bridge/lang-4.x/ast/model/nodes/r-for-loop.js +3 -0
  282. package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +31 -0
  283. package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.js +3 -0
  284. package/r-bridge/lang-4.x/ast/model/nodes/r-function-definition.d.ts +10 -0
  285. package/r-bridge/lang-4.x/ast/model/nodes/r-function-definition.js +3 -0
  286. package/r-bridge/lang-4.x/ast/model/nodes/r-if-then-else.d.ts +9 -0
  287. package/r-bridge/lang-4.x/ast/model/nodes/r-if-then-else.js +3 -0
  288. package/r-bridge/lang-4.x/ast/model/nodes/r-line-directive.d.ts +7 -0
  289. package/r-bridge/lang-4.x/ast/model/nodes/r-line-directive.js +3 -0
  290. package/r-bridge/lang-4.x/ast/model/nodes/r-logical.d.ts +7 -0
  291. package/r-bridge/lang-4.x/ast/model/nodes/r-logical.js +3 -0
  292. package/r-bridge/lang-4.x/ast/model/nodes/r-next.d.ts +5 -0
  293. package/r-bridge/lang-4.x/ast/model/nodes/r-next.js +3 -0
  294. package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +8 -0
  295. package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
  296. package/r-bridge/lang-4.x/ast/model/nodes/r-parameter.d.ts +13 -0
  297. package/r-bridge/lang-4.x/ast/model/nodes/r-parameter.js +3 -0
  298. package/r-bridge/lang-4.x/ast/model/nodes/r-pipe.d.ts +7 -0
  299. package/r-bridge/lang-4.x/ast/model/nodes/r-pipe.js +3 -0
  300. package/r-bridge/lang-4.x/ast/model/nodes/r-repeat-loop.d.ts +12 -0
  301. package/r-bridge/lang-4.x/ast/model/nodes/r-repeat-loop.js +3 -0
  302. package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +7 -0
  303. package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
  304. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +7 -0
  305. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +9 -0
  306. package/r-bridge/lang-4.x/ast/model/nodes/r-unary-op.d.ts +18 -0
  307. package/r-bridge/lang-4.x/ast/model/nodes/r-unary-op.js +3 -0
  308. package/r-bridge/lang-4.x/ast/model/nodes/r-while-loop.d.ts +13 -0
  309. package/r-bridge/lang-4.x/ast/model/nodes/r-while-loop.js +3 -0
  310. package/r-bridge/lang-4.x/ast/model/operators.d.ts +46 -0
  311. package/r-bridge/lang-4.x/ast/model/operators.js +67 -0
  312. package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +81 -0
  313. package/r-bridge/lang-4.x/ast/model/processing/decorate.js +342 -0
  314. package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +10 -0
  315. package/r-bridge/lang-4.x/ast/model/processing/fold.js +20 -0
  316. package/r-bridge/lang-4.x/ast/model/processing/index.d.ts +5 -0
  317. package/r-bridge/lang-4.x/ast/model/processing/index.js +22 -0
  318. package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +41 -0
  319. package/r-bridge/lang-4.x/ast/model/processing/role.js +17 -0
  320. package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +61 -0
  321. package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.js +87 -0
  322. package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +13 -0
  323. package/r-bridge/lang-4.x/ast/model/processing/visitor.js +109 -0
  324. package/r-bridge/lang-4.x/ast/model/type.d.ts +206 -0
  325. package/r-bridge/lang-4.x/ast/model/type.js +18 -0
  326. package/r-bridge/lang-4.x/ast/model/versions.d.ts +9 -0
  327. package/r-bridge/lang-4.x/ast/model/versions.js +13 -0
  328. package/r-bridge/lang-4.x/ast/parser/xml/common/config.js +16 -0
  329. package/r-bridge/lang-4.x/ast/parser/xml/common/input-format.js +42 -0
  330. package/r-bridge/lang-4.x/ast/parser/xml/common/meta.js +118 -0
  331. package/r-bridge/lang-4.x/ast/parser/xml/common/xml-to-json.js +58 -0
  332. package/r-bridge/lang-4.x/ast/parser/xml/config.d.ts +25 -0
  333. package/r-bridge/lang-4.x/ast/parser/xml/config.js +16 -0
  334. package/r-bridge/lang-4.x/ast/parser/xml/data.d.ts +22 -0
  335. package/r-bridge/lang-4.x/ast/parser/xml/data.js +3 -0
  336. package/r-bridge/lang-4.x/ast/parser/xml/hooks.d.ts +292 -0
  337. package/r-bridge/lang-4.x/ast/parser/xml/hooks.js +136 -0
  338. package/r-bridge/lang-4.x/ast/parser/xml/index.d.ts +5 -0
  339. package/r-bridge/lang-4.x/ast/parser/xml/index.js +22 -0
  340. package/r-bridge/lang-4.x/ast/parser/xml/input-format.d.ts +32 -0
  341. package/r-bridge/lang-4.x/ast/parser/xml/input-format.js +33 -0
  342. package/r-bridge/lang-4.x/ast/parser/xml/internal/access.d.ts +12 -0
  343. package/r-bridge/lang-4.x/ast/parser/xml/internal/access.js +107 -0
  344. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/if-then-else.d.ts +15 -0
  345. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/if-then-else.js +32 -0
  346. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/if-then.d.ts +13 -0
  347. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/if-then.js +46 -0
  348. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/index.d.ts +2 -0
  349. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/index.js +19 -0
  350. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/expression.d.ts +10 -0
  351. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/expression.js +65 -0
  352. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/index.d.ts +1 -0
  353. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/index.js +18 -0
  354. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/argument.d.ts +13 -0
  355. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/argument.js +74 -0
  356. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/call.d.ts +13 -0
  357. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/call.js +149 -0
  358. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/definition.d.ts +12 -0
  359. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/definition.js +60 -0
  360. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/index.d.ts +2 -0
  361. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/index.js +20 -0
  362. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/parameter.d.ts +13 -0
  363. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/parameter.js +64 -0
  364. package/r-bridge/lang-4.x/ast/parser/xml/internal/index.d.ts +10 -0
  365. package/r-bridge/lang-4.x/ast/parser/xml/internal/index.js +27 -0
  366. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/break.d.ts +4 -0
  367. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/break.js +24 -0
  368. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/for.d.ts +4 -0
  369. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/for.js +72 -0
  370. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/index.d.ts +5 -0
  371. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/index.js +22 -0
  372. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/next.d.ts +4 -0
  373. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/next.js +24 -0
  374. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/repeat.d.ts +13 -0
  375. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/repeat.js +42 -0
  376. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/while.d.ts +4 -0
  377. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/while.js +45 -0
  378. package/r-bridge/lang-4.x/ast/parser/xml/internal/meta.d.ts +50 -0
  379. package/r-bridge/lang-4.x/ast/parser/xml/internal/meta.js +118 -0
  380. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/binary.d.ts +8 -0
  381. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/binary.js +162 -0
  382. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/index.d.ts +3 -0
  383. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/index.js +20 -0
  384. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/special.d.ts +6 -0
  385. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/special.js +24 -0
  386. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/unary.d.ts +13 -0
  387. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/unary.js +59 -0
  388. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/comment.d.ts +11 -0
  389. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/comment.js +34 -0
  390. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/index.d.ts +1 -0
  391. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/index.js +18 -0
  392. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/line-directive.d.ts +12 -0
  393. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/line-directive.js +55 -0
  394. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/elements.d.ts +10 -0
  395. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/elements.js +159 -0
  396. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/index.d.ts +3 -0
  397. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/index.js +20 -0
  398. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/root.d.ts +4 -0
  399. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/root.js +34 -0
  400. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/single-element.d.ts +13 -0
  401. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/single-element.js +64 -0
  402. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/index.d.ts +3 -0
  403. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/index.js +20 -0
  404. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/number.d.ts +13 -0
  405. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/number.js +56 -0
  406. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/string.d.ts +11 -0
  407. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/string.js +41 -0
  408. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/symbol.d.ts +14 -0
  409. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/symbol.js +56 -0
  410. package/r-bridge/lang-4.x/ast/parser/xml/internal/xml-to-json.d.ts +9 -0
  411. package/r-bridge/lang-4.x/ast/parser/xml/internal/xml-to-json.js +51 -0
  412. package/r-bridge/lang-4.x/ast/parser/xml/parser.d.ts +17 -0
  413. package/r-bridge/lang-4.x/ast/parser/xml/parser.js +30 -0
  414. package/r-bridge/lang-4.x/ast/parser/xml/v1/data.js +3 -0
  415. package/r-bridge/lang-4.x/ast/parser/xml/v1/hooks.js +136 -0
  416. package/r-bridge/lang-4.x/ast/parser/xml/v1/index.js +22 -0
  417. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/access.js +107 -0
  418. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/control/if-then-else.js +32 -0
  419. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/control/if-then.js +46 -0
  420. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/control/index.js +19 -0
  421. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/expression/expression.js +65 -0
  422. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/expression/index.js +18 -0
  423. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/argument.js +74 -0
  424. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/call.js +149 -0
  425. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/definition.js +60 -0
  426. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/index.js +20 -0
  427. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/parameter.js +64 -0
  428. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/index.js +27 -0
  429. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/break.js +24 -0
  430. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/for.js +72 -0
  431. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/index.js +22 -0
  432. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/next.js +24 -0
  433. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/repeat.js +42 -0
  434. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/while.js +45 -0
  435. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/operators/binary.js +162 -0
  436. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/operators/index.js +20 -0
  437. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/operators/special.js +24 -0
  438. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/operators/unary.js +59 -0
  439. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/other/comment.js +34 -0
  440. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/other/index.js +18 -0
  441. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/other/line-directive.js +55 -0
  442. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/structure/elements.js +159 -0
  443. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/structure/index.js +20 -0
  444. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/structure/root.js +34 -0
  445. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/structure/single-element.js +64 -0
  446. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/values/index.js +20 -0
  447. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/values/number.js +56 -0
  448. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/values/string.js +41 -0
  449. package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/values/symbol.js +56 -0
  450. package/r-bridge/lang-4.x/ast/parser/xml/v1/normalize.js +30 -0
  451. package/r-bridge/lang-4.x/ast/parser/xml/v2/data.js +3 -0
  452. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/access.js +95 -0
  453. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/expression.js +99 -0
  454. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/functions/argument.js +71 -0
  455. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/operators/binary.js +30 -0
  456. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/operators/index.js +19 -0
  457. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/operators/unary.js +35 -0
  458. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/other/comment.js +25 -0
  459. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/other/index.js +18 -0
  460. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/other/line-directive.js +38 -0
  461. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/root.js +26 -0
  462. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/single-element.js +63 -0
  463. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/values/index.js +18 -0
  464. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/values/number.js +46 -0
  465. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/values/string.js +33 -0
  466. package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/values/symbol.js +63 -0
  467. package/r-bridge/lang-4.x/ast/parser/xml/v2/normalize.js +25 -0
  468. package/r-bridge/lang-4.x/index.d.ts +2 -0
  469. package/r-bridge/lang-4.x/index.js +19 -0
  470. package/r-bridge/lang-4.x/values.d.ts +39 -0
  471. package/r-bridge/lang-4.x/values.js +149 -0
  472. package/r-bridge/retriever.d.ts +48 -0
  473. package/r-bridge/retriever.js +71 -0
  474. package/r-bridge/shell.d.ts +147 -0
  475. package/r-bridge/shell.js +423 -0
  476. package/reconstruct/reconstruct.d.ts +28 -0
  477. package/reconstruct/reconstruct.js +448 -0
  478. package/slicing/criterion/collect-all.d.ts +36 -0
  479. package/slicing/criterion/collect-all.js +23 -0
  480. package/slicing/criterion/filters/all-variables.d.ts +2 -0
  481. package/slicing/criterion/filters/all-variables.js +63 -0
  482. package/slicing/criterion/filters/index.d.ts +1 -0
  483. package/slicing/criterion/filters/index.js +18 -0
  484. package/slicing/criterion/index.d.ts +3 -0
  485. package/slicing/criterion/index.js +20 -0
  486. package/slicing/criterion/parse.d.ts +20 -0
  487. package/slicing/criterion/parse.js +79 -0
  488. package/slicing/index.d.ts +3 -0
  489. package/slicing/index.js +20 -0
  490. package/slicing/static/index.d.ts +1 -0
  491. package/slicing/static/index.js +18 -0
  492. package/slicing/static/static-slicer.d.ts +29 -0
  493. package/slicing/static/static-slicer.js +186 -0
  494. package/statistics/features/common-syntax-probability.d.ts +30 -0
  495. package/statistics/features/common-syntax-probability.js +159 -0
  496. package/statistics/features/feature.d.ts +175 -0
  497. package/statistics/features/feature.js +30 -0
  498. package/statistics/features/index.d.ts +1 -0
  499. package/statistics/features/index.js +18 -0
  500. package/statistics/features/post-processing.d.ts +12 -0
  501. package/statistics/features/post-processing.js +21 -0
  502. package/statistics/features/supported/assignments/assignments.d.ts +11 -0
  503. package/statistics/features/supported/assignments/assignments.js +53 -0
  504. package/statistics/features/supported/assignments/index.d.ts +1 -0
  505. package/statistics/features/supported/assignments/index.js +6 -0
  506. package/statistics/features/supported/assignments/post-process.d.ts +3 -0
  507. package/statistics/features/supported/assignments/post-process.js +125 -0
  508. package/statistics/features/supported/comments/comments.d.ts +18 -0
  509. package/statistics/features/supported/comments/comments.js +133 -0
  510. package/statistics/features/supported/comments/index.d.ts +1 -0
  511. package/statistics/features/supported/comments/index.js +6 -0
  512. package/statistics/features/supported/comments/post-process.d.ts +3 -0
  513. package/statistics/features/supported/comments/post-process.js +50 -0
  514. package/statistics/features/supported/control-flow/control-flow.d.ts +17 -0
  515. package/statistics/features/supported/control-flow/control-flow.js +67 -0
  516. package/statistics/features/supported/control-flow/index.d.ts +1 -0
  517. package/statistics/features/supported/control-flow/index.js +6 -0
  518. package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
  519. package/statistics/features/supported/control-flow/post-process.js +65 -0
  520. package/statistics/features/supported/data-access/data-access.d.ts +15 -0
  521. package/statistics/features/supported/data-access/data-access.js +118 -0
  522. package/statistics/features/supported/data-access/index.d.ts +1 -0
  523. package/statistics/features/supported/data-access/index.js +6 -0
  524. package/statistics/features/supported/data-access/post-process.d.ts +3 -0
  525. package/statistics/features/supported/data-access/post-process.js +107 -0
  526. package/statistics/features/supported/defined-functions/defined-functions.d.ts +35 -0
  527. package/statistics/features/supported/defined-functions/defined-functions.js +139 -0
  528. package/statistics/features/supported/defined-functions/index.d.ts +1 -0
  529. package/statistics/features/supported/defined-functions/index.js +6 -0
  530. package/statistics/features/supported/defined-functions/post-process.d.ts +6 -0
  531. package/statistics/features/supported/defined-functions/post-process.js +177 -0
  532. package/statistics/features/supported/expression-list/expression-list.d.ts +9 -0
  533. package/statistics/features/supported/expression-list/expression-list.js +36 -0
  534. package/statistics/features/supported/expression-list/index.d.ts +1 -0
  535. package/statistics/features/supported/expression-list/index.js +6 -0
  536. package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
  537. package/statistics/features/supported/expression-list/post-process.js +44 -0
  538. package/statistics/features/supported/index.d.ts +10 -0
  539. package/statistics/features/supported/index.js +27 -0
  540. package/statistics/features/supported/loops/index.d.ts +1 -0
  541. package/statistics/features/supported/loops/index.js +6 -0
  542. package/statistics/features/supported/loops/loops.d.ts +20 -0
  543. package/statistics/features/supported/loops/loops.js +79 -0
  544. package/statistics/features/supported/loops/post-process.d.ts +3 -0
  545. package/statistics/features/supported/loops/post-process.js +72 -0
  546. package/statistics/features/supported/used-functions/index.d.ts +1 -0
  547. package/statistics/features/supported/used-functions/index.js +6 -0
  548. package/statistics/features/supported/used-functions/post-process.d.ts +6 -0
  549. package/statistics/features/supported/used-functions/post-process.js +179 -0
  550. package/statistics/features/supported/used-functions/used-functions.d.ts +24 -0
  551. package/statistics/features/supported/used-functions/used-functions.js +95 -0
  552. package/statistics/features/supported/used-packages/index.d.ts +1 -0
  553. package/statistics/features/supported/used-packages/index.js +6 -0
  554. package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
  555. package/statistics/features/supported/used-packages/post-process.js +121 -0
  556. package/statistics/features/supported/used-packages/used-packages.d.ts +16 -0
  557. package/statistics/features/supported/used-packages/used-packages.js +130 -0
  558. package/statistics/features/supported/values/index.d.ts +1 -0
  559. package/statistics/features/supported/values/index.js +6 -0
  560. package/statistics/features/supported/values/post-process.d.ts +3 -0
  561. package/statistics/features/supported/values/post-process.js +72 -0
  562. package/statistics/features/supported/values/values.d.ts +14 -0
  563. package/statistics/features/supported/values/values.js +101 -0
  564. package/statistics/features/supported/variables/index.d.ts +1 -0
  565. package/statistics/features/supported/variables/index.js +6 -0
  566. package/statistics/features/supported/variables/post-process.d.ts +9 -0
  567. package/statistics/features/supported/variables/post-process.js +122 -0
  568. package/statistics/features/supported/variables/variables.d.ts +15 -0
  569. package/statistics/features/supported/variables/variables.js +70 -0
  570. package/statistics/index.d.ts +6 -0
  571. package/statistics/index.js +24 -0
  572. package/statistics/meta-statistics.d.ts +33 -0
  573. package/statistics/meta-statistics.js +17 -0
  574. package/statistics/output/ansi.d.ts +50 -0
  575. package/statistics/output/ansi.js +58 -0
  576. package/statistics/output/file-provider.d.ts +37 -0
  577. package/statistics/output/file-provider.js +97 -0
  578. package/statistics/output/index.d.ts +4 -0
  579. package/statistics/output/index.js +21 -0
  580. package/statistics/output/print-stats.d.ts +17 -0
  581. package/statistics/output/print-stats.js +69 -0
  582. package/statistics/output/statistics-file.d.ts +37 -0
  583. package/statistics/output/statistics-file.js +69 -0
  584. package/statistics/statistics.d.ts +24 -0
  585. package/statistics/statistics.js +109 -0
  586. package/util/args.d.ts +14 -0
  587. package/util/args.js +67 -0
  588. package/util/arrays.d.ts +44 -0
  589. package/util/arrays.js +145 -0
  590. package/util/assert.d.ts +11 -0
  591. package/util/assert.js +35 -0
  592. package/util/bimap.d.ts +24 -0
  593. package/util/bimap.js +71 -0
  594. package/util/cfg.d.ts +55 -0
  595. package/util/cfg.js +498 -0
  596. package/util/defaultmap.d.ts +34 -0
  597. package/util/defaultmap.js +65 -0
  598. package/util/diff.d.ts +43 -0
  599. package/util/diff.js +28 -0
  600. package/util/files.d.ts +54 -0
  601. package/util/files.js +144 -0
  602. package/util/json.d.ts +2 -0
  603. package/util/json.js +28 -0
  604. package/util/log.d.ts +22 -0
  605. package/util/log.js +48 -0
  606. package/util/mermaid/ast.d.ts +6 -0
  607. package/util/mermaid/ast.js +28 -0
  608. package/util/mermaid/cfg.d.ts +7 -0
  609. package/util/mermaid/cfg.js +44 -0
  610. package/util/mermaid/dfg.d.ts +21 -0
  611. package/util/mermaid/dfg.js +165 -0
  612. package/util/mermaid/index.d.ts +3 -0
  613. package/util/mermaid/index.js +20 -0
  614. package/util/mermaid/mermaid.d.ts +7 -0
  615. package/util/mermaid/mermaid.js +24 -0
  616. package/util/numbers.d.ts +1 -0
  617. package/util/numbers.js +9 -0
  618. package/util/objects.d.ts +17 -0
  619. package/util/objects.js +60 -0
  620. package/util/os.d.ts +2 -0
  621. package/util/os.js +25 -0
  622. package/util/parallel.d.ts +30 -0
  623. package/util/parallel.js +103 -0
  624. package/util/quads.d.ts +92 -0
  625. package/util/quads.js +189 -0
  626. package/util/random.d.ts +4 -0
  627. package/util/random.js +22 -0
  628. package/util/range.d.ts +32 -0
  629. package/util/range.js +61 -0
  630. package/util/set.d.ts +8 -0
  631. package/util/set.js +32 -0
  632. package/util/strings.d.ts +12 -0
  633. package/util/strings.js +41 -0
  634. package/util/summarizer/auto-detect.d.ts +2 -0
  635. package/util/summarizer/auto-detect.js +32 -0
  636. package/util/summarizer/benchmark/benchmark-summarizer.js +208 -0
  637. package/util/summarizer/benchmark/data.d.ts +66 -0
  638. package/util/summarizer/benchmark/data.js +13 -0
  639. package/util/summarizer/benchmark/first-phase/input.d.ts +2 -0
  640. package/util/summarizer/benchmark/first-phase/input.js +59 -0
  641. package/util/summarizer/benchmark/first-phase/process.d.ts +10 -0
  642. package/util/summarizer/benchmark/first-phase/process.js +208 -0
  643. package/util/summarizer/benchmark/second-phase/graph.d.ts +2 -0
  644. package/util/summarizer/benchmark/second-phase/graph.js +54 -0
  645. package/util/summarizer/benchmark/second-phase/process.d.ts +4 -0
  646. package/util/summarizer/benchmark/second-phase/process.js +89 -0
  647. package/util/summarizer/benchmark/summarizer.d.ts +34 -0
  648. package/util/summarizer/benchmark/summarizer.js +53 -0
  649. package/util/summarizer/statistics/first-phase/process.d.ts +6 -0
  650. package/util/summarizer/statistics/first-phase/process.js +81 -0
  651. package/util/summarizer/statistics/post-process/clusterer.d.ts +26 -0
  652. package/util/summarizer/statistics/post-process/clusterer.js +43 -0
  653. package/util/summarizer/statistics/post-process/file-based-count.d.ts +17 -0
  654. package/util/summarizer/statistics/post-process/file-based-count.js +49 -0
  655. package/util/summarizer/statistics/post-process/histogram.d.ts +59 -0
  656. package/util/summarizer/statistics/post-process/histogram.js +128 -0
  657. package/util/summarizer/statistics/post-process/index.d.ts +4 -0
  658. package/util/summarizer/statistics/post-process/index.js +21 -0
  659. package/util/summarizer/statistics/post-process/post-process-output.d.ts +16 -0
  660. package/util/summarizer/statistics/post-process/post-process-output.js +104 -0
  661. package/util/summarizer/statistics/second-phase/process.d.ts +11 -0
  662. package/util/summarizer/statistics/second-phase/process.js +117 -0
  663. package/util/summarizer/statistics/summarizer.d.ts +34 -0
  664. package/util/summarizer/statistics/summarizer.js +135 -0
  665. package/util/summarizer/summarizer.d.ts +25 -0
  666. package/util/summarizer/summarizer.js +13 -0
  667. package/util/time.d.ts +6 -0
  668. package/util/time.js +13 -0
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processFunctionParameter = void 0;
4
+ const processor_1 = require("../../../processor");
5
+ const environments_1 = require("../../../../common/environments");
6
+ const log_1 = require("../../../../../util/log");
7
+ const graph_1 = require("../../../graph");
8
+ const scopes_1 = require("../../../../common/environments/scopes");
9
+ function processFunctionParameter(parameter, data) {
10
+ const name = (0, processor_1.processDataflowFor)(parameter.name, data);
11
+ const defaultValue = parameter.defaultValue === undefined ? undefined : (0, processor_1.processDataflowFor)(parameter.defaultValue, data);
12
+ const graph = defaultValue !== undefined ? name.graph.mergeWith(defaultValue.graph) : name.graph;
13
+ const writtenNodes = name.unknownReferences.map(n => ({
14
+ ...n,
15
+ kind: 'parameter',
16
+ used: 'always',
17
+ definedAt: parameter.info.id,
18
+ scope: scopes_1.LocalScope
19
+ }));
20
+ let environments = name.environments;
21
+ for (const writtenNode of writtenNodes) {
22
+ log_1.log.trace(`parameter ${writtenNode.name} (${writtenNode.nodeId}) is defined at id ${writtenNode.definedAt} with ${defaultValue === undefined ? 'no default value' : ' no default value'}`);
23
+ graph.setDefinitionOfVertex(writtenNode);
24
+ environments = (0, environments_1.define)(writtenNode, scopes_1.LocalScope, environments);
25
+ if (defaultValue !== undefined) {
26
+ if (parameter.defaultValue?.type === "RFunctionDefinition" /* RType.FunctionDefinition */) {
27
+ graph.addEdge(writtenNode, parameter.defaultValue.info.id, graph_1.EdgeType.DefinedBy, 'maybe' /* default arguments can be overridden! */);
28
+ }
29
+ else {
30
+ const definedBy = [...defaultValue.in, ...defaultValue.unknownReferences];
31
+ for (const node of definedBy) {
32
+ graph.addEdge(writtenNode, node, graph_1.EdgeType.DefinedBy, 'maybe' /* default arguments can be overridden! */);
33
+ }
34
+ }
35
+ }
36
+ }
37
+ return {
38
+ unknownReferences: [],
39
+ in: defaultValue === undefined ? [] : [...defaultValue.in, ...defaultValue.unknownReferences, ...name.in],
40
+ out: [...(defaultValue?.out ?? []), ...name.out, ...name.unknownReferences],
41
+ graph: graph,
42
+ environments: environments,
43
+ scope: data.activeScope
44
+ };
45
+ }
46
+ exports.processFunctionParameter = processFunctionParameter;
47
+ //# sourceMappingURL=parameter.js.map
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processIfThenElse = void 0;
4
+ const processor_1 = require("../../processor");
5
+ const environments_1 = require("../../../common/environments");
6
+ const linker_1 = require("../linker");
7
+ function processIfThenElse(ifThen, data) {
8
+ const cond = (0, processor_1.processDataflowFor)(ifThen.condition, data);
9
+ data = { ...data, environments: cond.environments };
10
+ let then;
11
+ let makeThenMaybe = false;
12
+ if (ifThen.condition.lexeme !== 'FALSE') {
13
+ then = (0, processor_1.processDataflowFor)(ifThen.then, data);
14
+ if (ifThen.condition.lexeme !== 'TRUE') {
15
+ makeThenMaybe = true;
16
+ }
17
+ }
18
+ let otherwise;
19
+ let makeOtherwiseMaybe = false;
20
+ if (ifThen.otherwise !== undefined && ifThen.condition.lexeme !== 'TRUE') {
21
+ otherwise = (0, processor_1.processDataflowFor)(ifThen.otherwise, data);
22
+ if (ifThen.condition.lexeme !== 'FALSE') {
23
+ makeOtherwiseMaybe = true;
24
+ }
25
+ }
26
+ const nextGraph = cond.graph.mergeWith(then?.graph).mergeWith(otherwise?.graph);
27
+ const thenEnvironment = then?.environments ?? cond.environments;
28
+ // if there is no "else" case we have to recover whatever we had before as it may be not executed
29
+ const finalEnvironment = (0, environments_1.appendEnvironments)(thenEnvironment, otherwise ? otherwise.environments : cond.environments);
30
+ // again within an if-then-else we consider all actives to be read
31
+ const ingoing = [
32
+ ...cond.in,
33
+ ...(makeThenMaybe ? (0, environments_1.makeAllMaybe)(then?.in, nextGraph, finalEnvironment) : then?.in ?? []),
34
+ ...(makeOtherwiseMaybe ? (0, environments_1.makeAllMaybe)(otherwise?.in, nextGraph, finalEnvironment) : otherwise?.in ?? []),
35
+ ...cond.unknownReferences,
36
+ ...(makeThenMaybe ? (0, environments_1.makeAllMaybe)(then?.unknownReferences, nextGraph, finalEnvironment) : then?.unknownReferences ?? []),
37
+ ...(makeOtherwiseMaybe ? (0, environments_1.makeAllMaybe)(otherwise?.unknownReferences, nextGraph, finalEnvironment) : otherwise?.unknownReferences ?? []),
38
+ ];
39
+ // we assign all with a maybe marker
40
+ // we do not merge even if they appear in both branches because the maybe links will refer to different ids
41
+ const outgoing = [
42
+ ...cond.out,
43
+ ...(makeThenMaybe ? (0, environments_1.makeAllMaybe)(then?.out, nextGraph, finalEnvironment) : then?.out ?? []),
44
+ ...(makeOtherwiseMaybe ? (0, environments_1.makeAllMaybe)(otherwise?.out, nextGraph, finalEnvironment) : otherwise?.out ?? []),
45
+ ];
46
+ (0, linker_1.linkIngoingVariablesInSameScope)(nextGraph, ingoing);
47
+ return {
48
+ unknownReferences: [],
49
+ in: ingoing,
50
+ out: outgoing,
51
+ environments: finalEnvironment,
52
+ graph: nextGraph,
53
+ scope: data.activeScope,
54
+ };
55
+ }
56
+ exports.processIfThenElse = processIfThenElse;
57
+ //# sourceMappingURL=if-then-else.js.map
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processForLoop = void 0;
4
+ const linker_1 = require("../../linker");
5
+ const processor_1 = require("../../../processor");
6
+ const environments_1 = require("../../../../common/environments");
7
+ const graph_1 = require("../../../graph");
8
+ const scopes_1 = require("../../../../common/environments/scopes");
9
+ function processForLoop(loop, data) {
10
+ const variable = (0, processor_1.processDataflowFor)(loop.variable, data);
11
+ const vector = (0, processor_1.processDataflowFor)(loop.vector, data);
12
+ let headEnvironments = (0, environments_1.overwriteEnvironments)(vector.environments, variable.environments);
13
+ const headGraph = variable.graph.mergeWith(vector.graph);
14
+ const writtenVariable = variable.unknownReferences;
15
+ for (const write of writtenVariable) {
16
+ headEnvironments = (0, environments_1.define)({ ...write, used: 'always', definedAt: loop.info.id, kind: 'variable' }, scopes_1.LocalScope, headEnvironments);
17
+ }
18
+ data = { ...data, environments: headEnvironments };
19
+ const body = (0, processor_1.processDataflowFor)(loop.body, data);
20
+ const nextGraph = headGraph.mergeWith(body.graph);
21
+ const outEnvironments = (0, environments_1.appendEnvironments)(headEnvironments, body.environments);
22
+ // again within an if-then-else we consider all actives to be read
23
+ // currently i add it at the end, but is this correct?
24
+ const ingoing = [...vector.in, ...(0, environments_1.makeAllMaybe)(body.in, nextGraph, outEnvironments), ...vector.unknownReferences, ...(0, environments_1.makeAllMaybe)(body.unknownReferences, nextGraph, outEnvironments)];
25
+ // now we have to bind all open reads with the given name to the locally defined writtenVariable!
26
+ const nameIdShares = (0, linker_1.produceNameSharedIdMap)(ingoing);
27
+ for (const write of writtenVariable) {
28
+ for (const link of [...vector.in, ...vector.unknownReferences]) {
29
+ nextGraph.addEdge(write.nodeId, link.nodeId, graph_1.EdgeType.DefinedBy, 'always', true);
30
+ }
31
+ const name = write.name;
32
+ const readIdsToLink = nameIdShares.get(name);
33
+ for (const readId of readIdsToLink) {
34
+ nextGraph.addEdge(readId.nodeId, write.nodeId, graph_1.EdgeType.Reads, 'always', true);
35
+ }
36
+ // now, we remove the name from the id shares as they are no longer needed
37
+ nameIdShares.delete(name);
38
+ nextGraph.setDefinitionOfVertex(write);
39
+ }
40
+ const outgoing = [...variable.out, ...writtenVariable, ...(0, environments_1.makeAllMaybe)(body.out, nextGraph, outEnvironments)];
41
+ (0, linker_1.linkIngoingVariablesInSameScope)(nextGraph, ingoing);
42
+ (0, linker_1.linkCircularRedefinitionsWithinALoop)(nextGraph, nameIdShares, body.out);
43
+ return {
44
+ unknownReferences: [],
45
+ // we only want those not bound by a local variable
46
+ in: [...variable.in, ...[...nameIdShares.values()].flat()],
47
+ out: outgoing,
48
+ graph: nextGraph,
49
+ environments: outEnvironments,
50
+ scope: data.activeScope
51
+ };
52
+ }
53
+ exports.processForLoop = processForLoop;
54
+ //# sourceMappingURL=for-loop.js.map
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processRepeatLoop = void 0;
4
+ const processor_1 = require("../../../processor");
5
+ const linker_1 = require("../../linker");
6
+ function processRepeatLoop(loop, data) {
7
+ const body = (0, processor_1.processDataflowFor)(loop.body, data);
8
+ const graph = body.graph;
9
+ const namedIdShares = (0, linker_1.produceNameSharedIdMap)([...body.in, ...body.unknownReferences]);
10
+ (0, linker_1.linkCircularRedefinitionsWithinALoop)(graph, namedIdShares, body.out);
11
+ return {
12
+ unknownReferences: [],
13
+ in: [...body.in, ...body.unknownReferences],
14
+ out: body.out,
15
+ environments: body.environments,
16
+ scope: data.activeScope,
17
+ graph: body.graph
18
+ };
19
+ }
20
+ exports.processRepeatLoop = processRepeatLoop;
21
+ //# sourceMappingURL=repeat-loop.js.map
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processWhileLoop = void 0;
4
+ const processor_1 = require("../../../processor");
5
+ const environments_1 = require("../../../../common/environments");
6
+ const linker_1 = require("../../linker");
7
+ function processWhileLoop(loop, data) {
8
+ const condition = (0, processor_1.processDataflowFor)(loop.condition, data);
9
+ data = { ...data, environments: condition.environments };
10
+ const body = (0, processor_1.processDataflowFor)(loop.body, data);
11
+ const environments = condition.environments;
12
+ const nextGraph = condition.graph.mergeWith(body.graph);
13
+ const finalEnvironments = (0, environments_1.appendEnvironments)(condition.environments, body.environments);
14
+ // this is theoretically redundant, but we would have to manually mark all affected edges as maybe this way. This does that for us.
15
+ const remainingInputs = (0, linker_1.linkInputs)([
16
+ ...(0, environments_1.makeAllMaybe)(body.unknownReferences, nextGraph, finalEnvironments),
17
+ ...(0, environments_1.makeAllMaybe)(body.in, nextGraph, finalEnvironments)
18
+ ], data.activeScope, environments, [...condition.in, ...condition.unknownReferences], nextGraph, true);
19
+ (0, linker_1.linkCircularRedefinitionsWithinALoop)(nextGraph, (0, linker_1.produceNameSharedIdMap)(remainingInputs), body.out);
20
+ return {
21
+ unknownReferences: [],
22
+ in: remainingInputs,
23
+ out: [...(0, environments_1.makeAllMaybe)(body.out, nextGraph, finalEnvironments), ...condition.out],
24
+ graph: nextGraph,
25
+ /* the body might not happen if the condition is false */
26
+ environments: finalEnvironments,
27
+ scope: data.activeScope
28
+ };
29
+ }
30
+ exports.processWhileLoop = processWhileLoop;
31
+ //# sourceMappingURL=while-loop.js.map
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processAssignment = void 0;
4
+ const r_bridge_1 = require("../../../../../r-bridge");
5
+ const processor_1 = require("../../../processor");
6
+ const graph_1 = require("../../../graph");
7
+ const environments_1 = require("../../../../common/environments");
8
+ const log_1 = require("../../../../../util/log");
9
+ const index_1 = require("../../../index");
10
+ const scopes_1 = require("../../../../common/environments/scopes");
11
+ function processAssignment(op, data) {
12
+ index_1.dataflowLogger.trace(`Processing assignment with id ${op.info.id}`);
13
+ const lhs = (0, processor_1.processDataflowFor)(op.lhs, data);
14
+ const rhs = (0, processor_1.processDataflowFor)(op.rhs, data);
15
+ const { readTargets, newWriteNodes, writeTargets, environments, swap } = processReadAndWriteForAssignmentBasedOnOp(op, lhs, rhs, data);
16
+ const nextGraph = lhs.graph.mergeWith(rhs.graph);
17
+ // deal with special cases based on the source node and the determined read targets
18
+ const isFunctionSide = swap ? op.lhs : op.rhs;
19
+ const isFunction = isFunctionSide.type === "RFunctionDefinition" /* RType.FunctionDefinition */;
20
+ for (const write of newWriteNodes) {
21
+ nextGraph.setDefinitionOfVertex(write);
22
+ if (isFunction) {
23
+ nextGraph.addEdge(write, isFunctionSide.info.id, graph_1.EdgeType.DefinedBy, 'always', true);
24
+ }
25
+ else {
26
+ const impactReadTargets = determineImpactOfSource(swap ? op.lhs : op.rhs, readTargets);
27
+ for (const read of impactReadTargets) {
28
+ nextGraph.addEdge(write, read, graph_1.EdgeType.DefinedBy, undefined, true);
29
+ }
30
+ }
31
+ }
32
+ return {
33
+ unknownReferences: [],
34
+ in: readTargets,
35
+ out: writeTargets,
36
+ graph: nextGraph,
37
+ environments,
38
+ scope: data.activeScope
39
+ };
40
+ }
41
+ exports.processAssignment = processAssignment;
42
+ function identifySourceAndTarget(op, lhs, rhs) {
43
+ let source;
44
+ let target;
45
+ let global = false;
46
+ let swap = false;
47
+ switch (op.lexeme) {
48
+ case '<-':
49
+ case '=':
50
+ case ':=':
51
+ [target, source] = [lhs, rhs];
52
+ break;
53
+ case '<<-':
54
+ [target, source, global] = [lhs, rhs, true];
55
+ break;
56
+ case '->':
57
+ [target, source, swap] = [rhs, lhs, true];
58
+ break;
59
+ case '->>':
60
+ [target, source, global, swap] = [rhs, lhs, true, true];
61
+ break;
62
+ default:
63
+ throw new Error(`Unknown assignment operator ${JSON.stringify(op)}`);
64
+ }
65
+ return { source, target, global, swap };
66
+ }
67
+ function produceWrittenNodes(op, target, global, data, functionTypeCheck) {
68
+ const writeNodes = [];
69
+ const isFunctionDef = functionTypeCheck.type === "RFunctionDefinition" /* RType.FunctionDefinition */;
70
+ for (const active of target.unknownReferences) {
71
+ writeNodes.push({
72
+ ...active,
73
+ scope: global ? scopes_1.GlobalScope : data.activeScope,
74
+ kind: isFunctionDef ? 'function' : 'variable',
75
+ definedAt: op.info.id
76
+ });
77
+ }
78
+ return writeNodes;
79
+ }
80
+ function processReadAndWriteForAssignmentBasedOnOp(op, lhs, rhs, data) {
81
+ // what is written/read additionally is based on lhs/rhs - assignments read written variables as well
82
+ const read = [...lhs.in, ...rhs.in];
83
+ const { source, target, global, swap } = identifySourceAndTarget(op, lhs, rhs);
84
+ const funcTypeCheck = swap ? op.lhs : op.rhs;
85
+ const writeNodes = produceWrittenNodes(op, target, global, data, funcTypeCheck);
86
+ if (writeNodes.length !== 1) {
87
+ log_1.log.warn(`Unexpected write number in assignment: ${JSON.stringify(writeNodes)}`);
88
+ }
89
+ const readFromSourceWritten = source.out;
90
+ let environments = (0, environments_1.overwriteEnvironments)(source.environments, target.environments);
91
+ // install assigned variables in environment
92
+ for (const write of writeNodes) {
93
+ environments = (0, environments_1.define)(write, global ? scopes_1.GlobalScope : scopes_1.LocalScope, environments);
94
+ }
95
+ return {
96
+ readTargets: [...source.unknownReferences, ...read, ...readFromSourceWritten],
97
+ writeTargets: [...writeNodes, ...target.out, ...readFromSourceWritten],
98
+ environments: environments,
99
+ newWriteNodes: writeNodes,
100
+ swap
101
+ };
102
+ }
103
+ /**
104
+ * Some R-constructs like loops are known to return values completely independent of their input (loops return an invisible `NULL`).
105
+ * This returns only those of `readTargets` that actually impact the target.
106
+ */
107
+ function determineImpactOfSource(source, readTargets) {
108
+ // collect all ids from the source but stop at Loops, function calls, definitions and everything which links its own return
109
+ // for loops this is necessary as they *always* return an invisible null, for function calls we do not know if they do
110
+ // yet, we need to keep the ids of these elements
111
+ const keepEndIds = [];
112
+ const allIds = new Set((0, r_bridge_1.collectAllIds)(source, n => {
113
+ if (n.type === "RFunctionCall" /* RType.FunctionCall */ || n.type === "RFunctionDefinition" /* RType.FunctionDefinition */) {
114
+ keepEndIds.push(n.info.id);
115
+ return true;
116
+ }
117
+ return n.type === "RForLoop" /* RType.ForLoop */ || n.type === "RWhileLoop" /* RType.WhileLoop */ || n.type === "RRepeatLoop" /* RType.RepeatLoop */;
118
+ }));
119
+ for (const id of keepEndIds) {
120
+ allIds.add(id);
121
+ }
122
+ if (allIds.size === 0) {
123
+ return new Set();
124
+ }
125
+ else {
126
+ return new Set(readTargets.filter(ref => allIds.has(ref.nodeId)));
127
+ }
128
+ }
129
+ //# sourceMappingURL=assignment.js.map
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processNonAssignmentBinaryOp = void 0;
4
+ const processor_1 = require("../../../processor");
5
+ const linker_1 = require("../../linker");
6
+ const environments_1 = require("../../../../common/environments");
7
+ function processNonAssignmentBinaryOp(op, data) {
8
+ const lhs = (0, processor_1.processDataflowFor)(op.lhs, data);
9
+ const rhs = (0, processor_1.processDataflowFor)(op.rhs, data);
10
+ const ingoing = [...lhs.in, ...rhs.in, ...lhs.unknownReferences, ...rhs.unknownReferences];
11
+ const nextGraph = lhs.graph.mergeWith(rhs.graph);
12
+ (0, linker_1.linkIngoingVariablesInSameScope)(nextGraph, ingoing);
13
+ // logical operations may not execute the right hand side (e.g., `FALSE && (x <- TRUE)`)
14
+ const merger = op.flavor === 'logical' ? environments_1.appendEnvironments : environments_1.overwriteEnvironments;
15
+ return {
16
+ unknownReferences: [], // binary ops require reads as without assignments there is no definition
17
+ in: ingoing,
18
+ out: [...lhs.out, ...rhs.out],
19
+ environments: merger(lhs.environments, rhs.environments),
20
+ graph: nextGraph,
21
+ scope: data.activeScope,
22
+ };
23
+ }
24
+ exports.processNonAssignmentBinaryOp = processNonAssignmentBinaryOp;
25
+ //# sourceMappingURL=non-assignment-binary-op.js.map
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processPipeOperation = void 0;
4
+ const processor_1 = require("../../../processor");
5
+ const linker_1 = require("../../linker");
6
+ const environments_1 = require("../../../../common/environments");
7
+ const index_1 = require("../../../index");
8
+ const assert_1 = require("../../../../../util/assert");
9
+ const argument_1 = require("../functions/argument");
10
+ function processPipeOperation(op, data) {
11
+ const lhs = (0, processor_1.processDataflowFor)(op.lhs, data);
12
+ const rhs = (0, processor_1.processDataflowFor)(op.rhs, data);
13
+ // in-and outgoing are similar to that of a binary operation, we only 1) expect the rhs to be a function call and 2) modify the arguments.
14
+ const ingoing = [...lhs.in, ...rhs.in, ...lhs.unknownReferences, ...rhs.unknownReferences];
15
+ const nextGraph = lhs.graph.mergeWith(rhs.graph);
16
+ (0, linker_1.linkIngoingVariablesInSameScope)(nextGraph, ingoing);
17
+ if (op.rhs.type !== "RFunctionCall" /* RType.FunctionCall */) {
18
+ index_1.dataflowLogger.warn(`Expected rhs of pipe to be a function call, but got ${op.rhs.type} instead.`);
19
+ }
20
+ else {
21
+ const maybeFunctionCallNode = nextGraph.get(op.rhs.info.id, true);
22
+ (0, assert_1.guard)(maybeFunctionCallNode !== undefined, () => `Expected function call node with id ${op.rhs.info.id} to be present in graph, but got undefined instead (graph: ${(0, index_1.graphToMermaidUrl)(nextGraph, data.completeAst.idMap)}).`);
23
+ const functionCallNode = maybeFunctionCallNode[0];
24
+ (0, assert_1.guard)(functionCallNode.tag === 'function-call', () => `Expected function call node with id ${op.rhs.info.id} to be a function call node, but got ${functionCallNode.tag} instead.`);
25
+ // make the lhs an argument node:
26
+ const argId = op.lhs.info.id;
27
+ index_1.dataflowLogger.trace(`Linking pipe arg ${argId} as first argument of ${op.rhs.info.id}`);
28
+ functionCallNode.args.unshift({
29
+ nodeId: argId,
30
+ name: `${argument_1.UnnamedArgumentPrefix}${argId}`,
31
+ scope: data.activeScope,
32
+ used: 'always'
33
+ });
34
+ nextGraph.addEdge(functionCallNode.id, argId, index_1.EdgeType.Argument, 'always');
35
+ }
36
+ return {
37
+ unknownReferences: [],
38
+ in: ingoing,
39
+ out: [...lhs.out, ...rhs.out],
40
+ environments: (0, environments_1.overwriteEnvironments)(lhs.environments, rhs.environments),
41
+ graph: nextGraph,
42
+ scope: data.activeScope,
43
+ };
44
+ }
45
+ exports.processPipeOperation = processPipeOperation;
46
+ //# sourceMappingURL=pipe.js.map
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processUnaryOp = void 0;
4
+ const processor_1 = require("../../../processor");
5
+ function processUnaryOp(op, data) {
6
+ /* nothing has to happen to our knowledge */
7
+ return (0, processor_1.processDataflowFor)(op.operand, data);
8
+ }
9
+ exports.processUnaryOp = processUnaryOp;
10
+ //# sourceMappingURL=unary-op.js.map
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processSymbol = void 0;
4
+ const r_bridge_1 = require("../../../../r-bridge");
5
+ const graph_1 = require("../../graph");
6
+ const info_1 = require("../info");
7
+ function processSymbol(symbol, data) {
8
+ if (symbol.content === r_bridge_1.RNull || symbol.content === r_bridge_1.RNa) {
9
+ return (0, info_1.initializeCleanDataflowInformation)(data);
10
+ }
11
+ return {
12
+ unknownReferences: [{ nodeId: symbol.info.id, scope: data.activeScope, name: symbol.content, used: 'always' }],
13
+ in: [],
14
+ out: [],
15
+ environments: data.environments,
16
+ scope: data.activeScope,
17
+ graph: new graph_1.DataflowGraph().addVertex({ tag: 'use', id: symbol.info.id, name: symbol.content, environment: data.environments })
18
+ };
19
+ }
20
+ exports.processSymbol = processSymbol;
21
+ //# sourceMappingURL=symbol.js.map
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processUninterestingLeaf = void 0;
4
+ const info_1 = require("../info");
5
+ function processUninterestingLeaf(_leaf, info) {
6
+ return (0, info_1.initializeCleanDataflowInformation)(info);
7
+ }
8
+ exports.processUninterestingLeaf = processUninterestingLeaf;
9
+ //# sourceMappingURL=uninteresting-leaf.js.map
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processDataflowFor = void 0;
4
+ /**
5
+ * Originally, dataflow processor was written as a two-way fold, but this produced problems when trying to resolve function calls
6
+ * which require information regarding the calling *and* definition context. While this only is a problem for late bindings as they happen
7
+ * with functions (and probably quote'd R-expressions) it is still a problem that must be dealt with.
8
+ * Therefore, the dataflow processor has no complete control over the traversal and merge strategy of the graph, with each processor being in
9
+ * the position to call the other processors as needed for its children.
10
+ * <p>
11
+ * Now this method can be called recursively within the other processors to parse the dataflow for nodes that you can not narrow down.
12
+ *
13
+ * @param current - The current node to start processing from
14
+ * @param data - The initial information to be passed down
15
+ */
16
+ function processDataflowFor(current, data) {
17
+ return data.processors[current.type](current, data);
18
+ }
19
+ exports.processDataflowFor = processDataflowFor;
20
+ //# sourceMappingURL=processor.js.map
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.produceDataFlowGraph = void 0;
4
+ const info_1 = require("../v1/internal/info");
5
+ const environments_1 = require("../common/environments");
6
+ const scopes_1 = require("../common/environments/scopes");
7
+ function produceDataFlowGraph() {
8
+ return (0, info_1.initializeCleanDataflowInformation)({ environments: (0, environments_1.initializeCleanEnvironments)(), activeScope: scopes_1.GlobalScope });
9
+ }
10
+ exports.produceDataFlowGraph = produceDataFlowGraph;
11
+ //# sourceMappingURL=entry.js.map
Binary file
package/flowr.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ import commandLineUsage, { OptionDefinition } from 'command-line-usage';
2
+ export declare const toolName = "flowr";
3
+ export declare const optionDefinitions: OptionDefinition[];
4
+ export interface FlowrCliOptions {
5
+ verbose: boolean;
6
+ version: boolean;
7
+ help: boolean;
8
+ server: boolean;
9
+ port: number;
10
+ 'no-ansi': boolean;
11
+ execute: string | undefined;
12
+ script: string | undefined;
13
+ }
14
+ export declare const optionHelp: ({
15
+ header: string;
16
+ content: string;
17
+ optionList?: undefined;
18
+ } | {
19
+ header: string;
20
+ content: string[];
21
+ optionList?: undefined;
22
+ } | {
23
+ header: string;
24
+ optionList: commandLineUsage.OptionDefinition[];
25
+ content?: undefined;
26
+ })[];