@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,118 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ensureExpressionList = exports.ensureChildrenAreLhsAndRhsOrdered = exports.retrieveOpName = exports.getWithTokenType = exports.getTokenType = exports.assureTokenType = exports.revertTokenReplacement = exports.retrieveMetaStructure = exports.extractLocation = exports.objectWithArrUnwrap = void 0;
4
+ const input_format_1 = require("./input-format");
5
+ const range_1 = require("../../../../../../util/range");
6
+ const assert_1 = require("../../../../../../util/assert");
7
+ const xml_to_json_1 = require("./xml-to-json");
8
+ /**
9
+ * if the passed object is an array with only one element, remove the array wrapper
10
+ */
11
+ function objectWithArrUnwrap(obj) {
12
+ if (Array.isArray(obj)) {
13
+ if (obj.length !== 1) {
14
+ throw new input_format_1.XmlParseError(`expected only one element in the wrapped array, yet received ${JSON.stringify(obj)}`);
15
+ }
16
+ return obj[0];
17
+ }
18
+ else if (typeof obj === 'object') {
19
+ return obj;
20
+ }
21
+ else {
22
+ throw new input_format_1.XmlParseError(`expected array or object, yet received ${JSON.stringify(obj)}`);
23
+ }
24
+ }
25
+ exports.objectWithArrUnwrap = objectWithArrUnwrap;
26
+ /**
27
+ * given a xml element, extract the source location of the corresponding element in the R-ast
28
+ */
29
+ function extractLocation(ast) {
30
+ return (0, range_1.rangeFrom)(ast['line1'], ast['col1'], ast['line2'], ast['col2']);
31
+ }
32
+ exports.extractLocation = extractLocation;
33
+ /**
34
+ * The json object that represents the input xml contains various meta-information.
35
+ * This function extracts the meta-information and returns it.
36
+ *
37
+ * @param config - The configuration of the parser to use to retrieve the corresponding name fields
38
+ * @param obj - The json object to extract the meta-information from
39
+ */
40
+ function retrieveMetaStructure(config, obj) {
41
+ const unwrappedObj = objectWithArrUnwrap(obj);
42
+ const attributes = obj[config.attr];
43
+ (0, assert_1.guard)(attributes !== undefined, () => `expected attributes to be defined for ${JSON.stringify(obj)}`);
44
+ const content = obj[config.content] ?? '';
45
+ const location = extractLocation(attributes);
46
+ return {
47
+ unwrappedObj,
48
+ location,
49
+ content
50
+ };
51
+ }
52
+ exports.retrieveMetaStructure = retrieveMetaStructure;
53
+ function revertTokenReplacement(tokenMap, token) {
54
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- it is still necessary as we do not know if we have a replacement for the given token
55
+ return tokenMap[token] ?? token;
56
+ }
57
+ exports.revertTokenReplacement = revertTokenReplacement;
58
+ function assureTokenType(tokenMap, obj, expectedName) {
59
+ const name = getTokenType(tokenMap, obj);
60
+ if (name !== expectedName) {
61
+ throw new input_format_1.XmlParseError(`expected name to be ${expectedName}, yet received ${name} for ${JSON.stringify(obj)}`);
62
+ }
63
+ }
64
+ exports.assureTokenType = assureTokenType;
65
+ /**
66
+ * Extract the token-type of the given object. This is based on the knowledge, that all json objects created
67
+ * from the R xml have a name attached.
68
+ *
69
+ * @param tokenMap - used to revert token types (i.e., revert `xmlparsedata`)
70
+ * @param content - the json object to extract the token-type from
71
+ */
72
+ function getTokenType(tokenMap, content) {
73
+ return revertTokenReplacement(tokenMap, (0, input_format_1.getKeyGuarded)(content, xml_to_json_1.XML_NAME));
74
+ }
75
+ exports.getTokenType = getTokenType;
76
+ function getWithTokenType(tokenMap, obj) {
77
+ return obj.map(content => ({
78
+ name: getTokenType(tokenMap, content),
79
+ content
80
+ }));
81
+ }
82
+ exports.getWithTokenType = getWithTokenType;
83
+ function retrieveOpName(config, operator) {
84
+ /*
85
+ * only real arithmetic ops have their operation as their own name, the others identify via content
86
+ */
87
+ return operator.content[config.content];
88
+ }
89
+ exports.retrieveOpName = retrieveOpName;
90
+ /**
91
+ * Ensure that the first child is completely before the second child.
92
+ *
93
+ * @param config - the configuration of the parser to use to retrieve the corresponding name fields
94
+ * @param first - the first child which should be the lhs
95
+ * @param second - the second child which should be the rhs
96
+ */
97
+ function ensureChildrenAreLhsAndRhsOrdered(config, first, second) {
98
+ const firstOtherLoc = extractLocation(first[config.attr]);
99
+ const secondOtherLoc = extractLocation(second[config.attr]);
100
+ if (!(0, range_1.rangeStartsCompletelyBefore)(firstOtherLoc, secondOtherLoc)) {
101
+ throw new input_format_1.XmlParseError(`expected the first child to be the lhs, yet received ${JSON.stringify(first)} & ${JSON.stringify(second)}`);
102
+ }
103
+ }
104
+ exports.ensureChildrenAreLhsAndRhsOrdered = ensureChildrenAreLhsAndRhsOrdered;
105
+ function ensureExpressionList(node) {
106
+ if (node.type !== "RExpressionList" /* RType.ExpressionList */) {
107
+ return {
108
+ type: "RExpressionList" /* RType.ExpressionList */,
109
+ location: node.location,
110
+ info: node.info,
111
+ lexeme: undefined,
112
+ children: [node]
113
+ };
114
+ }
115
+ return node;
116
+ }
117
+ exports.ensureExpressionList = ensureExpressionList;
118
+ //# sourceMappingURL=meta.js.map
@@ -0,0 +1,58 @@
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 = exports.XML_NAME = void 0;
27
+ const xml2js = __importStar(require("xml2js"));
28
+ exports.XML_NAME = '#name';
29
+ const xml2jsOptions = {
30
+ charsAsChildren: false,
31
+ explicitChildren: true,
32
+ mergeAttrs: false,
33
+ // we need this for semicolons etc., while we keep the old broken components we ignore them completely
34
+ preserveChildrenOrder: true,
35
+ trim: true,
36
+ includeWhiteChars: true,
37
+ normalize: false,
38
+ normalizeTags: false,
39
+ validator: undefined,
40
+ xmlns: false,
41
+ strict: true
42
+ };
43
+ /**
44
+ * Parse the xml presented by R into a json object that will be used for conversion
45
+ *
46
+ * @param config - The configuration to use (i.e., what names should be used for the attributes, children, ...)
47
+ * @param xmlString - The xml input to parse
48
+ */
49
+ function xlm2jsonObject(config, xmlString) {
50
+ return xml2js.parseStringPromise(xmlString, {
51
+ ...xml2jsOptions,
52
+ attrkey: config.attr,
53
+ charkey: config.content,
54
+ childkey: config.children
55
+ });
56
+ }
57
+ exports.xlm2jsonObject = xlm2jsonObject;
58
+ //# sourceMappingURL=xml-to-json.js.map
@@ -0,0 +1,25 @@
1
+ import { MergeableRecord } from '../../../../../util/objects';
2
+ import { TokenMap } from '../../../../retriever';
3
+ /**
4
+ * Configures the settings for the xml parser (like what names should be used to represent the given objects,
5
+ * and what replacements are active with `xmlparsedata` on the R-side of things).
6
+ *
7
+ * @see DEFAULT_XML_PARSER_CONFIG
8
+ */
9
+ export interface XmlParserConfig extends MergeableRecord {
10
+ /** attributes (line, col, ...) are referenced by the given name */
11
+ attributeName: string;
12
+ /** the content (lexeme) is referenced by the given name */
13
+ contentName: string;
14
+ /** the children are referenced by the given name */
15
+ childrenName: string;
16
+ /** Mapping from xml tag name to the real operation of the node */
17
+ tokenMap: TokenMap;
18
+ }
19
+ /**
20
+ * Default configuration to be used for the {@link XmlParserConfig}.
21
+ * <p>
22
+ * Note, that this does not include a sensible {@link XmlParserConfig#tokenMap}, as this must be provided by the corresponding
23
+ * shell environment.
24
+ */
25
+ export declare const DEFAULT_XML_PARSER_CONFIG: XmlParserConfig;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_XML_PARSER_CONFIG = void 0;
4
+ /**
5
+ * Default configuration to be used for the {@link XmlParserConfig}.
6
+ * <p>
7
+ * Note, that this does not include a sensible {@link XmlParserConfig#tokenMap}, as this must be provided by the corresponding
8
+ * shell environment.
9
+ */
10
+ exports.DEFAULT_XML_PARSER_CONFIG = {
11
+ attributeName: '@a',
12
+ contentName: '@v',
13
+ childrenName: '@c',
14
+ tokenMap: { /* this should not be used, but just so that we can omit null-checks */}
15
+ };
16
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1,22 @@
1
+ import { MergeableRecord } from '../../../../../util/objects';
2
+ import { DeepReadonly } from 'ts-essentials';
3
+ import { XmlParserConfig } from './config';
4
+ import { XmlParserHooks } from './hooks';
5
+ import { SourceRange } from '../../../../../util/range';
6
+ /**
7
+ * Contains all information populated and present during parsing and normalization of the R AST.
8
+ */
9
+ export interface ParserData extends MergeableRecord {
10
+ /** @see XmlParserConfig */
11
+ readonly config: DeepReadonly<XmlParserConfig>;
12
+ /** @see XmlParserHooks */
13
+ readonly hooks: DeepReadonly<XmlParserHooks>;
14
+ /**
15
+ * The currently active source range during parsing, i.e. the full range of the current element.
16
+ */
17
+ currentRange: SourceRange | undefined;
18
+ /**
19
+ * The currently active lexeme during parsing, i.e. the full lexeme of the current element.
20
+ */
21
+ currentLexeme: string | undefined;
22
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data.js.map
@@ -0,0 +1,292 @@
1
+ import { NamedXmlBasedJson, XmlBasedJson } from './input-format';
2
+ import { RNumber, NoInfo, RBinaryOp, RComment, RForLoop, RFunctionCall, RIfThenElse, RNode, RRepeatLoop, RString, RUnaryOp, RWhileLoop, RSymbol, RLogical, BinaryOperatorFlavor, RParameter, RFunctionDefinition, RArgument, UnaryOperatorFlavor, RBreak, RNext, RAccess, RLineDirective, RPipe } from '../../model';
3
+ import { RNa } from '../../../values';
4
+ import { ParserData } from './data';
5
+ import { DeepReadonly, DeepRequired } from 'ts-essentials';
6
+ /** Denotes that if you return `undefined`, the parser will automatically take the original arguments (unchanged) */
7
+ type AutoIfOmit<T> = T | undefined | void;
8
+ /**
9
+ * Hooks for every action the parser does. They can process the object before and after the actual parsing.
10
+ *
11
+ * There are two main hooks:
12
+ * <ul>
13
+ * <li><strong>before:</strong> can transform the inputs to the function and is called before construction of the normalized ast. However, it can be called after initial checks are performed. </li>
14
+ * <li><strong>after:</strong> can transform the result of the function and is called after construction of the normalized ast. </li>
15
+ * </ul>
16
+ * Furthermore, for events that "try" to identify a structure, there is a third hook:
17
+ * <ul>
18
+ * <li><strong>unknown:</strong> is called if the structure could not be identified. </li>
19
+ * </ul>
20
+ *
21
+ * For those marked with {@link AutoIfOmit} you can return `undefined` to automatically take the original arguments (unchanged).
22
+ * <p>
23
+ * Use {@link executeHook} and {@link executeUnknownHook} to execute the hooks.
24
+ * <p>
25
+ * Please note, that there is no guarantee, that a hook is not using any other. For example, {@link tryNormalizeIfThen} is used by {@link tryNormalizeIfThenElse}.
26
+ */
27
+ export interface XmlParserHooks {
28
+ values: {
29
+ /** {@link normalizeNumber} */
30
+ onNumber: {
31
+ before(data: ParserData, inputObj: XmlBasedJson): AutoIfOmit<XmlBasedJson>;
32
+ after(data: ParserData, result: RNumber | RLogical | RSymbol<NoInfo, typeof RNa>): AutoIfOmit<RNumber | RLogical | RSymbol<NoInfo, typeof RNa>>;
33
+ };
34
+ /** {@link parseString} */
35
+ onString: {
36
+ before(data: ParserData, inputObj: XmlBasedJson): AutoIfOmit<XmlBasedJson>;
37
+ after(data: ParserData, result: RString): AutoIfOmit<RString>;
38
+ };
39
+ /** {@link tryNormalizeSymbol} */
40
+ onSymbol: {
41
+ /**
42
+ * triggered if {@link tryNormalizeSymbol} could not determine the namespace and or symbol.
43
+ * Can emit non-symbol values easily due to special symbols like `T`.
44
+ */
45
+ unknown(data: ParserData, inputObjs: NamedXmlBasedJson[]): AutoIfOmit<RSymbol | undefined>;
46
+ before(data: ParserData, inputObjs: NamedXmlBasedJson[]): AutoIfOmit<NamedXmlBasedJson[]>;
47
+ after(data: ParserData, result: RSymbol | undefined): AutoIfOmit<RSymbol | undefined>;
48
+ };
49
+ };
50
+ /** {@link tryNormalizeAccess} */
51
+ onAccess: {
52
+ /**
53
+ * triggered if {@link tryNormalizeAccess} could not determine the access
54
+ */
55
+ unknown(data: ParserData, inputObjs: NamedXmlBasedJson[]): AutoIfOmit<RAccess | undefined>;
56
+ before(data: ParserData, inputObjs: NamedXmlBasedJson[]): AutoIfOmit<NamedXmlBasedJson[]>;
57
+ after(data: ParserData, result: RAccess): AutoIfOmit<RAccess>;
58
+ };
59
+ other: {
60
+ /** {@link normalizeComment} */
61
+ onComment: {
62
+ before(data: ParserData, inputObj: XmlBasedJson): AutoIfOmit<XmlBasedJson>;
63
+ after(data: ParserData, result: RComment): AutoIfOmit<RComment>;
64
+ };
65
+ /** {@link normalizeLineDirective} */
66
+ onLineDirective: {
67
+ before(data: ParserData, inputObj: XmlBasedJson): AutoIfOmit<XmlBasedJson>;
68
+ after(data: ParserData, result: RLineDirective | RComment): AutoIfOmit<RLineDirective | RComment>;
69
+ };
70
+ };
71
+ operators: {
72
+ /** {@link tryNormalizeBinary}, includes {@link RPipe} and {@link RFunctionCall} in case of special infix binary operations */
73
+ onBinary: {
74
+ /** triggered if {@link tryNormalizeBinary} could not find a matching operator, you probably still want to return `undefined` */
75
+ unknown(data: ParserData, input: {
76
+ lhs: NamedXmlBasedJson;
77
+ operator: NamedXmlBasedJson;
78
+ rhs: NamedXmlBasedJson;
79
+ }): AutoIfOmit<RNode | undefined>;
80
+ before(data: ParserData, input: {
81
+ flavor: BinaryOperatorFlavor | 'special' | 'pipe';
82
+ lhs: NamedXmlBasedJson;
83
+ operator: NamedXmlBasedJson;
84
+ rhs: NamedXmlBasedJson;
85
+ }): AutoIfOmit<{
86
+ flavor: BinaryOperatorFlavor | 'special' | 'pipe';
87
+ lhs: NamedXmlBasedJson;
88
+ operator: NamedXmlBasedJson;
89
+ rhs: NamedXmlBasedJson;
90
+ }>;
91
+ after(data: ParserData, result: RFunctionCall | RBinaryOp | RPipe): AutoIfOmit<RFunctionCall | RBinaryOp | RPipe>;
92
+ };
93
+ /** {@link tryNormalizeUnary} */
94
+ onUnary: {
95
+ /** triggered if {@link tryNormalizeUnary} could not find a matching operator, you probably still want to return `undefined` */
96
+ unknown(data: ParserData, input: {
97
+ operator: NamedXmlBasedJson;
98
+ operand: NamedXmlBasedJson;
99
+ }): AutoIfOmit<RNode | undefined>;
100
+ before(data: ParserData, input: {
101
+ flavor: UnaryOperatorFlavor;
102
+ operator: NamedXmlBasedJson;
103
+ operand: NamedXmlBasedJson;
104
+ }): AutoIfOmit<{
105
+ flavor: UnaryOperatorFlavor;
106
+ operator: NamedXmlBasedJson;
107
+ operand: NamedXmlBasedJson;
108
+ }>;
109
+ after(data: ParserData, result: RUnaryOp): AutoIfOmit<RUnaryOp>;
110
+ };
111
+ };
112
+ loops: {
113
+ /** {@link tryNormalizeFor} */
114
+ onForLoop: {
115
+ /** triggered if {@link tryNormalizeFor} could not detect a for-loop, you probably still want to return `undefined` */
116
+ unknown(data: ParserData, input: {
117
+ forToken: NamedXmlBasedJson;
118
+ condition: NamedXmlBasedJson;
119
+ body: NamedXmlBasedJson;
120
+ }): AutoIfOmit<RForLoop | undefined>;
121
+ before(data: ParserData, input: {
122
+ forToken: NamedXmlBasedJson;
123
+ condition: NamedXmlBasedJson;
124
+ body: NamedXmlBasedJson;
125
+ }): AutoIfOmit<{
126
+ forToken: NamedXmlBasedJson;
127
+ condition: NamedXmlBasedJson;
128
+ body: NamedXmlBasedJson;
129
+ }>;
130
+ after(data: ParserData, result: RForLoop): AutoIfOmit<RForLoop>;
131
+ };
132
+ /** {@link tryNormalizeRepeat} */
133
+ onRepeatLoop: {
134
+ /** triggered if {@link tryNormalizeRepeat} could not detect a repeat-loop, you probably still want to return `undefined` */
135
+ unknown(data: ParserData, input: {
136
+ repeatToken: NamedXmlBasedJson;
137
+ body: NamedXmlBasedJson;
138
+ }): AutoIfOmit<RRepeatLoop | undefined>;
139
+ before(data: ParserData, input: {
140
+ repeatToken: NamedXmlBasedJson;
141
+ body: NamedXmlBasedJson;
142
+ }): AutoIfOmit<{
143
+ repeatToken: NamedXmlBasedJson;
144
+ body: NamedXmlBasedJson;
145
+ }>;
146
+ after(data: ParserData, result: RRepeatLoop): AutoIfOmit<RRepeatLoop>;
147
+ };
148
+ /** {@link tryNormalizeWhile} */
149
+ onWhileLoop: {
150
+ /** triggered if {@link tryNormalizeWhile} could not detect a while-loop, you probably still want to return `undefined` */
151
+ unknown(data: ParserData, input: {
152
+ whileToken: NamedXmlBasedJson;
153
+ leftParen: NamedXmlBasedJson;
154
+ condition: NamedXmlBasedJson;
155
+ rightParen: NamedXmlBasedJson;
156
+ body: NamedXmlBasedJson;
157
+ }): AutoIfOmit<RWhileLoop | undefined>;
158
+ before(data: ParserData, input: {
159
+ whileToken: NamedXmlBasedJson;
160
+ leftParen: NamedXmlBasedJson;
161
+ condition: NamedXmlBasedJson;
162
+ rightParen: NamedXmlBasedJson;
163
+ body: NamedXmlBasedJson;
164
+ }): AutoIfOmit<{
165
+ whileToken: NamedXmlBasedJson;
166
+ leftParen: NamedXmlBasedJson;
167
+ condition: NamedXmlBasedJson;
168
+ rightParen: NamedXmlBasedJson;
169
+ body: NamedXmlBasedJson;
170
+ }>;
171
+ after(data: ParserData, result: RWhileLoop): AutoIfOmit<RWhileLoop>;
172
+ };
173
+ /** {@link normalizeBreak} */
174
+ onBreak: {
175
+ before(data: ParserData, input: XmlBasedJson): AutoIfOmit<XmlBasedJson>;
176
+ after(data: ParserData, result: RBreak): AutoIfOmit<RBreak>;
177
+ };
178
+ onNext: {
179
+ before(data: ParserData, input: XmlBasedJson): AutoIfOmit<XmlBasedJson>;
180
+ after(data: ParserData, result: RNext): AutoIfOmit<RNext>;
181
+ };
182
+ };
183
+ functions: {
184
+ /** {@link tryNormalizeFunctionDefinition} */
185
+ onFunctionDefinition: {
186
+ /** triggered if {@link tryNormalizeFunctionDefinition} could not detect a function definition, you probably still want to return `undefined` */
187
+ unknown(data: ParserData, mappedWithName: NamedXmlBasedJson[]): AutoIfOmit<RFunctionDefinition | undefined>;
188
+ before(data: ParserData, mappedWithName: NamedXmlBasedJson[]): AutoIfOmit<NamedXmlBasedJson[]>;
189
+ after(data: ParserData, result: RFunctionDefinition): AutoIfOmit<RFunctionDefinition>;
190
+ };
191
+ /** {@link tryNormalizeParameter} */
192
+ onParameter: {
193
+ /** triggered if {@link tryNormalizeParameter} could not detect a parameter, you probably still want to return `undefined` */
194
+ unknown(data: ParserData, mappedWithName: NamedXmlBasedJson[]): AutoIfOmit<RParameter | undefined>;
195
+ before(data: ParserData, mappedWithName: NamedXmlBasedJson[]): AutoIfOmit<NamedXmlBasedJson[]>;
196
+ after(data: ParserData, result: RParameter): AutoIfOmit<RParameter>;
197
+ };
198
+ /** {@link tryNormalizeFunctionCall} */
199
+ onFunctionCall: {
200
+ /** triggered if {@link tryNormalizeFunctionCall} could not detect a function call, you probably still want to return `undefined` */
201
+ unknown(data: ParserData, mappedWithName: NamedXmlBasedJson[]): AutoIfOmit<RFunctionCall | RNext | RBreak | undefined>;
202
+ before(data: ParserData, mappedWithName: NamedXmlBasedJson[]): AutoIfOmit<NamedXmlBasedJson[]>;
203
+ after(data: ParserData, result: RFunctionCall | RNext | RBreak): AutoIfOmit<RFunctionCall | RNext | RBreak>;
204
+ };
205
+ /** {@link tryToNormalizeArgument} */
206
+ onArgument: {
207
+ /** triggered if {@link tryToNormalizeArgument} could not detect an argument, you probably still want to return `undefined` */
208
+ unknown(data: ParserData, mappedWithName: NamedXmlBasedJson[]): AutoIfOmit<RArgument | undefined>;
209
+ before(data: ParserData, mappedWithName: NamedXmlBasedJson[]): AutoIfOmit<NamedXmlBasedJson[]>;
210
+ after(data: ParserData, result: RArgument): AutoIfOmit<RArgument>;
211
+ };
212
+ };
213
+ expression: {
214
+ /** {@link normalizeExpression} */
215
+ onExpression: {
216
+ /** *Warning:* can be a function call/definition as well, is not known when issuing before! */
217
+ before(data: ParserData, inputObj: XmlBasedJson): AutoIfOmit<XmlBasedJson>;
218
+ after(data: ParserData, result: RNode): AutoIfOmit<RNode>;
219
+ };
220
+ };
221
+ control: {
222
+ /** {@link tryNormalizeIfThen}, triggered by {@link onIfThenElse} as well */
223
+ onIfThen: {
224
+ /** triggered if {@link tryNormalizeIfThen} could not detect an if-then, you probably still want to return `undefined` */
225
+ unknown(data: ParserData, tokens: [
226
+ ifToken: NamedXmlBasedJson,
227
+ leftParen: NamedXmlBasedJson,
228
+ condition: NamedXmlBasedJson,
229
+ rightParen: NamedXmlBasedJson,
230
+ then: NamedXmlBasedJson
231
+ ]): AutoIfOmit<RIfThenElse | undefined>;
232
+ before(data: ParserData, tokens: [
233
+ ifToken: NamedXmlBasedJson,
234
+ leftParen: NamedXmlBasedJson,
235
+ condition: NamedXmlBasedJson,
236
+ rightParen: NamedXmlBasedJson,
237
+ then: NamedXmlBasedJson
238
+ ]): AutoIfOmit<[
239
+ ifToken: NamedXmlBasedJson,
240
+ leftParen: NamedXmlBasedJson,
241
+ condition: NamedXmlBasedJson,
242
+ rightParen: NamedXmlBasedJson,
243
+ then: NamedXmlBasedJson
244
+ ]>;
245
+ after(data: ParserData, result: RIfThenElse): AutoIfOmit<RIfThenElse>;
246
+ };
247
+ /** {@link tryNormalizeIfThenElse}, triggers {@link onIfThen} */
248
+ onIfThenElse: {
249
+ /** triggered if {@link tryNormalizeIfThenElse} could not detect an if-then-else, you probably still want to return `undefined`, this is probably called as a consequence of the unknown hook of if-then */
250
+ unknown(data: ParserData, tokens: [
251
+ ifToken: NamedXmlBasedJson,
252
+ leftParen: NamedXmlBasedJson,
253
+ condition: NamedXmlBasedJson,
254
+ rightParen: NamedXmlBasedJson,
255
+ then: NamedXmlBasedJson,
256
+ elseToken: NamedXmlBasedJson,
257
+ elseBlock: NamedXmlBasedJson
258
+ ]): AutoIfOmit<RIfThenElse | undefined>;
259
+ /** be aware, that the if-then part triggers another hook! */
260
+ before(data: ParserData, tokens: [
261
+ ifToken: NamedXmlBasedJson,
262
+ leftParen: NamedXmlBasedJson,
263
+ condition: NamedXmlBasedJson,
264
+ rightParen: NamedXmlBasedJson,
265
+ then: NamedXmlBasedJson,
266
+ elseToken: NamedXmlBasedJson,
267
+ elseBlock: NamedXmlBasedJson
268
+ ]): AutoIfOmit<[
269
+ ifToken: NamedXmlBasedJson,
270
+ leftParen: NamedXmlBasedJson,
271
+ condition: NamedXmlBasedJson,
272
+ rightParen: NamedXmlBasedJson,
273
+ then: NamedXmlBasedJson,
274
+ elseToken: NamedXmlBasedJson,
275
+ elseBlock: NamedXmlBasedJson
276
+ ]>;
277
+ after(data: ParserData, result: RIfThenElse): AutoIfOmit<RIfThenElse>;
278
+ };
279
+ };
280
+ }
281
+ /**
282
+ * simple (rather type-wise unsafe ^^) function you can use to execute hooks and deal with {@link AutoIfOmit}
283
+ *
284
+ * @see executeUnknownHook
285
+ */
286
+ export declare function executeHook<T, R>(hook: (data: ParserData, input: T) => AutoIfOmit<R>, data: ParserData, input: T): R;
287
+ /**
288
+ * @see executeHook
289
+ */
290
+ export declare function executeUnknownHook<T, R>(hook: (data: ParserData, input: T) => AutoIfOmit<R>, data: ParserData, input: T): Exclude<AutoIfOmit<R>, void>;
291
+ export declare const DEFAULT_PARSER_HOOKS: DeepReadonly<DeepRequired<XmlParserHooks>>;
292
+ export {};
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_PARSER_HOOKS = exports.executeUnknownHook = exports.executeHook = void 0;
4
+ /* eslint-disable -- hooks are unsafe */
5
+ /**
6
+ * simple (rather type-wise unsafe ^^) function you can use to execute hooks and deal with {@link AutoIfOmit}
7
+ *
8
+ * @see executeUnknownHook
9
+ */
10
+ function executeHook(hook, data, input) {
11
+ const result = hook(data, input);
12
+ if (result === undefined) {
13
+ return input;
14
+ }
15
+ return result;
16
+ }
17
+ exports.executeHook = executeHook;
18
+ /**
19
+ * @see executeHook
20
+ */
21
+ function executeUnknownHook(hook, data, input) {
22
+ return hook(data, input);
23
+ }
24
+ exports.executeUnknownHook = executeUnknownHook;
25
+ /* eslint-enable */
26
+ const doNothing = () => undefined;
27
+ exports.DEFAULT_PARSER_HOOKS = {
28
+ values: {
29
+ onNumber: {
30
+ before: doNothing,
31
+ after: doNothing
32
+ },
33
+ onString: {
34
+ before: doNothing,
35
+ after: doNothing
36
+ },
37
+ onSymbol: {
38
+ unknown: doNothing,
39
+ before: doNothing,
40
+ after: doNothing
41
+ }
42
+ },
43
+ onAccess: {
44
+ unknown: doNothing,
45
+ before: doNothing,
46
+ after: doNothing
47
+ },
48
+ other: {
49
+ onComment: {
50
+ before: doNothing,
51
+ after: doNothing
52
+ },
53
+ onLineDirective: {
54
+ before: doNothing,
55
+ after: doNothing
56
+ }
57
+ },
58
+ control: {
59
+ onIfThen: {
60
+ unknown: doNothing,
61
+ before: doNothing,
62
+ after: doNothing
63
+ },
64
+ onIfThenElse: {
65
+ unknown: doNothing,
66
+ before: doNothing,
67
+ after: doNothing
68
+ }
69
+ },
70
+ loops: {
71
+ onForLoop: {
72
+ unknown: doNothing,
73
+ before: doNothing,
74
+ after: doNothing
75
+ },
76
+ onRepeatLoop: {
77
+ unknown: doNothing,
78
+ before: doNothing,
79
+ after: doNothing
80
+ },
81
+ onWhileLoop: {
82
+ unknown: doNothing,
83
+ before: doNothing,
84
+ after: doNothing
85
+ },
86
+ onBreak: {
87
+ before: doNothing,
88
+ after: doNothing
89
+ },
90
+ onNext: {
91
+ before: doNothing,
92
+ after: doNothing
93
+ }
94
+ },
95
+ operators: {
96
+ onBinary: {
97
+ unknown: doNothing,
98
+ before: doNothing,
99
+ after: doNothing
100
+ },
101
+ onUnary: {
102
+ unknown: doNothing,
103
+ before: doNothing,
104
+ after: doNothing
105
+ }
106
+ },
107
+ functions: {
108
+ onFunctionDefinition: {
109
+ unknown: doNothing,
110
+ before: doNothing,
111
+ after: doNothing
112
+ },
113
+ onParameter: {
114
+ unknown: doNothing,
115
+ before: doNothing,
116
+ after: doNothing
117
+ },
118
+ onFunctionCall: {
119
+ unknown: doNothing,
120
+ before: doNothing,
121
+ after: doNothing
122
+ },
123
+ onArgument: {
124
+ unknown: doNothing,
125
+ before: doNothing,
126
+ after: doNothing
127
+ },
128
+ },
129
+ expression: {
130
+ onExpression: {
131
+ before: doNothing,
132
+ after: doNothing
133
+ }
134
+ }
135
+ };
136
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1,5 @@
1
+ export * from './data';
2
+ export * from './hooks';
3
+ export * from './config';
4
+ export * from './parser';
5
+ export * from './input-format';