@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,10 @@
1
+ import { NamedXmlBasedJson, XmlBasedJson } from '../../input-format';
2
+ import { ParserData } from '../../data';
3
+ import { RNode } from '../../../../model';
4
+ import { RDelimiter } from '../../../../model/nodes/info';
5
+ export declare function splitComments(mappedWithName: NamedXmlBasedJson[]): {
6
+ comments: NamedXmlBasedJson[];
7
+ others: NamedXmlBasedJson[];
8
+ };
9
+ export declare function normalizeBasedOnType(data: ParserData, obj: XmlBasedJson[] | NamedXmlBasedJson[]): (RNode | RDelimiter)[];
10
+ export declare function parseNodesWithUnknownType(data: ParserData, mappedWithName: NamedXmlBasedJson[]): (RNode | RDelimiter)[];
@@ -0,0 +1,159 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseNodesWithUnknownType = exports.normalizeBasedOnType = exports.splitComments = void 0;
4
+ const arrays_1 = require("../../../../../../../util/arrays");
5
+ const parser_1 = require("../../parser");
6
+ const meta_1 = require("../meta");
7
+ const single_element_1 = require("./single-element");
8
+ const values_1 = require("../values");
9
+ const operators_1 = require("../operators");
10
+ const loops_1 = require("../loops");
11
+ const control_1 = require("../control");
12
+ const log_1 = require("../../../../../../../util/log");
13
+ const other_1 = require("../other");
14
+ function normalizeMappedWithoutSemicolonBasedOnType(mappedWithName, data) {
15
+ if (mappedWithName.length === 1) {
16
+ return [(0, single_element_1.tryNormalizeSingleNode)(data, mappedWithName[0])];
17
+ }
18
+ else if (mappedWithName.length === 2) {
19
+ const unaryOp = (0, operators_1.tryNormalizeUnary)(data, mappedWithName[0], mappedWithName[1]);
20
+ if (unaryOp !== undefined) {
21
+ return [unaryOp];
22
+ }
23
+ const repeatLoop = (0, loops_1.tryNormalizeRepeat)(data, mappedWithName[0], mappedWithName[1]);
24
+ if (repeatLoop !== undefined) {
25
+ return [repeatLoop];
26
+ }
27
+ }
28
+ else if (mappedWithName.length === 3) {
29
+ const binary = (0, operators_1.tryNormalizeBinary)(data, mappedWithName[0], mappedWithName[1], mappedWithName[2]);
30
+ if (binary !== undefined) {
31
+ return [binary];
32
+ }
33
+ else {
34
+ const forLoop = (0, loops_1.tryNormalizeFor)(data, mappedWithName[0], mappedWithName[1], mappedWithName[2]);
35
+ if (forLoop !== undefined) {
36
+ return [forLoop];
37
+ }
38
+ else {
39
+ // could be a symbol with namespace information
40
+ const symbol = (0, values_1.tryNormalizeSymbol)(data, mappedWithName);
41
+ if (symbol !== undefined) {
42
+ return [symbol];
43
+ }
44
+ }
45
+ }
46
+ }
47
+ else if (mappedWithName.length === 5) {
48
+ const ifThen = (0, control_1.tryNormalizeIfThen)(data, [
49
+ mappedWithName[0],
50
+ mappedWithName[1],
51
+ mappedWithName[2],
52
+ mappedWithName[3],
53
+ mappedWithName[4]
54
+ ]);
55
+ if (ifThen !== undefined) {
56
+ return [ifThen];
57
+ }
58
+ else {
59
+ const whileLoop = (0, loops_1.tryNormalizeWhile)(data, mappedWithName[0], mappedWithName[1], mappedWithName[2], mappedWithName[3], mappedWithName[4]);
60
+ if (whileLoop !== undefined) {
61
+ return [whileLoop];
62
+ }
63
+ }
64
+ }
65
+ else if (mappedWithName.length === 7) {
66
+ const ifThenElse = (0, control_1.tryNormalizeIfThenElse)(data, [
67
+ mappedWithName[0],
68
+ mappedWithName[1],
69
+ mappedWithName[2],
70
+ mappedWithName[3],
71
+ mappedWithName[4],
72
+ mappedWithName[5],
73
+ mappedWithName[6]
74
+ ]);
75
+ if (ifThenElse !== undefined) {
76
+ return [ifThenElse];
77
+ }
78
+ }
79
+ // otherwise perform default parsing
80
+ return parseNodesWithUnknownType(data, mappedWithName);
81
+ }
82
+ function splitComments(mappedWithName) {
83
+ const comments = [];
84
+ const others = [];
85
+ for (const elem of mappedWithName) {
86
+ if (elem.name === "COMMENT" /* RawRType.Comment */) {
87
+ comments.push(elem);
88
+ }
89
+ else {
90
+ others.push(elem);
91
+ }
92
+ }
93
+ return { comments, others };
94
+ }
95
+ exports.splitComments = splitComments;
96
+ function normalizeBasedOnType(data, obj) {
97
+ if (obj.length === 0) {
98
+ parser_1.parseLog.warn('no children received, skipping');
99
+ return [];
100
+ }
101
+ let mappedWithName;
102
+ if (obj[0].name) {
103
+ mappedWithName = obj;
104
+ }
105
+ else {
106
+ mappedWithName = (0, meta_1.getWithTokenType)(data.config.tokenMap, obj);
107
+ }
108
+ log_1.log.trace(`[parseBasedOnType] names: [${mappedWithName.map(({ name }) => name).join(', ')}]`);
109
+ const semiColons = [];
110
+ const splitOnSemicolon = (0, arrays_1.splitArrayOn)(mappedWithName, node => {
111
+ const res = node.name === ";" /* RawRType.Semicolon */;
112
+ if (res) {
113
+ const { location, content } = (0, meta_1.retrieveMetaStructure)(data.config, node.content);
114
+ semiColons.push({
115
+ type: "RDelimiter" /* RType.Delimiter */,
116
+ subtype: ";" /* RawRType.Semicolon */,
117
+ location: location,
118
+ lexeme: content
119
+ });
120
+ }
121
+ return res;
122
+ });
123
+ if (splitOnSemicolon.length > 1) {
124
+ log_1.log.trace(`found ${splitOnSemicolon.length} expressions by semicolon-split, parsing them separately`);
125
+ const flattened = [];
126
+ for (const sub of splitOnSemicolon) {
127
+ const result = normalizeBasedOnType(data, sub);
128
+ if (result.length === 1 && result[0].type === "RExpressionList" /* RType.ExpressionList */) {
129
+ flattened.push(...result[0].children);
130
+ }
131
+ else {
132
+ flattened.push(...result);
133
+ }
134
+ }
135
+ return [...flattened, ...semiColons];
136
+ }
137
+ /*
138
+ * if splitOnSemicolon.length === 1, we can continue with the normal parsing, but we may have had a trailing semicolon, with this, it is removed as well.
139
+ * splitOnSemicolon.length === 0 is not possible, as we would have had an empty array before, split does not add elements.
140
+ */
141
+ mappedWithName = splitOnSemicolon[0];
142
+ const { comments, others } = splitComments(mappedWithName);
143
+ const parsedComments = comments.map(c => (0, other_1.normalizeComment)(data, c.content));
144
+ const result = normalizeMappedWithoutSemicolonBasedOnType(others, data);
145
+ // we hoist comments
146
+ return [...parsedComments, ...result];
147
+ }
148
+ exports.normalizeBasedOnType = normalizeBasedOnType;
149
+ function parseNodesWithUnknownType(data, mappedWithName) {
150
+ const parsedNodes = [];
151
+ // used to indicate the new root node of this set of nodes
152
+ for (const elem of mappedWithName) {
153
+ const retrieved = (0, single_element_1.tryNormalizeSingleNode)(data, elem);
154
+ parsedNodes.push(retrieved);
155
+ }
156
+ return parsedNodes;
157
+ }
158
+ exports.parseNodesWithUnknownType = parseNodesWithUnknownType;
159
+ //# sourceMappingURL=elements.js.map
@@ -0,0 +1,3 @@
1
+ export * from './root';
2
+ export * from './elements';
3
+ export * from './single-element';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./root"), exports);
18
+ __exportStar(require("./elements"), exports);
19
+ __exportStar(require("./single-element"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,4 @@
1
+ import { XmlBasedJson } from '../../input-format';
2
+ import { ParserData } from '../../data';
3
+ import { RExpressionList } from '../../../../model';
4
+ export declare function parseRootObjToAst(data: ParserData, obj: XmlBasedJson): RExpressionList;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseRootObjToAst = void 0;
4
+ const input_format_1 = require("../../input-format");
5
+ const meta_1 = require("../meta");
6
+ const elements_1 = require("./elements");
7
+ const log_1 = require("../../../../../../../util/log");
8
+ const arrays_1 = require("../../../../../../../util/arrays");
9
+ function parseRootObjToAst(data, obj) {
10
+ const config = data.config;
11
+ const exprContent = (0, input_format_1.getKeysGuarded)(obj, "exprlist" /* RawRType.ExpressionList */);
12
+ (0, meta_1.assureTokenType)(config.tokenMap, exprContent, "exprlist" /* RawRType.ExpressionList */);
13
+ let parsedChildren = [];
14
+ if (config.childrenName in exprContent) {
15
+ const children = (0, input_format_1.getKeysGuarded)(exprContent, config.childrenName);
16
+ parsedChildren = (0, elements_1.normalizeBasedOnType)(data, children);
17
+ }
18
+ else {
19
+ log_1.log.debug('no children found, assume empty input');
20
+ }
21
+ const [delimiters, nodes] = (0, arrays_1.partition)(parsedChildren, x => x.type === "RDelimiter" /* RType.Delimiter */);
22
+ return {
23
+ type: "RExpressionList" /* RType.ExpressionList */,
24
+ children: nodes,
25
+ lexeme: undefined,
26
+ info: {
27
+ fullRange: data.currentRange,
28
+ additionalTokens: delimiters,
29
+ fullLexeme: data.currentLexeme
30
+ }
31
+ };
32
+ }
33
+ exports.parseRootObjToAst = parseRootObjToAst;
34
+ //# sourceMappingURL=root.js.map
@@ -0,0 +1,13 @@
1
+ import { NamedXmlBasedJson } from '../../input-format';
2
+ import { ParserData } from '../../data';
3
+ import { RNode } from '../../../../model';
4
+ import { RDelimiter } from '../../../../model/nodes/info';
5
+ /**
6
+ * Parses a single structure in the ast based on its type (e.g., a string, a number, a symbol, ...)
7
+ *
8
+ * @param data - The data used by the parser (see {@link ParserData})
9
+ * @param elem - The element to parse
10
+ *
11
+ * @returns The parsed element as an `RNode` or an `RDelimiter` if it is such.
12
+ */
13
+ export declare function tryNormalizeSingleNode(data: ParserData, elem: NamedXmlBasedJson): RNode | RDelimiter;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tryNormalizeSingleNode = void 0;
4
+ const input_format_1 = require("../../input-format");
5
+ const values_1 = require("../values");
6
+ const assert_1 = require("../../../../../../../util/assert");
7
+ const expression_1 = require("../expression");
8
+ const meta_1 = require("../meta");
9
+ const other_1 = require("../other");
10
+ const loops_1 = require("../loops");
11
+ const line_directive_1 = require("../other/line-directive");
12
+ function normalizeDelimiter(data, elem) {
13
+ const { location, content } = (0, meta_1.retrieveMetaStructure)(data.config, elem.content);
14
+ return {
15
+ type: "RDelimiter" /* RType.Delimiter */,
16
+ location,
17
+ lexeme: content,
18
+ subtype: elem.name
19
+ };
20
+ }
21
+ /**
22
+ * Parses a single structure in the ast based on its type (e.g., a string, a number, a symbol, ...)
23
+ *
24
+ * @param data - The data used by the parser (see {@link ParserData})
25
+ * @param elem - The element to parse
26
+ *
27
+ * @returns The parsed element as an `RNode` or an `RDelimiter` if it is such.
28
+ */
29
+ function tryNormalizeSingleNode(data, elem) {
30
+ switch (elem.name) {
31
+ case "(" /* RawRType.ParenLeft */:
32
+ case ")" /* RawRType.ParenRight */:
33
+ case "{" /* RawRType.BraceLeft */:
34
+ case "}" /* RawRType.BraceRight */:
35
+ return normalizeDelimiter(data, elem);
36
+ case "COMMENT" /* RawRType.Comment */:
37
+ return (0, other_1.normalizeComment)(data, elem.content);
38
+ case "LINE_DIRECTIVE" /* RawRType.LineDirective */:
39
+ return (0, line_directive_1.normalizeLineDirective)(data, elem.content);
40
+ case "exprlist" /* RawRType.ExpressionList */:
41
+ case "expr" /* RawRType.Expression */:
42
+ case "expr_or_assign_or_help" /* RawRType.ExprOfAssignOrHelp */:
43
+ return (0, expression_1.normalizeExpression)(data, elem.content);
44
+ case "NUM_CONST" /* RawRType.NumericConst */:
45
+ return (0, values_1.normalizeNumber)(data, elem.content);
46
+ case "STR_CONST" /* RawRType.StringConst */:
47
+ return (0, values_1.normalizeString)(data, elem.content);
48
+ case "BREAK" /* RawRType.Break */:
49
+ return (0, loops_1.normalizeBreak)(data, elem.content);
50
+ case "NEXT" /* RawRType.Next */:
51
+ return (0, loops_1.normalizeNext)(data, elem.content);
52
+ case "SYMBOL" /* RawRType.Symbol */:
53
+ case "SLOT" /* RawRType.Slot */:
54
+ case "NULL_CONST" /* RawRType.NullConst */: {
55
+ const symbol = (0, values_1.tryNormalizeSymbol)(data, (0, meta_1.getWithTokenType)(data.config.tokenMap, [elem.content]));
56
+ (0, assert_1.guard)(symbol !== undefined, () => `should have been parsed to a symbol but was ${JSON.stringify(symbol)}`);
57
+ return symbol;
58
+ }
59
+ default:
60
+ throw new input_format_1.XmlParseError(`unknown type ${elem.name} for ${JSON.stringify(elem)} in ${JSON.stringify(data)}`);
61
+ }
62
+ }
63
+ exports.tryNormalizeSingleNode = tryNormalizeSingleNode;
64
+ //# sourceMappingURL=single-element.js.map
@@ -0,0 +1,3 @@
1
+ export * from './number';
2
+ export * from './string';
3
+ export * from './symbol';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./number"), exports);
18
+ __exportStar(require("./string"), exports);
19
+ __exportStar(require("./symbol"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,13 @@
1
+ import { XmlBasedJson } from '../../input-format';
2
+ import { RNa } from '../../../../../values';
3
+ import { RLogical, RSymbol, NoInfo, RNumber } from '../../../../model';
4
+ import { ParserData } from '../../data';
5
+ /**
6
+ * Normalize the given object as a R number (see {@link number2ts}), supporting booleans (see {@link boolean2ts}),
7
+ * and special values.
8
+ * This requires you to check the corresponding name beforehand.
9
+ *
10
+ * @param data - The data used by the parser (see {@link ParserData})
11
+ * @param obj - The json object to extract the meta-information from
12
+ */
13
+ export declare function normalizeNumber(data: ParserData, obj: XmlBasedJson): RNumber | RLogical | RSymbol<NoInfo, typeof RNa>;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeNumber = void 0;
4
+ const values_1 = require("../../../../../values");
5
+ const parser_1 = require("../../parser");
6
+ const meta_1 = require("../meta");
7
+ const hooks_1 = require("../../hooks");
8
+ /**
9
+ * Normalize the given object as a R number (see {@link number2ts}), supporting booleans (see {@link boolean2ts}),
10
+ * and special values.
11
+ * This requires you to check the corresponding name beforehand.
12
+ *
13
+ * @param data - The data used by the parser (see {@link ParserData})
14
+ * @param obj - The json object to extract the meta-information from
15
+ */
16
+ function normalizeNumber(data, obj) {
17
+ parser_1.parseLog.debug('[number]');
18
+ obj = (0, hooks_1.executeHook)(data.hooks.values.onNumber.before, data, obj);
19
+ const { location, content } = (0, meta_1.retrieveMetaStructure)(data.config, obj);
20
+ const common = {
21
+ location,
22
+ lexeme: content,
23
+ info: {
24
+ fullRange: data.currentRange,
25
+ additionalTokens: [],
26
+ fullLexeme: data.currentLexeme
27
+ }
28
+ };
29
+ let result;
30
+ /* the special symbol */
31
+ if ((0, values_1.isNA)(content)) {
32
+ result = {
33
+ ...common,
34
+ namespace: undefined,
35
+ type: "RSymbol" /* RType.Symbol */,
36
+ content
37
+ };
38
+ }
39
+ else if ((0, values_1.isBoolean)(content)) {
40
+ result = {
41
+ ...common,
42
+ type: "RLogical" /* RType.Logical */,
43
+ content: (0, values_1.boolean2ts)(content)
44
+ };
45
+ }
46
+ else {
47
+ result = {
48
+ ...common,
49
+ type: "RNumber" /* RType.Number */,
50
+ content: (0, values_1.number2ts)(content)
51
+ };
52
+ }
53
+ return (0, hooks_1.executeHook)(data.hooks.values.onNumber.after, data, result);
54
+ }
55
+ exports.normalizeNumber = normalizeNumber;
56
+ //# sourceMappingURL=number.js.map
@@ -0,0 +1,11 @@
1
+ import { XmlBasedJson } from '../../input-format';
2
+ import { RString } from '../../../../model';
3
+ import { ParserData } from '../../data';
4
+ /**
5
+ * Normalize the given object as a R string (see {@link string2ts}).
6
+ * This requires you to check the corresponding name beforehand.
7
+ *
8
+ * @param data - The data used by the parser (see {@link ParserData})
9
+ * @param obj - The json object to extract the meta-information from
10
+ */
11
+ export declare function normalizeString(data: ParserData, obj: XmlBasedJson): RString;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeString = void 0;
4
+ const meta_1 = require("../meta");
5
+ const values_1 = require("../../../../../values");
6
+ const parser_1 = require("../../parser");
7
+ const hooks_1 = require("../../hooks");
8
+ const assert_1 = require("../../../../../../../util/assert");
9
+ /**
10
+ * Normalize the given object as a R string (see {@link string2ts}).
11
+ * This requires you to check the corresponding name beforehand.
12
+ *
13
+ * @param data - The data used by the parser (see {@link ParserData})
14
+ * @param obj - The json object to extract the meta-information from
15
+ */
16
+ function normalizeString(data, obj) {
17
+ parser_1.parseLog.debug('[string]');
18
+ obj = (0, hooks_1.executeHook)(data.hooks.values.onString.before, data, obj);
19
+ const { location, content } = (0, meta_1.retrieveMetaStructure)(data.config, obj);
20
+ // based on https://www.rdocumentation.org/packages/utils/versions/3.6.2/topics/getParseData we do not get strings with 1000 characters or more within the text field.
21
+ // therefore, we recover the full string from the surrounding expr lexeme field
22
+ let stringContent = content;
23
+ if (stringContent.startsWith('[')) { // something like "[9999 chars quoted with '"']"
24
+ (0, assert_1.guard)(data.currentLexeme !== undefined, 'need current lexeme wrapper for too long strings as they are not stored by the R parser post-processor');
25
+ stringContent = data.currentLexeme;
26
+ }
27
+ const result = {
28
+ type: "RString" /* RType.String */,
29
+ location,
30
+ content: (0, values_1.string2ts)(stringContent),
31
+ lexeme: stringContent,
32
+ info: {
33
+ fullRange: data.currentRange,
34
+ additionalTokens: [],
35
+ fullLexeme: data.currentLexeme
36
+ }
37
+ };
38
+ return (0, hooks_1.executeHook)(data.hooks.values.onString.after, data, result);
39
+ }
40
+ exports.normalizeString = normalizeString;
41
+ //# sourceMappingURL=string.js.map
@@ -0,0 +1,14 @@
1
+ import { NamedXmlBasedJson } from '../../input-format';
2
+ import { RSymbol } from '../../../../model';
3
+ import { ParserData } from '../../data';
4
+ /**
5
+ * Normalize the given object as an R symbol (incorporating namespace information).
6
+ * <p>
7
+ * The special symbols `T` and `F` are parsed as logic values.
8
+ *
9
+ * @param data - The data used by the parser (see {@link ParserData})
10
+ * @param objs - The json object to extract the meta-information from
11
+ *
12
+ * @returns The parsed symbol (with populated namespace information) or `undefined` if the given object is not a symbol.
13
+ */
14
+ export declare function tryNormalizeSymbol(data: ParserData, objs: NamedXmlBasedJson[]): RSymbol | undefined;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tryNormalizeSymbol = void 0;
4
+ const assert_1 = require("../../../../../../../util/assert");
5
+ const meta_1 = require("../meta");
6
+ const parser_1 = require("../../parser");
7
+ const model_1 = require("../../../../model");
8
+ const hooks_1 = require("../../hooks");
9
+ const strings_1 = require("../../../../../../../util/strings");
10
+ /**
11
+ * Normalize the given object as an R symbol (incorporating namespace information).
12
+ * <p>
13
+ * The special symbols `T` and `F` are parsed as logic values.
14
+ *
15
+ * @param data - The data used by the parser (see {@link ParserData})
16
+ * @param objs - The json object to extract the meta-information from
17
+ *
18
+ * @returns The parsed symbol (with populated namespace information) or `undefined` if the given object is not a symbol.
19
+ */
20
+ function tryNormalizeSymbol(data, objs) {
21
+ (0, assert_1.guard)(objs.length > 0, 'to parse symbols we need at least one object to work on!');
22
+ parser_1.parseLog.debug('trying to parse symbol');
23
+ objs = (0, hooks_1.executeHook)(data.hooks.values.onSymbol.before, data, objs);
24
+ let location, content, namespace;
25
+ if (objs.length === 1 && (0, model_1.isSymbol)(objs[0].name)) {
26
+ const meta = (0, meta_1.retrieveMetaStructure)(data.config, objs[0].content);
27
+ location = meta.location;
28
+ content = meta.content;
29
+ namespace = undefined;
30
+ }
31
+ else if (objs.length === 3 && (0, model_1.isSymbol)(objs[2].name)) {
32
+ const meta = (0, meta_1.retrieveMetaStructure)(data.config, objs[2].content);
33
+ location = meta.location;
34
+ content = meta.content;
35
+ namespace = (0, meta_1.retrieveMetaStructure)(data.config, objs[0].content).content;
36
+ }
37
+ else {
38
+ return (0, hooks_1.executeUnknownHook)(data.hooks.values.onSymbol.unknown, data, objs);
39
+ }
40
+ const result = {
41
+ type: "RSymbol" /* RType.Symbol */,
42
+ namespace,
43
+ location,
44
+ // remove backticks from symbol
45
+ content: (0, strings_1.startAndEndsWith)(content, '`') ? content.substring(1, content.length - 1) : content,
46
+ lexeme: content,
47
+ info: {
48
+ fullRange: data.currentRange,
49
+ additionalTokens: [],
50
+ fullLexeme: data.currentLexeme
51
+ }
52
+ };
53
+ return (0, hooks_1.executeHook)(data.hooks.values.onSymbol.after, data, result);
54
+ }
55
+ exports.tryNormalizeSymbol = tryNormalizeSymbol;
56
+ //# sourceMappingURL=symbol.js.map
@@ -0,0 +1,9 @@
1
+ import { XmlParserConfig } from '../config';
2
+ import { XmlBasedJson } from '../input-format';
3
+ /**
4
+ * Parse the xml presented by R into a json object that will be used for conversion
5
+ *
6
+ * @param config - The configuration to use (i.e., what names should be used for the attributes, children, ...)
7
+ * @param xmlString - The xml input to parse
8
+ */
9
+ export declare function xlm2jsonObject(config: XmlParserConfig, xmlString: string): Promise<XmlBasedJson>;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.xlm2jsonObject = void 0;
27
+ const xml2js = __importStar(require("xml2js"));
28
+ /**
29
+ * Parse the xml presented by R into a json object that will be used for conversion
30
+ *
31
+ * @param config - The configuration to use (i.e., what names should be used for the attributes, children, ...)
32
+ * @param xmlString - The xml input to parse
33
+ */
34
+ function xlm2jsonObject(config, xmlString) {
35
+ return xml2js.parseStringPromise(xmlString, {
36
+ attrkey: config.attributeName,
37
+ charkey: config.contentName,
38
+ childkey: config.childrenName,
39
+ charsAsChildren: false,
40
+ explicitChildren: true,
41
+ mergeAttrs: false,
42
+ // we need this for semicolons etc., while we keep the old broken components we ignore them completely
43
+ preserveChildrenOrder: true,
44
+ trim: true,
45
+ includeWhiteChars: true,
46
+ normalize: false,
47
+ strict: true
48
+ });
49
+ }
50
+ exports.xlm2jsonObject = xlm2jsonObject;
51
+ //# sourceMappingURL=xml-to-json.js.map
@@ -0,0 +1,17 @@
1
+ import { NormalizedAst, IdGenerator, NoInfo } from '../../model';
2
+ import { XmlParserHooks } from './hooks';
3
+ import { DeepPartial } from 'ts-essentials';
4
+ import { TokenMap } from '../../../../retriever';
5
+ export declare const parseLog: import("tslog").Logger<import("tslog").ILogObj>;
6
+ /**
7
+ * The main entry point to normalize the given R ast.
8
+ * You probably want to use {@link retrieveNormalizedAstFromRCode} to directly normalize a piece of code.
9
+ *
10
+ * @param xmlString - The XML string obtained probably by {@link retrieveXmlFromRCode} for normalization.
11
+ * @param tokenMap - The token replacement map in effect by the XML parser
12
+ * @param hooks - Optional hooks to customize the normalization process (see {@link XmlParserHooks} for details)
13
+ * @param getId - The function to be used to generate unique ids for the nodes of the ast. It is up to you to ensure that the ids are unique!
14
+ *
15
+ * @returns The normalized and decorated AST (i.e., as a doubly linked tree)
16
+ */
17
+ export declare function normalize(xmlString: string, tokenMap: TokenMap, hooks?: DeepPartial<XmlParserHooks>, getId?: IdGenerator<NoInfo>): Promise<NormalizedAst>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalize = exports.parseLog = void 0;
4
+ const objects_1 = require("../../../../../util/objects");
5
+ const log_1 = require("../../../../../util/log");
6
+ const config_1 = require("./config");
7
+ const internal_1 = require("./internal");
8
+ const model_1 = require("../../model");
9
+ const hooks_1 = require("./hooks");
10
+ exports.parseLog = log_1.log.getSubLogger({ name: 'ast-parser' });
11
+ /**
12
+ * The main entry point to normalize the given R ast.
13
+ * You probably want to use {@link retrieveNormalizedAstFromRCode} to directly normalize a piece of code.
14
+ *
15
+ * @param xmlString - The XML string obtained probably by {@link retrieveXmlFromRCode} for normalization.
16
+ * @param tokenMap - The token replacement map in effect by the XML parser
17
+ * @param hooks - Optional hooks to customize the normalization process (see {@link XmlParserHooks} for details)
18
+ * @param getId - The function to be used to generate unique ids for the nodes of the ast. It is up to you to ensure that the ids are unique!
19
+ *
20
+ * @returns The normalized and decorated AST (i.e., as a doubly linked tree)
21
+ */
22
+ async function normalize(xmlString, tokenMap, hooks, getId = (0, model_1.deterministicCountingIdGenerator)(0)) {
23
+ const config = { ...config_1.DEFAULT_XML_PARSER_CONFIG, tokenMap };
24
+ const hooksWithDefaults = (0, objects_1.deepMergeObject)(hooks_1.DEFAULT_PARSER_HOOKS, hooks);
25
+ const data = { config, hooks: hooksWithDefaults, currentRange: undefined, currentLexeme: undefined };
26
+ const object = await (0, internal_1.xlm2jsonObject)(config, xmlString);
27
+ return (0, model_1.decorateAst)((0, internal_1.parseRootObjToAst)(data, object), getId);
28
+ }
29
+ exports.normalize = normalize;
30
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data.js.map