@eagleoutice/flowr 1.5.1 → 2.0.0

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 (570) hide show
  1. package/abstract-interpretation/handler/binop/binop.d.ts +3 -4
  2. package/abstract-interpretation/handler/binop/binop.js +4 -2
  3. package/abstract-interpretation/handler/binop/operators.d.ts +2 -2
  4. package/abstract-interpretation/handler/binop/operators.js +14 -28
  5. package/abstract-interpretation/processor.d.ts +3 -2
  6. package/abstract-interpretation/processor.js +2 -2
  7. package/benchmark/slicer.d.ts +101 -0
  8. package/benchmark/slicer.js +214 -0
  9. package/benchmark/stats/print.d.ts +7 -0
  10. package/benchmark/stats/print.js +151 -0
  11. package/benchmark/stats/stats.d.ts +42 -0
  12. package/benchmark/stats/stats.js +6 -0
  13. package/benchmark/stopwatch.d.ts +35 -0
  14. package/benchmark/stopwatch.js +79 -0
  15. package/benchmark/summarizer/data.d.ts +54 -0
  16. package/benchmark/summarizer/first-phase/input.d.ts +3 -0
  17. package/benchmark/summarizer/first-phase/input.js +76 -0
  18. package/benchmark/summarizer/first-phase/process.d.ts +11 -0
  19. package/benchmark/summarizer/first-phase/process.js +205 -0
  20. package/benchmark/summarizer/second-phase/graph.d.ts +2 -0
  21. package/benchmark/summarizer/second-phase/graph.js +54 -0
  22. package/benchmark/summarizer/second-phase/process.d.ts +6 -0
  23. package/benchmark/summarizer/second-phase/process.js +127 -0
  24. package/benchmark/summarizer/summarizer.d.ts +31 -0
  25. package/benchmark/summarizer/summarizer.js +58 -0
  26. package/cli/benchmark-app.d.ts +10 -0
  27. package/cli/benchmark-app.js +67 -0
  28. package/cli/benchmark-helper-app.d.ts +9 -0
  29. package/cli/benchmark-helper-app.js +69 -0
  30. package/cli/common/features.d.ts +3 -0
  31. package/cli/common/features.js +30 -0
  32. package/cli/common/options.d.ts +20 -0
  33. package/cli/common/options.js +85 -0
  34. package/cli/common/script.d.ts +21 -0
  35. package/cli/common/script.js +61 -0
  36. package/cli/common/scripts-info.d.ts +25 -0
  37. package/cli/common/scripts-info.js +83 -0
  38. package/cli/export-quads-app.d.ts +7 -0
  39. package/cli/export-quads-app.js +43 -0
  40. package/cli/flowr.d.ts +29 -0
  41. package/cli/flowr.js +141 -0
  42. package/cli/repl/commands/cfg.d.ts +3 -0
  43. package/cli/repl/commands/cfg.js +37 -0
  44. package/cli/repl/commands/commands.d.ts +13 -0
  45. package/cli/repl/commands/commands.js +142 -0
  46. package/cli/repl/commands/dataflow.d.ts +3 -0
  47. package/cli/repl/commands/dataflow.js +34 -0
  48. package/cli/repl/commands/execute.d.ts +4 -0
  49. package/cli/repl/commands/execute.js +27 -0
  50. package/cli/repl/commands/main.d.ts +39 -0
  51. package/cli/repl/commands/main.js +14 -0
  52. package/cli/repl/commands/normalize.d.ts +3 -0
  53. package/cli/repl/commands/normalize.js +34 -0
  54. package/cli/repl/commands/parse.d.ts +2 -0
  55. package/cli/repl/commands/parse.js +110 -0
  56. package/cli/repl/commands/quit.d.ts +2 -0
  57. package/cli/repl/commands/quit.js +15 -0
  58. package/cli/repl/commands/version.d.ts +16 -0
  59. package/cli/repl/commands/version.js +28 -0
  60. package/cli/repl/core.d.ts +36 -0
  61. package/cli/repl/core.js +174 -0
  62. package/cli/repl/execute.d.ts +28 -0
  63. package/cli/repl/execute.js +79 -0
  64. package/cli/repl/print-version.d.ts +2 -0
  65. package/cli/repl/print-version.js +10 -0
  66. package/cli/repl/prompt.d.ts +2 -0
  67. package/cli/repl/prompt.js +9 -0
  68. package/cli/repl/server/connection.d.ts +21 -0
  69. package/cli/repl/server/connection.js +218 -0
  70. package/cli/repl/server/messages/analysis.d.ts +72 -0
  71. package/cli/repl/server/messages/analysis.js +21 -0
  72. package/cli/repl/server/messages/error.d.ts +11 -0
  73. package/{core/input.js → cli/repl/server/messages/error.js} +1 -1
  74. package/cli/repl/server/messages/hello.d.ts +20 -0
  75. package/{core/output.js → cli/repl/server/messages/hello.js} +1 -1
  76. package/cli/repl/server/messages/messages.d.ts +35 -0
  77. package/cli/repl/server/messages/messages.js +40 -0
  78. package/cli/repl/server/messages/repl.d.ts +33 -0
  79. package/cli/repl/server/messages/repl.js +37 -0
  80. package/cli/repl/server/messages/slice.d.ts +26 -0
  81. package/cli/repl/server/messages/slice.js +37 -0
  82. package/cli/repl/server/net.d.ts +49 -0
  83. package/cli/repl/server/net.js +63 -0
  84. package/cli/repl/server/send.d.ts +4 -0
  85. package/cli/repl/server/send.js +18 -0
  86. package/cli/repl/server/server.d.ts +20 -0
  87. package/cli/repl/server/server.js +66 -0
  88. package/cli/repl/server/validate.d.ts +15 -0
  89. package/cli/repl/server/validate.js +34 -0
  90. package/cli/slicer-app.d.ts +11 -0
  91. package/cli/slicer-app.js +83 -0
  92. package/cli/statistics-app.d.ts +11 -0
  93. package/cli/statistics-app.js +99 -0
  94. package/cli/statistics-helper-app.d.ts +11 -0
  95. package/cli/statistics-helper-app.js +87 -0
  96. package/cli/summarizer-app.d.ts +18 -0
  97. package/cli/summarizer-app.js +66 -0
  98. package/core/pipeline-executor.d.ts +154 -0
  99. package/core/pipeline-executor.js +221 -0
  100. package/core/print/dataflow-printer.d.ts +3 -4
  101. package/core/print/dataflow-printer.js +5 -5
  102. package/core/print/normalize-printer.d.ts +1 -1
  103. package/core/print/normalize-printer.js +3 -3
  104. package/core/print/parse-printer.js +3 -3
  105. package/core/print/print.d.ts +13 -4
  106. package/core/print/print.js +13 -2
  107. package/core/print/slice-diff-ansi.d.ts +3 -2
  108. package/core/print/slice-diff-ansi.js +4 -4
  109. package/core/steps/all/core/00-parse.d.ts +28 -0
  110. package/core/steps/all/core/00-parse.js +24 -0
  111. package/core/steps/all/core/10-normalize.d.ts +29 -0
  112. package/core/steps/all/core/10-normalize.js +26 -0
  113. package/core/steps/all/core/20-dataflow.d.ts +27 -0
  114. package/core/steps/all/core/20-dataflow.js +29 -0
  115. package/core/steps/all/static-slicing/00-slice.d.ts +28 -0
  116. package/core/steps/all/static-slicing/00-slice.js +21 -0
  117. package/core/steps/all/static-slicing/10-reconstruct.d.ts +25 -0
  118. package/core/steps/all/static-slicing/10-reconstruct.js +21 -0
  119. package/core/steps/pipeline/create-pipeline.d.ts +6 -0
  120. package/core/steps/pipeline/create-pipeline.js +130 -0
  121. package/core/steps/pipeline/default-pipelines.d.ts +251 -0
  122. package/core/steps/pipeline/default-pipelines.js +18 -0
  123. package/core/steps/pipeline/invalid-pipeline-error.d.ts +6 -0
  124. package/core/steps/pipeline/invalid-pipeline-error.js +14 -0
  125. package/core/steps/pipeline/pipeline.d.ts +60 -0
  126. package/core/steps/pipeline/pipeline.js +28 -0
  127. package/core/steps/pipeline-step.d.ts +85 -0
  128. package/core/steps/pipeline-step.js +8 -0
  129. package/dataflow/environments/append.d.ts +4 -4
  130. package/dataflow/environments/append.js +4 -4
  131. package/dataflow/environments/built-in.d.ts +25 -0
  132. package/dataflow/environments/built-in.js +123 -0
  133. package/dataflow/environments/clone.d.ts +2 -0
  134. package/dataflow/environments/clone.js +23 -0
  135. package/dataflow/environments/{register.d.ts → define.d.ts} +3 -3
  136. package/dataflow/environments/define.js +51 -0
  137. package/dataflow/environments/diff.d.ts +6 -0
  138. package/dataflow/environments/diff.js +85 -0
  139. package/dataflow/environments/environment.d.ts +10 -43
  140. package/dataflow/environments/environment.js +32 -138
  141. package/dataflow/environments/identifier.d.ts +31 -0
  142. package/dataflow/environments/identifier.js +3 -0
  143. package/dataflow/environments/overwrite.d.ts +4 -4
  144. package/dataflow/environments/overwrite.js +9 -22
  145. package/dataflow/environments/resolve-by-name.d.ts +7 -6
  146. package/dataflow/environments/resolve-by-name.js +35 -19
  147. package/dataflow/environments/scoping.js +1 -4
  148. package/dataflow/extractor.d.ts +6 -6
  149. package/dataflow/extractor.js +47 -57
  150. package/dataflow/graph/diff.d.ts +24 -7
  151. package/dataflow/graph/diff.js +114 -74
  152. package/dataflow/graph/edge.d.ts +66 -20
  153. package/dataflow/graph/edge.js +73 -27
  154. package/dataflow/graph/graph.d.ts +53 -29
  155. package/dataflow/graph/graph.js +84 -89
  156. package/dataflow/graph/quads.js +2 -2
  157. package/dataflow/graph/vertex.d.ts +37 -34
  158. package/dataflow/info.d.ts +49 -0
  159. package/dataflow/info.js +29 -0
  160. package/dataflow/internal/linker.d.ts +11 -10
  161. package/dataflow/internal/linker.js +64 -90
  162. package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
  163. package/dataflow/internal/process/functions/call/argument/make-argument.js +31 -0
  164. package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +3 -0
  165. package/dataflow/internal/process/functions/call/argument/unpack-argument.js +18 -0
  166. package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +9 -0
  167. package/dataflow/internal/process/functions/call/built-in/built-in-access.js +82 -0
  168. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +29 -0
  169. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.js +167 -0
  170. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +11 -0
  171. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +165 -0
  172. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +7 -0
  173. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +97 -0
  174. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +7 -0
  175. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +165 -0
  176. package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +7 -0
  177. package/dataflow/internal/process/functions/call/built-in/built-in-get.js +36 -0
  178. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +7 -0
  179. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +100 -0
  180. package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +7 -0
  181. package/dataflow/internal/process/functions/call/built-in/built-in-library.js +32 -0
  182. package/dataflow/internal/process/functions/call/built-in/built-in-logical-bin-op.d.ts +9 -0
  183. package/dataflow/internal/process/functions/call/built-in/built-in-logical-bin-op.js +35 -0
  184. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +7 -0
  185. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +35 -0
  186. package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +9 -0
  187. package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +29 -0
  188. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +7 -0
  189. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +32 -0
  190. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +12 -0
  191. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +45 -0
  192. package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +11 -0
  193. package/dataflow/internal/process/functions/call/built-in/built-in-source.js +72 -0
  194. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +7 -0
  195. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +61 -0
  196. package/dataflow/internal/process/functions/call/common.d.ts +35 -0
  197. package/dataflow/internal/process/functions/call/common.js +70 -0
  198. package/dataflow/internal/process/functions/call/default-call-handling.d.ts +5 -0
  199. package/dataflow/internal/process/functions/call/default-call-handling.js +15 -0
  200. package/dataflow/internal/process/functions/call/known-call-handling.d.ts +26 -0
  201. package/dataflow/internal/process/functions/call/known-call-handling.js +62 -0
  202. package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -0
  203. package/dataflow/internal/process/functions/call/named-call-handling.js +53 -0
  204. package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +6 -0
  205. package/dataflow/internal/process/functions/call/unnamed-call-handling.js +58 -0
  206. package/dataflow/internal/process/functions/process-argument.d.ts +9 -0
  207. package/dataflow/internal/process/functions/{argument.js → process-argument.js} +25 -20
  208. package/dataflow/internal/process/functions/{parameter.d.ts → process-parameter.d.ts} +3 -2
  209. package/dataflow/internal/process/functions/{parameter.js → process-parameter.js} +10 -13
  210. package/dataflow/internal/process/process-named-call.d.ts +6 -0
  211. package/dataflow/internal/process/process-named-call.js +17 -0
  212. package/dataflow/internal/process/process-symbol.d.ts +5 -0
  213. package/dataflow/internal/process/process-symbol.js +26 -0
  214. package/dataflow/internal/process/process-uninteresting-leaf.d.ts +4 -0
  215. package/dataflow/internal/process/process-uninteresting-leaf.js +9 -0
  216. package/dataflow/internal/process/process-value.d.ts +4 -0
  217. package/dataflow/internal/process/process-value.js +22 -0
  218. package/dataflow/logger.d.ts +1 -0
  219. package/dataflow/logger.js +6 -0
  220. package/dataflow/processor.d.ts +18 -13
  221. package/dataflow/processor.js +1 -1
  222. package/package.json +48 -85
  223. package/r-bridge/data/data.d.ts +603 -0
  224. package/r-bridge/data/data.js +753 -0
  225. package/r-bridge/data/get.d.ts +19 -0
  226. package/r-bridge/data/get.js +51 -0
  227. package/r-bridge/data/print.d.ts +1 -0
  228. package/r-bridge/data/print.js +58 -0
  229. package/r-bridge/data/types.d.ts +33 -0
  230. package/r-bridge/data/types.js +3 -0
  231. package/r-bridge/init.d.ts +3 -0
  232. package/r-bridge/init.js +22 -0
  233. package/r-bridge/lang-4.x/ast/model/collect.d.ts +2 -1
  234. package/r-bridge/lang-4.x/ast/model/collect.js +2 -2
  235. package/r-bridge/lang-4.x/ast/model/model.d.ts +26 -5
  236. package/r-bridge/lang-4.x/ast/model/nodes/r-access.d.ts +4 -3
  237. package/r-bridge/lang-4.x/ast/model/nodes/r-argument.d.ts +4 -0
  238. package/r-bridge/lang-4.x/ast/model/nodes/r-binary-op.d.ts +0 -17
  239. package/r-bridge/lang-4.x/ast/model/nodes/r-expression-list.d.ts +3 -1
  240. package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +6 -4
  241. package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.js +2 -0
  242. package/r-bridge/lang-4.x/ast/model/nodes/r-function-definition.d.ts +2 -3
  243. package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +1 -1
  244. package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +1 -1
  245. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +2 -2
  246. package/r-bridge/lang-4.x/ast/model/nodes/r-unary-op.d.ts +0 -11
  247. package/r-bridge/lang-4.x/ast/model/operators.d.ts +6 -18
  248. package/r-bridge/lang-4.x/ast/model/operators.js +36 -48
  249. package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +19 -15
  250. package/r-bridge/lang-4.x/ast/model/processing/decorate.js +59 -54
  251. package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +8 -0
  252. package/r-bridge/lang-4.x/ast/model/processing/node-id.js +18 -0
  253. package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +2 -2
  254. package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +28 -17
  255. package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.js +7 -34
  256. package/r-bridge/lang-4.x/ast/model/processing/visitor.js +5 -2
  257. package/r-bridge/lang-4.x/ast/model/type.js +13 -6
  258. package/r-bridge/lang-4.x/ast/parser/json/format.d.ts +4 -1
  259. package/r-bridge/lang-4.x/ast/parser/json/format.js +9 -2
  260. package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +5 -5
  261. package/r-bridge/lang-4.x/ast/parser/json/parser.js +22 -27
  262. package/r-bridge/lang-4.x/ast/parser/xml/input-format.d.ts +10 -7
  263. package/r-bridge/lang-4.x/ast/parser/xml/input-format.js +19 -11
  264. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/{if-then-else.d.ts → normalize-if-then-else.d.ts} +3 -3
  265. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/{if-then-else.js → normalize-if-then-else.js} +10 -13
  266. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/{if-then.d.ts → normalize-if-then.d.ts} +3 -3
  267. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/{if-then.js → normalize-if-then.js} +9 -12
  268. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/normalize-expression.d.ts +10 -0
  269. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/normalize-expression.js +64 -0
  270. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{argument.d.ts → normalize-argument.d.ts} +4 -4
  271. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{argument.js → normalize-argument.js} +13 -17
  272. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{call.d.ts → normalize-call.d.ts} +6 -4
  273. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{call.js → normalize-call.js} +24 -29
  274. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/normalize-definition.d.ts +12 -0
  275. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{definition.js → normalize-definition.js} +14 -19
  276. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{parameter.d.ts → normalize-parameter.d.ts} +4 -4
  277. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{parameter.js → normalize-parameter.js} +12 -16
  278. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/normalize-break.d.ts +4 -0
  279. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/{break.js → normalize-break.js} +6 -8
  280. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/normalize-for.d.ts +4 -0
  281. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/{for.js → normalize-for.js} +18 -20
  282. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/normalize-next.d.ts +4 -0
  283. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/{next.js → normalize-next.js} +6 -8
  284. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/normalize-repeat.d.ts +13 -0
  285. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/{repeat.js → normalize-repeat.js} +13 -16
  286. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/normalize-while.d.ts +4 -0
  287. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/{while.js → normalize-while.js} +10 -12
  288. package/r-bridge/lang-4.x/ast/parser/xml/internal/{access.d.ts → normalize-access.d.ts} +4 -4
  289. package/r-bridge/lang-4.x/ast/parser/xml/internal/{access.js → normalize-access.js} +44 -45
  290. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/{binary.d.ts → normalize-binary.d.ts} +3 -3
  291. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/{binary.js → normalize-binary.js} +23 -73
  292. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/normalize-unary.d.ts +13 -0
  293. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/normalize-unary.js +47 -0
  294. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/normalize-comment.d.ts +11 -0
  295. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/{comment.js → normalize-comment.js} +5 -10
  296. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/normalize-line-directive.d.ts +13 -0
  297. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/{line-directive.js → normalize-line-directive.js} +7 -12
  298. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-delimiter.d.ts +3 -0
  299. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-delimiter.js +15 -0
  300. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-expressions.d.ts +10 -0
  301. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-expressions.js +182 -0
  302. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-root.d.ts +4 -0
  303. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-root.js +34 -0
  304. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-single-node.d.ts +13 -0
  305. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-single-node.js +59 -0
  306. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/normalize-number.d.ts +16 -0
  307. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/{number.js → normalize-number.js} +12 -18
  308. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/normalize-string.d.ts +11 -0
  309. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/{string.js → normalize-string.js} +7 -12
  310. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/{symbol.d.ts → normalize-symbol.d.ts} +4 -4
  311. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/{symbol.js → normalize-symbol.js} +12 -15
  312. package/r-bridge/lang-4.x/ast/parser/xml/{internal/meta.d.ts → normalize-meta.d.ts} +5 -3
  313. package/r-bridge/lang-4.x/ast/parser/xml/{internal/meta.js → normalize-meta.js} +8 -8
  314. package/r-bridge/lang-4.x/ast/parser/xml/{data.d.ts → normalizer-data.d.ts} +1 -5
  315. package/r-bridge/lang-4.x/ast/parser/xml/normalizer-data.js +3 -0
  316. package/r-bridge/lang-4.x/{values.d.ts → convert-values.d.ts} +2 -2
  317. package/r-bridge/lang-4.x/{values.js → convert-values.js} +5 -5
  318. package/r-bridge/retriever.d.ts +5 -5
  319. package/r-bridge/retriever.js +11 -24
  320. package/r-bridge/shell-executor.d.ts +0 -1
  321. package/r-bridge/shell-executor.js +7 -12
  322. package/r-bridge/shell.d.ts +14 -12
  323. package/r-bridge/shell.js +52 -47
  324. package/reconstruct/reconstruct.d.ts +4 -2
  325. package/reconstruct/reconstruct.js +193 -185
  326. package/slicing/criterion/collect-all.d.ts +4 -3
  327. package/slicing/criterion/collect-all.js +5 -1
  328. package/slicing/criterion/filters/all-variables.js +14 -22
  329. package/slicing/criterion/parse.d.ts +4 -2
  330. package/slicing/criterion/parse.js +13 -11
  331. package/slicing/static/fingerprint.d.ts +5 -0
  332. package/slicing/static/fingerprint.js +17 -0
  333. package/slicing/static/slice-call.d.ts +10 -0
  334. package/slicing/static/slice-call.js +86 -0
  335. package/slicing/static/slicer-types.d.ts +33 -0
  336. package/slicing/static/slicer-types.js +3 -0
  337. package/slicing/static/static-slicer.d.ts +6 -24
  338. package/slicing/static/static-slicer.js +54 -155
  339. package/slicing/static/visiting-queue.d.ts +23 -0
  340. package/slicing/static/visiting-queue.js +53 -0
  341. package/statistics/features/common-syntax-probability.d.ts +29 -0
  342. package/statistics/features/common-syntax-probability.js +159 -0
  343. package/statistics/features/feature.d.ts +182 -0
  344. package/statistics/features/feature.js +39 -0
  345. package/statistics/features/post-processing.d.ts +12 -0
  346. package/statistics/features/post-processing.js +21 -0
  347. package/statistics/features/supported/assignments/assignments.d.ts +12 -0
  348. package/statistics/features/supported/assignments/assignments.js +55 -0
  349. package/statistics/features/supported/assignments/post-process.d.ts +3 -0
  350. package/statistics/features/supported/assignments/post-process.js +124 -0
  351. package/statistics/features/supported/comments/comments.d.ts +18 -0
  352. package/statistics/features/supported/comments/comments.js +133 -0
  353. package/statistics/features/supported/comments/post-process.d.ts +3 -0
  354. package/statistics/features/supported/comments/post-process.js +49 -0
  355. package/statistics/features/supported/control-flow/control-flow.d.ts +17 -0
  356. package/statistics/features/supported/control-flow/control-flow.js +68 -0
  357. package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
  358. package/statistics/features/supported/control-flow/post-process.js +64 -0
  359. package/statistics/features/supported/data-access/data-access.d.ts +15 -0
  360. package/statistics/features/supported/data-access/data-access.js +120 -0
  361. package/statistics/features/supported/data-access/post-process.d.ts +3 -0
  362. package/statistics/features/supported/data-access/post-process.js +106 -0
  363. package/statistics/features/supported/defined-functions/defined-functions.d.ts +34 -0
  364. package/statistics/features/supported/defined-functions/defined-functions.js +142 -0
  365. package/statistics/features/supported/defined-functions/post-process.d.ts +6 -0
  366. package/statistics/features/supported/defined-functions/post-process.js +169 -0
  367. package/statistics/features/supported/expression-list/expression-list.d.ts +9 -0
  368. package/statistics/features/supported/expression-list/expression-list.js +36 -0
  369. package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
  370. package/statistics/features/supported/expression-list/post-process.js +43 -0
  371. package/statistics/features/supported/loops/loops.d.ts +20 -0
  372. package/statistics/features/supported/loops/loops.js +79 -0
  373. package/statistics/features/supported/loops/post-process.d.ts +3 -0
  374. package/statistics/features/supported/loops/post-process.js +71 -0
  375. package/statistics/features/supported/used-functions/post-process.d.ts +6 -0
  376. package/statistics/features/supported/used-functions/post-process.js +178 -0
  377. package/statistics/features/supported/used-functions/used-functions.d.ts +24 -0
  378. package/statistics/features/supported/used-functions/used-functions.js +97 -0
  379. package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
  380. package/statistics/features/supported/used-packages/post-process.js +120 -0
  381. package/statistics/features/supported/used-packages/used-packages.d.ts +16 -0
  382. package/statistics/features/supported/used-packages/used-packages.js +130 -0
  383. package/statistics/features/supported/values/post-process.d.ts +3 -0
  384. package/statistics/features/supported/values/post-process.js +71 -0
  385. package/statistics/features/supported/values/values.d.ts +14 -0
  386. package/statistics/features/supported/values/values.js +101 -0
  387. package/statistics/features/supported/variables/post-process.d.ts +9 -0
  388. package/statistics/features/supported/variables/post-process.js +121 -0
  389. package/statistics/features/supported/variables/variables.d.ts +15 -0
  390. package/statistics/features/supported/variables/variables.js +60 -0
  391. package/statistics/meta-statistics.d.ts +33 -0
  392. package/statistics/meta-statistics.js +17 -0
  393. package/statistics/output/file-provider.d.ts +37 -0
  394. package/statistics/output/file-provider.js +97 -0
  395. package/statistics/output/print-stats.d.ts +17 -0
  396. package/statistics/output/print-stats.js +69 -0
  397. package/statistics/output/statistics-file.d.ts +37 -0
  398. package/statistics/output/statistics-file.js +69 -0
  399. package/statistics/statistics.d.ts +28 -0
  400. package/statistics/statistics.js +108 -0
  401. package/statistics/summarizer/auto-detect.d.ts +2 -0
  402. package/statistics/summarizer/auto-detect.js +32 -0
  403. package/statistics/summarizer/first-phase/process.d.ts +6 -0
  404. package/statistics/summarizer/first-phase/process.js +81 -0
  405. package/statistics/summarizer/post-process/clusterer.d.ts +26 -0
  406. package/statistics/summarizer/post-process/clusterer.js +43 -0
  407. package/statistics/summarizer/post-process/file-based-count.d.ts +17 -0
  408. package/statistics/summarizer/post-process/file-based-count.js +49 -0
  409. package/statistics/summarizer/post-process/histogram.d.ts +59 -0
  410. package/statistics/summarizer/post-process/histogram.js +128 -0
  411. package/statistics/summarizer/post-process/post-process-output.d.ts +16 -0
  412. package/statistics/summarizer/post-process/post-process-output.js +105 -0
  413. package/statistics/summarizer/second-phase/process.d.ts +11 -0
  414. package/statistics/summarizer/second-phase/process.js +116 -0
  415. package/statistics/summarizer/summarizer.d.ts +35 -0
  416. package/statistics/summarizer/summarizer.js +135 -0
  417. package/util/ansi.d.ts +2 -2
  418. package/util/ansi.js +2 -2
  419. package/util/arrays.d.ts +11 -1
  420. package/util/arrays.js +34 -1
  421. package/util/assert.d.ts +1 -0
  422. package/util/assert.js +5 -1
  423. package/util/cfg/cfg.d.ts +3 -2
  424. package/util/cfg/cfg.js +17 -28
  425. package/util/cfg/visitor.d.ts +1 -1
  426. package/util/defaultmap.d.ts +1 -1
  427. package/util/defaultmap.js +1 -1
  428. package/util/diff.d.ts +4 -4
  429. package/util/files.d.ts +2 -2
  430. package/util/files.js +1 -1
  431. package/util/log.d.ts +1 -0
  432. package/util/log.js +7 -1
  433. package/util/logic.d.ts +1 -0
  434. package/util/logic.js +3 -0
  435. package/util/mermaid/ast.d.ts +1 -1
  436. package/util/mermaid/ast.js +2 -2
  437. package/util/mermaid/cfg.d.ts +1 -1
  438. package/util/mermaid/dfg.d.ts +34 -8
  439. package/util/mermaid/dfg.js +99 -70
  440. package/util/mermaid/mermaid.d.ts +1 -1
  441. package/util/mermaid/mermaid.js +6 -7
  442. package/util/objects.js +4 -0
  443. package/util/quads.d.ts +3 -3
  444. package/util/quads.js +0 -1
  445. package/util/range.d.ts +27 -14
  446. package/util/range.js +31 -27
  447. package/util/version.js +1 -1
  448. package/core/index.d.ts +0 -4
  449. package/core/index.js +0 -23
  450. package/core/input.d.ts +0 -42
  451. package/core/output.d.ts +0 -15
  452. package/core/slicer.d.ts +0 -124
  453. package/core/slicer.js +0 -227
  454. package/core/steps.d.ts +0 -508
  455. package/core/steps.js +0 -100
  456. package/dataflow/environments/index.d.ts +0 -7
  457. package/dataflow/environments/index.js +0 -23
  458. package/dataflow/environments/register.js +0 -40
  459. package/dataflow/environments/scopes.d.ts +0 -6
  460. package/dataflow/environments/scopes.js +0 -6
  461. package/dataflow/graph/index.d.ts +0 -4
  462. package/dataflow/graph/index.js +0 -21
  463. package/dataflow/index.d.ts +0 -5
  464. package/dataflow/index.js +0 -24
  465. package/dataflow/internal/info.d.ts +0 -21
  466. package/dataflow/internal/info.js +0 -16
  467. package/dataflow/internal/process/access.d.ts +0 -4
  468. package/dataflow/internal/process/access.js +0 -53
  469. package/dataflow/internal/process/expression-list.d.ts +0 -8
  470. package/dataflow/internal/process/expression-list.js +0 -144
  471. package/dataflow/internal/process/functions/argument.d.ts +0 -8
  472. package/dataflow/internal/process/functions/exit-points.d.ts +0 -2
  473. package/dataflow/internal/process/functions/exit-points.js +0 -121
  474. package/dataflow/internal/process/functions/function-call.d.ts +0 -5
  475. package/dataflow/internal/process/functions/function-call.js +0 -105
  476. package/dataflow/internal/process/functions/function-definition.d.ts +0 -4
  477. package/dataflow/internal/process/functions/function-definition.js +0 -176
  478. package/dataflow/internal/process/functions/source.d.ts +0 -8
  479. package/dataflow/internal/process/functions/source.js +0 -81
  480. package/dataflow/internal/process/if-then-else.d.ts +0 -4
  481. package/dataflow/internal/process/if-then-else.js +0 -56
  482. package/dataflow/internal/process/loops/for-loop.d.ts +0 -4
  483. package/dataflow/internal/process/loops/for-loop.js +0 -54
  484. package/dataflow/internal/process/loops/repeat-loop.d.ts +0 -4
  485. package/dataflow/internal/process/loops/repeat-loop.js +0 -21
  486. package/dataflow/internal/process/loops/while-loop.d.ts +0 -4
  487. package/dataflow/internal/process/loops/while-loop.js +0 -31
  488. package/dataflow/internal/process/operators/assignment.d.ts +0 -4
  489. package/dataflow/internal/process/operators/assignment.js +0 -129
  490. package/dataflow/internal/process/operators/non-assignment-binary-op.d.ts +0 -4
  491. package/dataflow/internal/process/operators/non-assignment-binary-op.js +0 -25
  492. package/dataflow/internal/process/operators/pipe.d.ts +0 -4
  493. package/dataflow/internal/process/operators/pipe.js +0 -46
  494. package/dataflow/internal/process/operators/unary-op.d.ts +0 -4
  495. package/dataflow/internal/process/operators/unary-op.js +0 -10
  496. package/dataflow/internal/process/symbol.d.ts +0 -4
  497. package/dataflow/internal/process/symbol.js +0 -21
  498. package/dataflow/internal/process/uninteresting-leaf.d.ts +0 -3
  499. package/dataflow/internal/process/uninteresting-leaf.js +0 -9
  500. package/index.d.ts +0 -4
  501. package/index.js +0 -21
  502. package/r-bridge/index.d.ts +0 -11
  503. package/r-bridge/index.js +0 -28
  504. package/r-bridge/lang-4.x/ast/index.d.ts +0 -3
  505. package/r-bridge/lang-4.x/ast/index.js +0 -22
  506. package/r-bridge/lang-4.x/ast/model/index.d.ts +0 -6
  507. package/r-bridge/lang-4.x/ast/model/index.js +0 -23
  508. package/r-bridge/lang-4.x/ast/model/nodes/index.d.ts +0 -21
  509. package/r-bridge/lang-4.x/ast/model/nodes/index.js +0 -38
  510. package/r-bridge/lang-4.x/ast/model/nodes/info/index.d.ts +0 -13
  511. package/r-bridge/lang-4.x/ast/model/nodes/info/index.js +0 -27
  512. package/r-bridge/lang-4.x/ast/model/processing/index.d.ts +0 -5
  513. package/r-bridge/lang-4.x/ast/model/processing/index.js +0 -22
  514. package/r-bridge/lang-4.x/ast/parser/xml/hooks.d.ts +0 -292
  515. package/r-bridge/lang-4.x/ast/parser/xml/hooks.js +0 -136
  516. package/r-bridge/lang-4.x/ast/parser/xml/index.d.ts +0 -3
  517. package/r-bridge/lang-4.x/ast/parser/xml/index.js +0 -20
  518. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/index.d.ts +0 -2
  519. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/index.js +0 -19
  520. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/expression.d.ts +0 -10
  521. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/expression.js +0 -65
  522. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/index.d.ts +0 -1
  523. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/index.js +0 -18
  524. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/definition.d.ts +0 -12
  525. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/index.d.ts +0 -2
  526. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/index.js +0 -20
  527. package/r-bridge/lang-4.x/ast/parser/xml/internal/index.d.ts +0 -9
  528. package/r-bridge/lang-4.x/ast/parser/xml/internal/index.js +0 -26
  529. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/break.d.ts +0 -4
  530. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/for.d.ts +0 -4
  531. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/index.d.ts +0 -5
  532. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/index.js +0 -22
  533. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/next.d.ts +0 -4
  534. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/repeat.d.ts +0 -13
  535. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/while.d.ts +0 -4
  536. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/index.d.ts +0 -3
  537. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/index.js +0 -20
  538. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/special.d.ts +0 -6
  539. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/special.js +0 -24
  540. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/unary.d.ts +0 -13
  541. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/unary.js +0 -59
  542. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/comment.d.ts +0 -11
  543. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/index.d.ts +0 -1
  544. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/index.js +0 -18
  545. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/line-directive.d.ts +0 -12
  546. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/elements.d.ts +0 -10
  547. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/elements.js +0 -159
  548. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/index.d.ts +0 -3
  549. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/index.js +0 -20
  550. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/root.d.ts +0 -4
  551. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/root.js +0 -33
  552. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/single-element.d.ts +0 -13
  553. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/single-element.js +0 -64
  554. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/index.d.ts +0 -3
  555. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/index.js +0 -20
  556. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/number.d.ts +0 -13
  557. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/string.d.ts +0 -11
  558. package/r-bridge/lang-4.x/index.d.ts +0 -2
  559. package/r-bridge/lang-4.x/index.js +0 -19
  560. package/slicing/criterion/filters/index.d.ts +0 -1
  561. package/slicing/criterion/filters/index.js +0 -18
  562. package/slicing/criterion/index.d.ts +0 -3
  563. package/slicing/criterion/index.js +0 -20
  564. package/slicing/index.d.ts +0 -3
  565. package/slicing/index.js +0 -20
  566. package/slicing/static/index.d.ts +0 -1
  567. package/slicing/static/index.js +0 -18
  568. package/util/mermaid/index.d.ts +0 -3
  569. package/util/mermaid/index.js +0 -20
  570. /package/{r-bridge/lang-4.x/ast/parser/xml → benchmark/summarizer}/data.js +0 -0
@@ -0,0 +1,753 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.flowrCapabilities = void 0;
4
+ exports.flowrCapabilities = {
5
+ name: 'Capabilities of flowR',
6
+ description: 'This is an evolving representation of what started with #636 to formulate capabilities in a structured format.',
7
+ version: '0.0.1',
8
+ capabilities: [
9
+ {
10
+ name: 'Names and Identifiers',
11
+ id: 'names-and-identifiers',
12
+ capabilities: [
13
+ {
14
+ name: 'Form',
15
+ id: 'form',
16
+ capabilities: [
17
+ {
18
+ name: 'Normal',
19
+ id: 'name-normal',
20
+ supported: 'fully',
21
+ description: '_Recognize constructs like `a`, `plot`, ..._'
22
+ },
23
+ {
24
+ name: 'Quoted',
25
+ id: 'name-quoted',
26
+ supported: 'fully',
27
+ description: "_Recognize `\"a\"`, `'plot'`, ..._"
28
+ },
29
+ {
30
+ name: 'Escaped',
31
+ id: 'name-escaped',
32
+ supported: 'fully',
33
+ description: '_Recognize `` `a` ``, `` `plot` ``, ..._'
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ name: 'Resolution',
39
+ id: 'resolution',
40
+ capabilities: [
41
+ {
42
+ name: 'Global Scope',
43
+ id: 'global-scope',
44
+ supported: 'fully',
45
+ description: '_For example, tracking a big table of current identifier bindings_'
46
+ },
47
+ {
48
+ name: 'Lexicographic Scope',
49
+ id: 'lexicographic-scope',
50
+ supported: 'fully',
51
+ description: '_For example, support function definition scopes_'
52
+ },
53
+ {
54
+ name: 'Closures',
55
+ id: 'closures',
56
+ supported: 'partially',
57
+ description: '_Handling [function factories](https://adv-r.hadley.nz/function-factories.html) and friends._ Currently, we do not have enough tests to be sure.'
58
+ },
59
+ {
60
+ name: 'Dynamic Environment Resolution',
61
+ id: 'dynamic-environment-resolution',
62
+ supported: 'not',
63
+ description: '_For example, using `new.env` and friends_'
64
+ },
65
+ {
66
+ name: 'Environment Sharing',
67
+ id: 'environment-sharing',
68
+ supported: 'not',
69
+ description: '_Handling side-effects by environments which are not copied when modified_'
70
+ },
71
+ {
72
+ name: 'Search Path',
73
+ id: 'search-path',
74
+ supported: 'not',
75
+ description: "_Handling [R's search path](https://cran.r-project.org/doc/manuals/r-release/R-lang.html#Search-path) as explained in [Advanced R](https://adv-r.hadley.nz/environments.html#search-path)._ Currently, _flowR_ does not support dynamic modifications with `attach`, `search`, or `fn_env` and tests are definitely missing. Yet, theoretically, the tooling is all there."
76
+ },
77
+ {
78
+ name: 'Namespaces',
79
+ id: 'namespaces',
80
+ supported: 'not',
81
+ description: "_Handling R's namespaces as explained in [Advanced R](https://adv-r.hadley.nz/environments.html#namespaces)_"
82
+ },
83
+ {
84
+ name: 'Accessing Exported Names',
85
+ id: 'accessing-exported-names',
86
+ supported: 'partially',
87
+ description: '_Resolving calls with `::` to their origin._ Accessing external files is allowed, although the name of packages etc. is not resolved correctly.'
88
+ },
89
+ {
90
+ name: 'Accessing Internal Names',
91
+ id: 'accessing-internal-names',
92
+ supported: 'not',
93
+ description: '_Similar to `::` but for internal names._'
94
+ },
95
+ {
96
+ name: 'Library Loading',
97
+ id: 'library-loading',
98
+ supported: 'not',
99
+ description: '_Resolve libraries identified with `library`, `require`, `attachNamespace`, ... and attach them to the search path_'
100
+ }
101
+ ]
102
+ }
103
+ ]
104
+ },
105
+ {
106
+ name: 'Expressions',
107
+ id: 'expressions',
108
+ capabilities: [
109
+ {
110
+ name: 'Function Calls',
111
+ id: 'function-calls',
112
+ capabilities: [
113
+ {
114
+ name: 'Grouping',
115
+ id: 'grouping',
116
+ supported: 'fully',
117
+ description: '_Recognize groups done with `(`, `{`, ... (more precisely, their default mapping to the primitive implementations)._'
118
+ },
119
+ {
120
+ name: 'Normal Call',
121
+ id: 'call-normal',
122
+ supported: 'fully',
123
+ description: '_Recognize and resolve calls like `f(x)`, `foo::bar(x, y)`, ..._',
124
+ capabilities: [
125
+ {
126
+ name: 'Unnamed Arguments',
127
+ id: 'unnamed-arguments',
128
+ supported: 'fully',
129
+ description: '_Recognize and resolve calls like `f(3)`, `foo::bar(3, c(1,2))`, ..._'
130
+ },
131
+ {
132
+ name: 'Empty Arguments',
133
+ id: 'empty-arguments',
134
+ supported: 'fully',
135
+ description: '_Essentially a special form of an unnamed argument as in `foo::bar(3, ,42)`, ..._'
136
+ },
137
+ {
138
+ name: 'Named Arguments',
139
+ id: 'named-arguments',
140
+ supported: 'fully',
141
+ description: '_Recognize and resolve calls like `f(x = 3)`, `foo::bar(x = 3, y = 4)`, ..._'
142
+ },
143
+ {
144
+ name: 'String Arguments',
145
+ id: 'string-arguments',
146
+ supported: 'fully',
147
+ description: '_Recognize and resolve calls like `f(\'x\' = 3)`, `foo::bar(\'x\' = 3, "y" = 4)`, ..._'
148
+ },
149
+ {
150
+ name: 'Resolve Arguments',
151
+ id: 'resolve-arguments',
152
+ supported: 'partially',
153
+ description: '_Correctly bind arguments (including [`pmatch`](https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/pmatch))._ Currently, we do not have a correct implementation for `pmatch`. Furthermore, more tests would be nice.'
154
+ },
155
+ {
156
+ name: 'Side-Effects in Argument',
157
+ id: 'side-effects-in-argument',
158
+ supported: 'partially',
159
+ description: '_Handle side-effects of arguments (e.g., `f(x <- 3)`, `f(x = y <- 3)`, ...)._ We have not enough tests to be sure'
160
+ },
161
+ {
162
+ name: 'Side-Effects in Function Call',
163
+ id: 'side-effects-in-function-call',
164
+ supported: 'partially',
165
+ description: '_Handle side-effects of function calls (e.g., `setXTo(3)`, ...) for example achieved with the super assignment._ We need more tests and handlings. Furthermore, we do not detect side effects with external files, network, logging, etc.'
166
+ }
167
+ ]
168
+ },
169
+ {
170
+ name: 'Anonymous Calls',
171
+ id: 'call-anonymous',
172
+ supported: 'fully',
173
+ description: '_Recognize and resolve calls like `(function(x) x)(3)`, `factory(0)()`, ..._'
174
+ },
175
+ {
176
+ name: 'Infix Calls',
177
+ id: 'infix-calls',
178
+ supported: 'fully',
179
+ description: '_Recognize and resolve calls like `x + y`, `x %>% f(y)`, ..._'
180
+ },
181
+ {
182
+ name: 'Redefinition of Built-In Functions/primitives',
183
+ id: 'redefinition-of-built-in-functions-primitives',
184
+ supported: 'partially',
185
+ description: '_Handle cases like `print <- function(x) x`, `` `for` <- function(a,b,c) a``, ..._ Currently, we can not handle all of them there are no tests. Still wip as part of desugaring'
186
+ },
187
+ {
188
+ name: 'Index Access',
189
+ id: 'index-access',
190
+ capabilities: [
191
+ {
192
+ name: 'Single Bracket Access',
193
+ id: 'single-bracket-access',
194
+ supported: 'fully',
195
+ description: '_Detect calls like `x[i]`, `x[i, ,b]`, `x[3][y]`, ... This does not include the real separation of cells, which is handled extra._'
196
+ },
197
+ {
198
+ name: 'Double Bracket Access',
199
+ id: 'double-bracket-access',
200
+ supported: 'fully',
201
+ description: '_Detect calls like `x[[i]]`, `x[[i, b]]`, ... Similar to single bracket._'
202
+ },
203
+ {
204
+ name: 'Dollar Access',
205
+ id: 'dollar-access',
206
+ supported: 'fully',
207
+ description: '_Detect calls like `x$y`, `x$"y"`, `x$y$z`, ..._'
208
+ },
209
+ {
210
+ name: 'Slot Access',
211
+ id: 'slot-access',
212
+ supported: 'fully',
213
+ description: '_Detect calls like `x@y`, `x@y@z`, ..._'
214
+ },
215
+ {
216
+ name: 'Access with Argument-Names',
217
+ id: 'access-with-argument-names',
218
+ supported: 'fully',
219
+ description: '_Detect calls like `x[i = 3]`, `x[[i=]]`, ..._'
220
+ },
221
+ {
222
+ name: 'Access with Empty',
223
+ id: 'access-with-empty',
224
+ supported: 'fully',
225
+ description: '_Detect calls like `x[]`, `x[2,,42]`, ..._'
226
+ },
227
+ {
228
+ name: 'Subsetting',
229
+ id: 'subsetting',
230
+ supported: 'fully',
231
+ description: '_Detect calls like `x[i > 3]`, `x[c(1,3)]`, ..._'
232
+ }
233
+ ]
234
+ },
235
+ {
236
+ name: 'Operators',
237
+ id: 'operators',
238
+ capabilities: [
239
+ {
240
+ name: 'Unary Operator',
241
+ id: 'unary-operator',
242
+ supported: 'fully',
243
+ description: '_Recognize and resolve calls like `+3`, `-3`, ..._'
244
+ },
245
+ {
246
+ name: 'Binary Operator',
247
+ id: 'binary-operator',
248
+ supported: 'fully',
249
+ description: '_Recognize and resolve calls like `3 + 4`, `3 * 4`, ..._',
250
+ capabilities: [
251
+ {
252
+ name: 'Special Operator',
253
+ id: 'special-operator',
254
+ supported: 'fully',
255
+ description: '_Recognize and resolve calls like `3 %in% 4`, `3 %*% 4`, ..._'
256
+ },
257
+ {
258
+ name: 'Model Formula',
259
+ id: 'model-formula',
260
+ supported: 'partially',
261
+ description: '_Recognize and resolve calls like `y ~ x`, `y ~ x + z`, ... including their implicit redefinitions of some functions._ Currently, we do not handle their redefinition and only treat model formulas as normal binary operators'
262
+ },
263
+ {
264
+ name: 'Assignments and Bindings',
265
+ id: 'assignments-and-bindings',
266
+ capabilities: [
267
+ {
268
+ name: 'Local Left Assignment',
269
+ id: 'local-left-assignment',
270
+ supported: 'fully',
271
+ description: '_Handle `x <- 3`, `x$y <- 3`, ..._'
272
+ },
273
+ {
274
+ name: 'Local Right Assignment',
275
+ id: 'local-right-assignment',
276
+ supported: 'fully',
277
+ description: '_Handle `3 -> x`, `3 -> x$y`, ..._'
278
+ },
279
+ {
280
+ name: 'Local Equal Assignment',
281
+ id: 'local-equal-assignment',
282
+ supported: 'fully',
283
+ description: '_Handle `x = 3`, `x$y := 3`, ..._'
284
+ },
285
+ {
286
+ name: 'Super Left Assignment',
287
+ id: 'super-left-assignment',
288
+ supported: 'fully',
289
+ description: '_Handle `x <<- 42`, `x$y <<- 42`, ..._'
290
+ },
291
+ {
292
+ name: 'Super Right Assignment',
293
+ id: 'super-right-assignment',
294
+ supported: 'fully',
295
+ description: '_Handle `42 ->> x`, `42 ->> x$y`, ..._'
296
+ },
297
+ {
298
+ name: 'Return Value of Assignments',
299
+ id: 'return-value-of-assignments',
300
+ supported: 'fully',
301
+ description: '_Handle `x <- 3` returning `3`, e.g., in `x <- y <- 3`_'
302
+ },
303
+ {
304
+ name: 'Assignment Functions',
305
+ id: 'assignment-functions',
306
+ supported: 'partially',
307
+ description: '_Handle `assign(x, 3)`, `delayedAssign(x, 3)`, ..._ Currently we can not handle all of them and tests are rare.'
308
+ },
309
+ {
310
+ name: 'Range Assignment',
311
+ id: 'range-assignment',
312
+ supported: 'fully',
313
+ description: '_Handle `x[1:3] <- 3`, `x$y[1:3] <- 3`, ..._'
314
+ },
315
+ {
316
+ name: 'Replacement Functions',
317
+ id: 'replacement-functions',
318
+ supported: 'partially',
319
+ description: '_Handle `x[i] <- 3`, `x$y <- 3`, ... as `` `[<-`(x, 3) ``, ..._ Currently work in progress as part of the desugaring but still untested.'
320
+ },
321
+ {
322
+ name: 'Locked Bindings',
323
+ id: 'locked-bindings',
324
+ supported: 'not',
325
+ description: '_Handle `lockBinding(x, 3)`, ..._'
326
+ }
327
+ ]
328
+ }
329
+ ]
330
+ }
331
+ ]
332
+ },
333
+ {
334
+ name: 'Control-Flow',
335
+ id: 'control-flow',
336
+ capabilities: [
337
+ {
338
+ name: 'if',
339
+ id: 'if',
340
+ supported: 'fully',
341
+ description: '_Handle `if (x) y else z`, `if (x) y`, ..._'
342
+ },
343
+ {
344
+ name: 'for loop',
345
+ id: 'for-loop',
346
+ supported: 'fully',
347
+ description: '_Handle `for (i in 1:3) print(i)`, ..._'
348
+ },
349
+ {
350
+ name: 'while loop',
351
+ id: 'while-loop',
352
+ supported: 'fully',
353
+ description: '_Handle `while (x) b`, ..._'
354
+ },
355
+ {
356
+ name: 'repeat loop',
357
+ id: 'repeat-loop',
358
+ supported: 'fully',
359
+ description: '_Handle `repeat {b; if (x) break}`, ..._'
360
+ },
361
+ {
362
+ name: 'break',
363
+ id: 'break',
364
+ supported: 'fully',
365
+ description: '_Handle `break` (including `break()`) ..._'
366
+ },
367
+ {
368
+ name: 'next',
369
+ id: 'next',
370
+ supported: 'fully',
371
+ description: '_Handle `next` (including `next()`) ..._'
372
+ },
373
+ {
374
+ name: 'switch',
375
+ id: 'switch',
376
+ supported: 'fully',
377
+ description: '_Handle `switch(3, "a", "b", "c")`, ..._'
378
+ },
379
+ {
380
+ name: 'return',
381
+ id: 'return',
382
+ supported: 'fully',
383
+ description: '_Handle `return(3)`, ... in function definitions_'
384
+ },
385
+ {
386
+ name: 'exceptions',
387
+ id: 'exceptions',
388
+ supported: 'not',
389
+ description: '_Handle `try`, `stop`, ..._'
390
+ }
391
+ ]
392
+ },
393
+ {
394
+ name: 'Function Definitions',
395
+ id: 'function-definitions',
396
+ capabilities: [
397
+ {
398
+ name: 'Normal',
399
+ id: 'normal-definition',
400
+ supported: 'fully',
401
+ description: '_Handle `function() 3`, ..._'
402
+ },
403
+ {
404
+ name: 'Formals',
405
+ id: 'formals',
406
+ capabilities: [
407
+ {
408
+ name: 'Named',
409
+ id: 'formals-named',
410
+ supported: 'fully',
411
+ description: '_Handle `function(x) x`, ..._'
412
+ },
413
+ {
414
+ name: 'Default',
415
+ id: 'formals-default',
416
+ supported: 'fully',
417
+ description: '_Handle `function(x = 3) x`, ..._'
418
+ },
419
+ {
420
+ name: 'Dot-Dot-Dot',
421
+ id: 'formals-dot-dot-dot',
422
+ supported: 'fully',
423
+ description: '_Handle `function(...) 3`, ..._'
424
+ },
425
+ {
426
+ name: 'Promises',
427
+ id: 'formals-promises',
428
+ supported: 'partially',
429
+ description: '_Handle `function(x = y) { y <- 3; x }`, `function(x = { x <- 3; x}) { x * x }`, ..._ We _try_ to identify promises correctly but this is really rudimentary.'
430
+ }
431
+ ]
432
+ },
433
+ {
434
+ name: 'Implicit Return',
435
+ id: 'implicit-return',
436
+ supported: 'fully',
437
+ description: '_Handle the return of `function() 3`, ..._'
438
+ },
439
+ {
440
+ name: 'Lambda Syntax',
441
+ id: 'lambda-syntax',
442
+ supported: 'fully',
443
+ description: '_Support `\\(x) x`, ..._'
444
+ }
445
+ ]
446
+ },
447
+ {
448
+ name: 'Important Built-Ins',
449
+ id: 'important-built-ins',
450
+ capabilities: [
451
+ {
452
+ name: 'Non-Strict Logical Operators',
453
+ id: 'non-strict-logical-operators',
454
+ supported: 'fully',
455
+ description: '_Handle `&&`, `||`, ..._'
456
+ },
457
+ {
458
+ name: 'Pipe and Pipe-Bind',
459
+ id: 'built-in-pipe-and-pipe-bind',
460
+ supported: 'partially',
461
+ description: '_Handle the [new (4.1) pipe and pipe-bind syntax](https://www.r-bloggers.com/2021/05/the-new-r-pipe/): `|>`, and `=>`._ We have not enough tests and do not support pipe-bind.'
462
+ },
463
+ {
464
+ name: 'Sequencing',
465
+ id: 'built-in-sequencing',
466
+ supported: 'not',
467
+ description: '_Handle `:`, `seq`, ... as they are used often._'
468
+ },
469
+ {
470
+ name: 'Internal and Primitive Functions',
471
+ id: 'built-in-internal-and-primitive-functions',
472
+ supported: 'not',
473
+ description: '_Handle `.Internal`, `.Primitive`, ..._ In general we can not handle them as they refer to non-R code. We currently do not support them when used with the function.'
474
+ },
475
+ {
476
+ name: 'Options',
477
+ id: 'built-in-options',
478
+ supported: 'not',
479
+ description: '_Handle `options`, `getOption`, ..._ Currently, we do not support the function at all.'
480
+ },
481
+ {
482
+ name: 'Help',
483
+ id: 'built-in-help',
484
+ supported: 'partially',
485
+ description: '_Handle `help`, `?`, ..._ We do not support the function in a sensible way but just ignore it (although this does not happen resolved).'
486
+ },
487
+ {
488
+ name: 'Reflection / "Computing on the Language"',
489
+ id: 'reflection-"computing-on-the-language"',
490
+ capabilities: [
491
+ {
492
+ name: 'Get Function Structure',
493
+ id: 'get-function-structure',
494
+ supported: 'not',
495
+ description: '_Handle `body`, `formals`, `environment` to access the respective parts of a function._ We do not support the functions at all.'
496
+ },
497
+ {
498
+ name: 'Modify Function Structure',
499
+ id: 'modify-function-structure',
500
+ supported: 'not',
501
+ description: '_Handle `body<-`, `formals<-`, `environment<-` to modify the respective parts of a function._ We do not support the functions at all.'
502
+ },
503
+ {
504
+ name: 'Quoting',
505
+ id: 'built-in-quoting',
506
+ supported: 'partially',
507
+ description: '_Handle `quote`, `substitute`, `bquote`, ..._ We partially ignore some of them but most likely not all.'
508
+ },
509
+ {
510
+ name: 'Evaluation',
511
+ id: 'built-in-evaluation',
512
+ supported: 'not',
513
+ description: '_Handle `eval`, `evalq`, `eval.parent`, ..._ We do not handle them at all.'
514
+ },
515
+ {
516
+ name: 'Parsing',
517
+ id: 'built-in-parsing',
518
+ supported: 'not',
519
+ description: '_Handle `parse`, `deparse`, ..._ We handle them as unknown function calls, but not specifically besides that.'
520
+ }
521
+ ]
522
+ }
523
+ ]
524
+ }
525
+ ]
526
+ },
527
+ {
528
+ name: 'Literal Values',
529
+ id: 'literal-values',
530
+ capabilities: [
531
+ {
532
+ name: 'Numbers',
533
+ id: 'numbers',
534
+ supported: 'fully',
535
+ description: '_Recognize numbers like `3`, `3.14`, `NA`, float-hex, ..._'
536
+ },
537
+ {
538
+ name: 'Strings',
539
+ id: 'strings',
540
+ supported: 'fully',
541
+ description: "_Recognize strings like `\"a\"`, `'b'`, ..._",
542
+ capabilities: [
543
+ {
544
+ name: 'Raw Strings',
545
+ id: 'raw-strings',
546
+ supported: 'fully',
547
+ description: '_Recognize raw strings like `r"(a)"`, ..._'
548
+ }
549
+ ]
550
+ },
551
+ {
552
+ name: 'Logical',
553
+ id: 'logical',
554
+ supported: 'fully',
555
+ description: '_Recognize the logicals `TRUE` and `FALSE`, ..._'
556
+ },
557
+ {
558
+ name: 'NULL',
559
+ id: 'null',
560
+ supported: 'fully',
561
+ description: '_Recognize `NULL`_'
562
+ },
563
+ {
564
+ name: 'Inf and NaN',
565
+ id: 'inf-and-nan',
566
+ supported: 'fully',
567
+ description: '_Recognize `Inf` and `NaN`_'
568
+ }
569
+ ]
570
+ }
571
+ ]
572
+ },
573
+ {
574
+ name: 'Non-Standard Evaluations/Semantics',
575
+ id: 'non-standard-evaluations-semantics',
576
+ capabilities: [
577
+ {
578
+ name: 'Recycling',
579
+ id: 'recycling',
580
+ supported: 'not',
581
+ description: '_Handle recycling of vectors as explained in [Advanced R](https://adv-r.hadley.nz/vectors-chap.html)._ We do not support recycling.'
582
+ },
583
+ {
584
+ name: 'Vectorized Operator or Functions',
585
+ id: 'vectorized-operator-or-functions',
586
+ supported: 'not',
587
+ description: '_Handle vectorized operations as explained in [Advanced R](https://adv-r.hadley.nz/perf-improve.html?q=vectorised#vectorise)._ We do not support vectorized operations.'
588
+ },
589
+ {
590
+ name: 'Hooks',
591
+ id: 'hooks',
592
+ supported: 'not',
593
+ description: '_Handle hooks like [`userhooks`](https://stat.ethz.ch/R-manual/R-devel/library/base/html/userhooks.html) and [`on.exit`](https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/on.exit)._ We do not support hooks.'
594
+ },
595
+ {
596
+ name: 'Precedence',
597
+ id: 'precedence',
598
+ supported: 'fully',
599
+ description: '_Handle the precedence of operators as explained in the [Documentation](https://rdrr.io/r/base/Syntax.html)._ We handle the precedence of operators (implicitly with the parser).'
600
+ },
601
+ {
602
+ name: 'Attributes',
603
+ id: 'attributes',
604
+ capabilities: [
605
+ {
606
+ name: 'User-Defined',
607
+ id: 'user-defined',
608
+ supported: 'not',
609
+ description: '_Handle [attributes](https://cran.r-project.org/doc/manuals/r-release/R-lang.html#Attributes) like `attr`, `attributes`, ..._ We do not support attributes.'
610
+ },
611
+ {
612
+ name: 'Built-In',
613
+ id: 'built-in',
614
+ supported: 'not',
615
+ description: '_Handle built-in attributes like `dim`, ..._ We do not support them.'
616
+ }
617
+ ]
618
+ }
619
+ ]
620
+ },
621
+ {
622
+ name: 'Types',
623
+ id: 'types',
624
+ capabilities: [
625
+ {
626
+ name: 'Primitive',
627
+ id: 'types-primitive',
628
+ supported: 'not',
629
+ description: '_Recognize and resolve primitive types like `numeric`, `character`, ..._ We do not support typing currently.'
630
+ },
631
+ {
632
+ name: 'Non-Primitive',
633
+ id: 'types-non-primitive',
634
+ supported: 'not',
635
+ description: '_Recognize and resolve non-primitive/composite types._ We do not support typing currently.'
636
+ },
637
+ {
638
+ name: 'Inference',
639
+ id: 'types-inference',
640
+ supported: 'not',
641
+ description: '_Infer types from the code._ We do not support typing currently.'
642
+ },
643
+ {
644
+ name: 'Coercion',
645
+ id: 'types-coercion',
646
+ supported: 'not',
647
+ description: '_Handle coercion of types._ We do not support typing currently.'
648
+ },
649
+ {
650
+ name: 'Object-Oriented Programming',
651
+ id: 'object-oriented-programming',
652
+ capabilities: [
653
+ {
654
+ name: 'S3',
655
+ id: 'oop-s3',
656
+ note: 'https://adv-r.hadley.nz/s3.html',
657
+ supported: 'not',
658
+ description: '_Handle S3 classes and methods as one unit (with attributes etc.). Including Dispatch and Inheritance._ We do not support typing currently and do not handle objects of these classes "as units."'
659
+ },
660
+ {
661
+ name: 'S4',
662
+ id: 'oop-s4',
663
+ note: 'https://adv-r.hadley.nz/s4.html',
664
+ supported: 'not',
665
+ description: '_Handle S4 classes and methods as one unit. Including Dispatch and Inheritance_ We do not support typing currently and do not handle objects of these classes "as units."'
666
+ },
667
+ {
668
+ name: 'R6',
669
+ id: 'oop-r6',
670
+ note: 'https://adv-r.hadley.nz/r6.html',
671
+ supported: 'not',
672
+ description: '_Handle R6 classes and methods as one unit. Including Dispatch and Inheritance, as well as its Reference Semantics, Access Control, Finalizers, and Introspection._ We do not support typing currently and do not handle objects of these classes "as units."'
673
+ },
674
+ {
675
+ name: 'R7/S7',
676
+ id: 'r7-s7',
677
+ note: 'https://www.r-bloggers.com/2022/12/what-is-r7-a-new-oop-system-for-r/, https://cran.r-project.org/web/packages/S7/index.html',
678
+ supported: 'not',
679
+ description: '_Handle R7 classes and methods as one unit. Including Dispatch and Inheritance, as well as its Reference Semantics, Validators, ..._ We do not support typing currently and do not handle objects of these classes "as units."'
680
+ }
681
+ ]
682
+ }
683
+ ]
684
+ },
685
+ {
686
+ name: 'Structure',
687
+ id: 'structure',
688
+ capabilities: [
689
+ {
690
+ name: 'Comments',
691
+ id: 'comments',
692
+ supported: 'fully',
693
+ description: '_Recognize comments like `# this is a comment`, ... and line-directives_'
694
+ },
695
+ {
696
+ name: 'Semicolons',
697
+ id: 'semicolons',
698
+ supported: 'fully',
699
+ description: '_Recognize and resolve semicolons like `a; b; c`, ..._'
700
+ },
701
+ {
702
+ name: 'Newlines',
703
+ id: 'newlines',
704
+ supported: 'fully',
705
+ description: '_Recognize and resolve newlines like `a\nb\nc`, ..._'
706
+ }
707
+ ]
708
+ },
709
+ {
710
+ name: 'System, I/O, FFI, and Other Files',
711
+ id: 'system-i-o-ffi-and-other-files',
712
+ capabilities: [
713
+ {
714
+ name: 'Sourcing External Files',
715
+ id: 'sourcing-external-files',
716
+ supported: 'partially',
717
+ description: '_Handle `source`, `sys.source`, ..._ We are currently working on supporting the inclusion of external files. Currently we can handle `source`.'
718
+ },
719
+ {
720
+ name: 'Handling Binary Riles',
721
+ id: 'handling-binary-riles',
722
+ supported: 'not',
723
+ description: '_Handle files dumped with, e.g., [`save`](https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/save), ... due to their frequent usage._ We do not support binary files.'
724
+ },
725
+ {
726
+ name: 'I/O',
727
+ id: 'i-o',
728
+ supported: 'not',
729
+ description: '_Handle `read.csv`, `write.csv`, ..._ We do not support I/O for the time being but treat them as unknown function calls.'
730
+ },
731
+ {
732
+ name: 'Foreign Function Interface',
733
+ id: 'foreign-function-interface',
734
+ supported: 'not',
735
+ description: '_Handle `.Fortran`, `C`,..._ We do not support FFI but treat them as unknown function calls.'
736
+ },
737
+ {
738
+ name: 'System Calls',
739
+ id: 'system-calls',
740
+ supported: 'not',
741
+ description: '_Handle [`system`](https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/system), `system.*`, ..._ We do not support system calls but treat them as unknown function calls.'
742
+ }
743
+ ]
744
+ },
745
+ {
746
+ name: 'Pre-Processors/external Tooling',
747
+ id: 'pre-processors-external-tooling',
748
+ supported: 'not',
749
+ description: '_Handle pre-processors like `knitr`, `rmarkdown`, `roxygen2` ..._ We do not support pre-processors for the time being (being unable to handle things like `@importFrom`)'
750
+ }
751
+ ]
752
+ };
753
+ //# sourceMappingURL=data.js.map