@eagleoutice/flowr 1.5.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/abstract-interpretation/handler/binop/binop.d.ts +3 -4
  2. package/abstract-interpretation/handler/binop/binop.js +4 -2
  3. package/abstract-interpretation/handler/binop/operators.d.ts +2 -2
  4. package/abstract-interpretation/handler/binop/operators.js +14 -28
  5. package/abstract-interpretation/processor.d.ts +3 -2
  6. package/abstract-interpretation/processor.js +2 -2
  7. package/benchmark/slicer.d.ts +101 -0
  8. package/benchmark/slicer.js +214 -0
  9. package/benchmark/stats/print.d.ts +7 -0
  10. package/benchmark/stats/print.js +151 -0
  11. package/benchmark/stats/stats.d.ts +42 -0
  12. package/benchmark/stats/stats.js +6 -0
  13. package/benchmark/stopwatch.d.ts +35 -0
  14. package/benchmark/stopwatch.js +79 -0
  15. package/benchmark/summarizer/data.d.ts +54 -0
  16. package/benchmark/summarizer/first-phase/input.d.ts +3 -0
  17. package/benchmark/summarizer/first-phase/input.js +76 -0
  18. package/benchmark/summarizer/first-phase/process.d.ts +11 -0
  19. package/benchmark/summarizer/first-phase/process.js +205 -0
  20. package/benchmark/summarizer/second-phase/graph.d.ts +2 -0
  21. package/benchmark/summarizer/second-phase/graph.js +54 -0
  22. package/benchmark/summarizer/second-phase/process.d.ts +6 -0
  23. package/benchmark/summarizer/second-phase/process.js +127 -0
  24. package/benchmark/summarizer/summarizer.d.ts +31 -0
  25. package/benchmark/summarizer/summarizer.js +58 -0
  26. package/cli/benchmark-app.d.ts +10 -0
  27. package/cli/benchmark-app.js +67 -0
  28. package/cli/benchmark-helper-app.d.ts +9 -0
  29. package/cli/benchmark-helper-app.js +69 -0
  30. package/cli/common/features.d.ts +3 -0
  31. package/cli/common/features.js +30 -0
  32. package/cli/common/options.d.ts +20 -0
  33. package/cli/common/options.js +85 -0
  34. package/cli/common/script.d.ts +21 -0
  35. package/cli/common/script.js +61 -0
  36. package/cli/common/scripts-info.d.ts +25 -0
  37. package/cli/common/scripts-info.js +83 -0
  38. package/cli/export-quads-app.d.ts +7 -0
  39. package/cli/export-quads-app.js +43 -0
  40. package/cli/flowr.d.ts +29 -0
  41. package/cli/flowr.js +141 -0
  42. package/cli/repl/commands/cfg.d.ts +3 -0
  43. package/cli/repl/commands/cfg.js +37 -0
  44. package/cli/repl/commands/commands.d.ts +13 -0
  45. package/cli/repl/commands/commands.js +142 -0
  46. package/cli/repl/commands/dataflow.d.ts +3 -0
  47. package/cli/repl/commands/dataflow.js +34 -0
  48. package/cli/repl/commands/execute.d.ts +4 -0
  49. package/cli/repl/commands/execute.js +27 -0
  50. package/cli/repl/commands/main.d.ts +39 -0
  51. package/cli/repl/commands/main.js +14 -0
  52. package/cli/repl/commands/normalize.d.ts +3 -0
  53. package/cli/repl/commands/normalize.js +34 -0
  54. package/cli/repl/commands/parse.d.ts +2 -0
  55. package/cli/repl/commands/parse.js +110 -0
  56. package/cli/repl/commands/quit.d.ts +2 -0
  57. package/cli/repl/commands/quit.js +15 -0
  58. package/cli/repl/commands/version.d.ts +16 -0
  59. package/cli/repl/commands/version.js +28 -0
  60. package/cli/repl/core.d.ts +36 -0
  61. package/cli/repl/core.js +174 -0
  62. package/cli/repl/execute.d.ts +28 -0
  63. package/cli/repl/execute.js +79 -0
  64. package/cli/repl/print-version.d.ts +2 -0
  65. package/cli/repl/print-version.js +10 -0
  66. package/cli/repl/prompt.d.ts +2 -0
  67. package/cli/repl/prompt.js +9 -0
  68. package/cli/repl/server/connection.d.ts +21 -0
  69. package/cli/repl/server/connection.js +218 -0
  70. package/cli/repl/server/messages/analysis.d.ts +72 -0
  71. package/cli/repl/server/messages/analysis.js +21 -0
  72. package/cli/repl/server/messages/error.d.ts +11 -0
  73. package/{core/input.js → cli/repl/server/messages/error.js} +1 -1
  74. package/cli/repl/server/messages/hello.d.ts +20 -0
  75. package/{core/output.js → cli/repl/server/messages/hello.js} +1 -1
  76. package/cli/repl/server/messages/messages.d.ts +35 -0
  77. package/cli/repl/server/messages/messages.js +40 -0
  78. package/cli/repl/server/messages/repl.d.ts +33 -0
  79. package/cli/repl/server/messages/repl.js +37 -0
  80. package/cli/repl/server/messages/slice.d.ts +26 -0
  81. package/cli/repl/server/messages/slice.js +37 -0
  82. package/cli/repl/server/net.d.ts +49 -0
  83. package/cli/repl/server/net.js +63 -0
  84. package/cli/repl/server/send.d.ts +4 -0
  85. package/cli/repl/server/send.js +18 -0
  86. package/cli/repl/server/server.d.ts +20 -0
  87. package/cli/repl/server/server.js +66 -0
  88. package/cli/repl/server/validate.d.ts +15 -0
  89. package/cli/repl/server/validate.js +34 -0
  90. package/cli/slicer-app.d.ts +11 -0
  91. package/cli/slicer-app.js +83 -0
  92. package/cli/statistics-app.d.ts +11 -0
  93. package/cli/statistics-app.js +99 -0
  94. package/cli/statistics-helper-app.d.ts +11 -0
  95. package/cli/statistics-helper-app.js +87 -0
  96. package/cli/summarizer-app.d.ts +18 -0
  97. package/cli/summarizer-app.js +66 -0
  98. package/core/pipeline-executor.d.ts +154 -0
  99. package/core/pipeline-executor.js +221 -0
  100. package/core/print/dataflow-printer.d.ts +3 -4
  101. package/core/print/dataflow-printer.js +5 -5
  102. package/core/print/normalize-printer.d.ts +1 -1
  103. package/core/print/normalize-printer.js +3 -3
  104. package/core/print/parse-printer.js +3 -3
  105. package/core/print/print.d.ts +13 -4
  106. package/core/print/print.js +13 -2
  107. package/core/print/slice-diff-ansi.d.ts +3 -2
  108. package/core/print/slice-diff-ansi.js +4 -4
  109. package/core/steps/all/core/00-parse.d.ts +28 -0
  110. package/core/steps/all/core/00-parse.js +24 -0
  111. package/core/steps/all/core/10-normalize.d.ts +29 -0
  112. package/core/steps/all/core/10-normalize.js +26 -0
  113. package/core/steps/all/core/20-dataflow.d.ts +27 -0
  114. package/core/steps/all/core/20-dataflow.js +29 -0
  115. package/core/steps/all/static-slicing/00-slice.d.ts +28 -0
  116. package/core/steps/all/static-slicing/00-slice.js +21 -0
  117. package/core/steps/all/static-slicing/10-reconstruct.d.ts +25 -0
  118. package/core/steps/all/static-slicing/10-reconstruct.js +21 -0
  119. package/core/steps/pipeline/create-pipeline.d.ts +6 -0
  120. package/core/steps/pipeline/create-pipeline.js +130 -0
  121. package/core/steps/pipeline/default-pipelines.d.ts +251 -0
  122. package/core/steps/pipeline/default-pipelines.js +18 -0
  123. package/core/steps/pipeline/invalid-pipeline-error.d.ts +6 -0
  124. package/core/steps/pipeline/invalid-pipeline-error.js +14 -0
  125. package/core/steps/pipeline/pipeline.d.ts +60 -0
  126. package/core/steps/pipeline/pipeline.js +28 -0
  127. package/core/steps/pipeline-step.d.ts +85 -0
  128. package/core/steps/pipeline-step.js +8 -0
  129. package/dataflow/environments/append.d.ts +4 -4
  130. package/dataflow/environments/append.js +4 -4
  131. package/dataflow/environments/built-in.d.ts +25 -0
  132. package/dataflow/environments/built-in.js +123 -0
  133. package/dataflow/environments/clone.d.ts +2 -0
  134. package/dataflow/environments/clone.js +23 -0
  135. package/dataflow/environments/{register.d.ts → define.d.ts} +3 -3
  136. package/dataflow/environments/define.js +51 -0
  137. package/dataflow/environments/diff.d.ts +6 -0
  138. package/dataflow/environments/diff.js +85 -0
  139. package/dataflow/environments/environment.d.ts +10 -43
  140. package/dataflow/environments/environment.js +32 -138
  141. package/dataflow/environments/identifier.d.ts +31 -0
  142. package/dataflow/environments/identifier.js +3 -0
  143. package/dataflow/environments/overwrite.d.ts +4 -4
  144. package/dataflow/environments/overwrite.js +9 -22
  145. package/dataflow/environments/resolve-by-name.d.ts +7 -6
  146. package/dataflow/environments/resolve-by-name.js +35 -19
  147. package/dataflow/environments/scoping.js +1 -4
  148. package/dataflow/extractor.d.ts +6 -6
  149. package/dataflow/extractor.js +47 -57
  150. package/dataflow/graph/diff.d.ts +24 -7
  151. package/dataflow/graph/diff.js +114 -74
  152. package/dataflow/graph/edge.d.ts +66 -20
  153. package/dataflow/graph/edge.js +73 -27
  154. package/dataflow/graph/graph.d.ts +53 -29
  155. package/dataflow/graph/graph.js +84 -89
  156. package/dataflow/graph/quads.js +2 -2
  157. package/dataflow/graph/vertex.d.ts +37 -34
  158. package/dataflow/info.d.ts +49 -0
  159. package/dataflow/info.js +29 -0
  160. package/dataflow/internal/linker.d.ts +11 -10
  161. package/dataflow/internal/linker.js +64 -90
  162. package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
  163. package/dataflow/internal/process/functions/call/argument/make-argument.js +31 -0
  164. package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +3 -0
  165. package/dataflow/internal/process/functions/call/argument/unpack-argument.js +18 -0
  166. package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +9 -0
  167. package/dataflow/internal/process/functions/call/built-in/built-in-access.js +82 -0
  168. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +29 -0
  169. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.js +167 -0
  170. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +11 -0
  171. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +165 -0
  172. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +7 -0
  173. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +97 -0
  174. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +7 -0
  175. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +165 -0
  176. package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +7 -0
  177. package/dataflow/internal/process/functions/call/built-in/built-in-get.js +36 -0
  178. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +7 -0
  179. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +100 -0
  180. package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +7 -0
  181. package/dataflow/internal/process/functions/call/built-in/built-in-library.js +32 -0
  182. package/dataflow/internal/process/functions/call/built-in/built-in-logical-bin-op.d.ts +9 -0
  183. package/dataflow/internal/process/functions/call/built-in/built-in-logical-bin-op.js +35 -0
  184. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +7 -0
  185. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +35 -0
  186. package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +9 -0
  187. package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +29 -0
  188. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +7 -0
  189. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +32 -0
  190. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +12 -0
  191. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +45 -0
  192. package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +11 -0
  193. package/dataflow/internal/process/functions/call/built-in/built-in-source.js +72 -0
  194. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +7 -0
  195. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +61 -0
  196. package/dataflow/internal/process/functions/call/common.d.ts +35 -0
  197. package/dataflow/internal/process/functions/call/common.js +70 -0
  198. package/dataflow/internal/process/functions/call/default-call-handling.d.ts +5 -0
  199. package/dataflow/internal/process/functions/call/default-call-handling.js +15 -0
  200. package/dataflow/internal/process/functions/call/known-call-handling.d.ts +26 -0
  201. package/dataflow/internal/process/functions/call/known-call-handling.js +62 -0
  202. package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -0
  203. package/dataflow/internal/process/functions/call/named-call-handling.js +53 -0
  204. package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +6 -0
  205. package/dataflow/internal/process/functions/call/unnamed-call-handling.js +58 -0
  206. package/dataflow/internal/process/functions/process-argument.d.ts +9 -0
  207. package/dataflow/internal/process/functions/{argument.js → process-argument.js} +25 -20
  208. package/dataflow/internal/process/functions/{parameter.d.ts → process-parameter.d.ts} +3 -2
  209. package/dataflow/internal/process/functions/{parameter.js → process-parameter.js} +10 -13
  210. package/dataflow/internal/process/process-named-call.d.ts +6 -0
  211. package/dataflow/internal/process/process-named-call.js +17 -0
  212. package/dataflow/internal/process/process-symbol.d.ts +5 -0
  213. package/dataflow/internal/process/process-symbol.js +26 -0
  214. package/dataflow/internal/process/process-uninteresting-leaf.d.ts +4 -0
  215. package/dataflow/internal/process/process-uninteresting-leaf.js +9 -0
  216. package/dataflow/internal/process/process-value.d.ts +4 -0
  217. package/dataflow/internal/process/process-value.js +22 -0
  218. package/dataflow/logger.d.ts +1 -0
  219. package/dataflow/logger.js +6 -0
  220. package/dataflow/processor.d.ts +18 -13
  221. package/dataflow/processor.js +1 -1
  222. package/package.json +48 -85
  223. package/r-bridge/data/data.d.ts +603 -0
  224. package/r-bridge/data/data.js +753 -0
  225. package/r-bridge/data/get.d.ts +19 -0
  226. package/r-bridge/data/get.js +51 -0
  227. package/r-bridge/data/print.d.ts +1 -0
  228. package/r-bridge/data/print.js +58 -0
  229. package/r-bridge/data/types.d.ts +33 -0
  230. package/r-bridge/data/types.js +3 -0
  231. package/r-bridge/init.d.ts +3 -0
  232. package/r-bridge/init.js +22 -0
  233. package/r-bridge/lang-4.x/ast/model/collect.d.ts +2 -1
  234. package/r-bridge/lang-4.x/ast/model/collect.js +2 -2
  235. package/r-bridge/lang-4.x/ast/model/model.d.ts +26 -5
  236. package/r-bridge/lang-4.x/ast/model/nodes/r-access.d.ts +4 -3
  237. package/r-bridge/lang-4.x/ast/model/nodes/r-argument.d.ts +4 -0
  238. package/r-bridge/lang-4.x/ast/model/nodes/r-binary-op.d.ts +0 -17
  239. package/r-bridge/lang-4.x/ast/model/nodes/r-expression-list.d.ts +3 -1
  240. package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +6 -4
  241. package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.js +2 -0
  242. package/r-bridge/lang-4.x/ast/model/nodes/r-function-definition.d.ts +2 -3
  243. package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +1 -1
  244. package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +1 -1
  245. package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +2 -2
  246. package/r-bridge/lang-4.x/ast/model/nodes/r-unary-op.d.ts +0 -11
  247. package/r-bridge/lang-4.x/ast/model/operators.d.ts +6 -18
  248. package/r-bridge/lang-4.x/ast/model/operators.js +36 -48
  249. package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +19 -15
  250. package/r-bridge/lang-4.x/ast/model/processing/decorate.js +59 -54
  251. package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +8 -0
  252. package/r-bridge/lang-4.x/ast/model/processing/node-id.js +18 -0
  253. package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +2 -2
  254. package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +28 -17
  255. package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.js +7 -34
  256. package/r-bridge/lang-4.x/ast/model/processing/visitor.js +5 -2
  257. package/r-bridge/lang-4.x/ast/model/type.js +13 -6
  258. package/r-bridge/lang-4.x/ast/parser/json/format.d.ts +4 -1
  259. package/r-bridge/lang-4.x/ast/parser/json/format.js +9 -2
  260. package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +5 -5
  261. package/r-bridge/lang-4.x/ast/parser/json/parser.js +22 -27
  262. package/r-bridge/lang-4.x/ast/parser/xml/input-format.d.ts +10 -7
  263. package/r-bridge/lang-4.x/ast/parser/xml/input-format.js +19 -11
  264. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/{if-then-else.d.ts → normalize-if-then-else.d.ts} +3 -3
  265. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/{if-then-else.js → normalize-if-then-else.js} +10 -13
  266. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/{if-then.d.ts → normalize-if-then.d.ts} +3 -3
  267. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/{if-then.js → normalize-if-then.js} +9 -12
  268. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/normalize-expression.d.ts +10 -0
  269. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/normalize-expression.js +64 -0
  270. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{argument.d.ts → normalize-argument.d.ts} +4 -4
  271. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{argument.js → normalize-argument.js} +13 -17
  272. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{call.d.ts → normalize-call.d.ts} +6 -4
  273. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{call.js → normalize-call.js} +24 -29
  274. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/normalize-definition.d.ts +12 -0
  275. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{definition.js → normalize-definition.js} +14 -19
  276. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{parameter.d.ts → normalize-parameter.d.ts} +4 -4
  277. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/{parameter.js → normalize-parameter.js} +12 -16
  278. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/normalize-break.d.ts +4 -0
  279. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/{break.js → normalize-break.js} +6 -8
  280. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/normalize-for.d.ts +4 -0
  281. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/{for.js → normalize-for.js} +18 -20
  282. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/normalize-next.d.ts +4 -0
  283. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/{next.js → normalize-next.js} +6 -8
  284. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/normalize-repeat.d.ts +13 -0
  285. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/{repeat.js → normalize-repeat.js} +13 -16
  286. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/normalize-while.d.ts +4 -0
  287. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/{while.js → normalize-while.js} +10 -12
  288. package/r-bridge/lang-4.x/ast/parser/xml/internal/{access.d.ts → normalize-access.d.ts} +4 -4
  289. package/r-bridge/lang-4.x/ast/parser/xml/internal/{access.js → normalize-access.js} +44 -45
  290. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/{binary.d.ts → normalize-binary.d.ts} +3 -3
  291. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/{binary.js → normalize-binary.js} +23 -73
  292. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/normalize-unary.d.ts +13 -0
  293. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/normalize-unary.js +47 -0
  294. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/normalize-comment.d.ts +11 -0
  295. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/{comment.js → normalize-comment.js} +5 -10
  296. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/normalize-line-directive.d.ts +13 -0
  297. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/{line-directive.js → normalize-line-directive.js} +7 -12
  298. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-delimiter.d.ts +3 -0
  299. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-delimiter.js +15 -0
  300. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-expressions.d.ts +10 -0
  301. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-expressions.js +182 -0
  302. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-root.d.ts +4 -0
  303. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-root.js +34 -0
  304. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-single-node.d.ts +13 -0
  305. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/normalize-single-node.js +59 -0
  306. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/normalize-number.d.ts +16 -0
  307. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/{number.js → normalize-number.js} +12 -18
  308. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/normalize-string.d.ts +11 -0
  309. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/{string.js → normalize-string.js} +7 -12
  310. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/{symbol.d.ts → normalize-symbol.d.ts} +4 -4
  311. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/{symbol.js → normalize-symbol.js} +12 -15
  312. package/r-bridge/lang-4.x/ast/parser/xml/{internal/meta.d.ts → normalize-meta.d.ts} +5 -3
  313. package/r-bridge/lang-4.x/ast/parser/xml/{internal/meta.js → normalize-meta.js} +8 -8
  314. package/r-bridge/lang-4.x/ast/parser/xml/{data.d.ts → normalizer-data.d.ts} +1 -5
  315. package/r-bridge/lang-4.x/ast/parser/xml/normalizer-data.js +3 -0
  316. package/r-bridge/lang-4.x/{values.d.ts → convert-values.d.ts} +2 -2
  317. package/r-bridge/lang-4.x/{values.js → convert-values.js} +5 -5
  318. package/r-bridge/retriever.d.ts +5 -5
  319. package/r-bridge/retriever.js +11 -24
  320. package/r-bridge/shell-executor.d.ts +0 -1
  321. package/r-bridge/shell-executor.js +7 -12
  322. package/r-bridge/shell.d.ts +14 -12
  323. package/r-bridge/shell.js +52 -47
  324. package/reconstruct/reconstruct.d.ts +4 -2
  325. package/reconstruct/reconstruct.js +193 -185
  326. package/slicing/criterion/collect-all.d.ts +4 -3
  327. package/slicing/criterion/collect-all.js +5 -1
  328. package/slicing/criterion/filters/all-variables.js +14 -22
  329. package/slicing/criterion/parse.d.ts +4 -2
  330. package/slicing/criterion/parse.js +13 -11
  331. package/slicing/static/fingerprint.d.ts +5 -0
  332. package/slicing/static/fingerprint.js +17 -0
  333. package/slicing/static/slice-call.d.ts +10 -0
  334. package/slicing/static/slice-call.js +86 -0
  335. package/slicing/static/slicer-types.d.ts +33 -0
  336. package/slicing/static/slicer-types.js +3 -0
  337. package/slicing/static/static-slicer.d.ts +6 -24
  338. package/slicing/static/static-slicer.js +54 -155
  339. package/slicing/static/visiting-queue.d.ts +23 -0
  340. package/slicing/static/visiting-queue.js +53 -0
  341. package/statistics/features/common-syntax-probability.d.ts +29 -0
  342. package/statistics/features/common-syntax-probability.js +159 -0
  343. package/statistics/features/feature.d.ts +182 -0
  344. package/statistics/features/feature.js +39 -0
  345. package/statistics/features/post-processing.d.ts +12 -0
  346. package/statistics/features/post-processing.js +21 -0
  347. package/statistics/features/supported/assignments/assignments.d.ts +12 -0
  348. package/statistics/features/supported/assignments/assignments.js +55 -0
  349. package/statistics/features/supported/assignments/post-process.d.ts +3 -0
  350. package/statistics/features/supported/assignments/post-process.js +124 -0
  351. package/statistics/features/supported/comments/comments.d.ts +18 -0
  352. package/statistics/features/supported/comments/comments.js +133 -0
  353. package/statistics/features/supported/comments/post-process.d.ts +3 -0
  354. package/statistics/features/supported/comments/post-process.js +49 -0
  355. package/statistics/features/supported/control-flow/control-flow.d.ts +17 -0
  356. package/statistics/features/supported/control-flow/control-flow.js +68 -0
  357. package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
  358. package/statistics/features/supported/control-flow/post-process.js +64 -0
  359. package/statistics/features/supported/data-access/data-access.d.ts +15 -0
  360. package/statistics/features/supported/data-access/data-access.js +120 -0
  361. package/statistics/features/supported/data-access/post-process.d.ts +3 -0
  362. package/statistics/features/supported/data-access/post-process.js +106 -0
  363. package/statistics/features/supported/defined-functions/defined-functions.d.ts +34 -0
  364. package/statistics/features/supported/defined-functions/defined-functions.js +142 -0
  365. package/statistics/features/supported/defined-functions/post-process.d.ts +6 -0
  366. package/statistics/features/supported/defined-functions/post-process.js +169 -0
  367. package/statistics/features/supported/expression-list/expression-list.d.ts +9 -0
  368. package/statistics/features/supported/expression-list/expression-list.js +36 -0
  369. package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
  370. package/statistics/features/supported/expression-list/post-process.js +43 -0
  371. package/statistics/features/supported/loops/loops.d.ts +20 -0
  372. package/statistics/features/supported/loops/loops.js +79 -0
  373. package/statistics/features/supported/loops/post-process.d.ts +3 -0
  374. package/statistics/features/supported/loops/post-process.js +71 -0
  375. package/statistics/features/supported/used-functions/post-process.d.ts +6 -0
  376. package/statistics/features/supported/used-functions/post-process.js +178 -0
  377. package/statistics/features/supported/used-functions/used-functions.d.ts +24 -0
  378. package/statistics/features/supported/used-functions/used-functions.js +97 -0
  379. package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
  380. package/statistics/features/supported/used-packages/post-process.js +120 -0
  381. package/statistics/features/supported/used-packages/used-packages.d.ts +16 -0
  382. package/statistics/features/supported/used-packages/used-packages.js +130 -0
  383. package/statistics/features/supported/values/post-process.d.ts +3 -0
  384. package/statistics/features/supported/values/post-process.js +71 -0
  385. package/statistics/features/supported/values/values.d.ts +14 -0
  386. package/statistics/features/supported/values/values.js +101 -0
  387. package/statistics/features/supported/variables/post-process.d.ts +9 -0
  388. package/statistics/features/supported/variables/post-process.js +121 -0
  389. package/statistics/features/supported/variables/variables.d.ts +15 -0
  390. package/statistics/features/supported/variables/variables.js +60 -0
  391. package/statistics/meta-statistics.d.ts +33 -0
  392. package/statistics/meta-statistics.js +17 -0
  393. package/statistics/output/file-provider.d.ts +37 -0
  394. package/statistics/output/file-provider.js +97 -0
  395. package/statistics/output/print-stats.d.ts +17 -0
  396. package/statistics/output/print-stats.js +69 -0
  397. package/statistics/output/statistics-file.d.ts +37 -0
  398. package/statistics/output/statistics-file.js +69 -0
  399. package/statistics/statistics.d.ts +28 -0
  400. package/statistics/statistics.js +108 -0
  401. package/statistics/summarizer/auto-detect.d.ts +2 -0
  402. package/statistics/summarizer/auto-detect.js +32 -0
  403. package/statistics/summarizer/first-phase/process.d.ts +6 -0
  404. package/statistics/summarizer/first-phase/process.js +81 -0
  405. package/statistics/summarizer/post-process/clusterer.d.ts +26 -0
  406. package/statistics/summarizer/post-process/clusterer.js +43 -0
  407. package/statistics/summarizer/post-process/file-based-count.d.ts +17 -0
  408. package/statistics/summarizer/post-process/file-based-count.js +49 -0
  409. package/statistics/summarizer/post-process/histogram.d.ts +59 -0
  410. package/statistics/summarizer/post-process/histogram.js +128 -0
  411. package/statistics/summarizer/post-process/post-process-output.d.ts +16 -0
  412. package/statistics/summarizer/post-process/post-process-output.js +105 -0
  413. package/statistics/summarizer/second-phase/process.d.ts +11 -0
  414. package/statistics/summarizer/second-phase/process.js +116 -0
  415. package/statistics/summarizer/summarizer.d.ts +35 -0
  416. package/statistics/summarizer/summarizer.js +135 -0
  417. package/util/ansi.d.ts +2 -2
  418. package/util/ansi.js +2 -2
  419. package/util/arrays.d.ts +11 -1
  420. package/util/arrays.js +34 -1
  421. package/util/assert.d.ts +1 -0
  422. package/util/assert.js +5 -1
  423. package/util/cfg/cfg.d.ts +3 -2
  424. package/util/cfg/cfg.js +17 -28
  425. package/util/cfg/visitor.d.ts +1 -1
  426. package/util/defaultmap.d.ts +1 -1
  427. package/util/defaultmap.js +1 -1
  428. package/util/diff.d.ts +4 -4
  429. package/util/files.d.ts +2 -2
  430. package/util/files.js +1 -1
  431. package/util/log.d.ts +1 -0
  432. package/util/log.js +7 -1
  433. package/util/logic.d.ts +1 -0
  434. package/util/logic.js +3 -0
  435. package/util/mermaid/ast.d.ts +1 -1
  436. package/util/mermaid/ast.js +2 -2
  437. package/util/mermaid/cfg.d.ts +1 -1
  438. package/util/mermaid/dfg.d.ts +34 -8
  439. package/util/mermaid/dfg.js +99 -70
  440. package/util/mermaid/mermaid.d.ts +1 -1
  441. package/util/mermaid/mermaid.js +6 -7
  442. package/util/objects.js +4 -0
  443. package/util/quads.d.ts +3 -3
  444. package/util/quads.js +0 -1
  445. package/util/range.d.ts +27 -14
  446. package/util/range.js +31 -27
  447. package/util/version.js +1 -1
  448. package/core/index.d.ts +0 -4
  449. package/core/index.js +0 -23
  450. package/core/input.d.ts +0 -42
  451. package/core/output.d.ts +0 -15
  452. package/core/slicer.d.ts +0 -124
  453. package/core/slicer.js +0 -227
  454. package/core/steps.d.ts +0 -508
  455. package/core/steps.js +0 -100
  456. package/dataflow/environments/index.d.ts +0 -7
  457. package/dataflow/environments/index.js +0 -23
  458. package/dataflow/environments/register.js +0 -40
  459. package/dataflow/environments/scopes.d.ts +0 -6
  460. package/dataflow/environments/scopes.js +0 -6
  461. package/dataflow/graph/index.d.ts +0 -4
  462. package/dataflow/graph/index.js +0 -21
  463. package/dataflow/index.d.ts +0 -5
  464. package/dataflow/index.js +0 -24
  465. package/dataflow/internal/info.d.ts +0 -21
  466. package/dataflow/internal/info.js +0 -16
  467. package/dataflow/internal/process/access.d.ts +0 -4
  468. package/dataflow/internal/process/access.js +0 -53
  469. package/dataflow/internal/process/expression-list.d.ts +0 -8
  470. package/dataflow/internal/process/expression-list.js +0 -144
  471. package/dataflow/internal/process/functions/argument.d.ts +0 -8
  472. package/dataflow/internal/process/functions/exit-points.d.ts +0 -2
  473. package/dataflow/internal/process/functions/exit-points.js +0 -121
  474. package/dataflow/internal/process/functions/function-call.d.ts +0 -5
  475. package/dataflow/internal/process/functions/function-call.js +0 -105
  476. package/dataflow/internal/process/functions/function-definition.d.ts +0 -4
  477. package/dataflow/internal/process/functions/function-definition.js +0 -176
  478. package/dataflow/internal/process/functions/source.d.ts +0 -8
  479. package/dataflow/internal/process/functions/source.js +0 -81
  480. package/dataflow/internal/process/if-then-else.d.ts +0 -4
  481. package/dataflow/internal/process/if-then-else.js +0 -56
  482. package/dataflow/internal/process/loops/for-loop.d.ts +0 -4
  483. package/dataflow/internal/process/loops/for-loop.js +0 -54
  484. package/dataflow/internal/process/loops/repeat-loop.d.ts +0 -4
  485. package/dataflow/internal/process/loops/repeat-loop.js +0 -21
  486. package/dataflow/internal/process/loops/while-loop.d.ts +0 -4
  487. package/dataflow/internal/process/loops/while-loop.js +0 -31
  488. package/dataflow/internal/process/operators/assignment.d.ts +0 -4
  489. package/dataflow/internal/process/operators/assignment.js +0 -129
  490. package/dataflow/internal/process/operators/non-assignment-binary-op.d.ts +0 -4
  491. package/dataflow/internal/process/operators/non-assignment-binary-op.js +0 -25
  492. package/dataflow/internal/process/operators/pipe.d.ts +0 -4
  493. package/dataflow/internal/process/operators/pipe.js +0 -46
  494. package/dataflow/internal/process/operators/unary-op.d.ts +0 -4
  495. package/dataflow/internal/process/operators/unary-op.js +0 -10
  496. package/dataflow/internal/process/symbol.d.ts +0 -4
  497. package/dataflow/internal/process/symbol.js +0 -21
  498. package/dataflow/internal/process/uninteresting-leaf.d.ts +0 -3
  499. package/dataflow/internal/process/uninteresting-leaf.js +0 -9
  500. package/index.d.ts +0 -4
  501. package/index.js +0 -21
  502. package/r-bridge/index.d.ts +0 -11
  503. package/r-bridge/index.js +0 -28
  504. package/r-bridge/lang-4.x/ast/index.d.ts +0 -3
  505. package/r-bridge/lang-4.x/ast/index.js +0 -22
  506. package/r-bridge/lang-4.x/ast/model/index.d.ts +0 -6
  507. package/r-bridge/lang-4.x/ast/model/index.js +0 -23
  508. package/r-bridge/lang-4.x/ast/model/nodes/index.d.ts +0 -21
  509. package/r-bridge/lang-4.x/ast/model/nodes/index.js +0 -38
  510. package/r-bridge/lang-4.x/ast/model/nodes/info/index.d.ts +0 -13
  511. package/r-bridge/lang-4.x/ast/model/nodes/info/index.js +0 -27
  512. package/r-bridge/lang-4.x/ast/model/processing/index.d.ts +0 -5
  513. package/r-bridge/lang-4.x/ast/model/processing/index.js +0 -22
  514. package/r-bridge/lang-4.x/ast/parser/xml/hooks.d.ts +0 -292
  515. package/r-bridge/lang-4.x/ast/parser/xml/hooks.js +0 -136
  516. package/r-bridge/lang-4.x/ast/parser/xml/index.d.ts +0 -3
  517. package/r-bridge/lang-4.x/ast/parser/xml/index.js +0 -20
  518. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/index.d.ts +0 -2
  519. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/index.js +0 -19
  520. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/expression.d.ts +0 -10
  521. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/expression.js +0 -65
  522. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/index.d.ts +0 -1
  523. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/index.js +0 -18
  524. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/definition.d.ts +0 -12
  525. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/index.d.ts +0 -2
  526. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/index.js +0 -20
  527. package/r-bridge/lang-4.x/ast/parser/xml/internal/index.d.ts +0 -9
  528. package/r-bridge/lang-4.x/ast/parser/xml/internal/index.js +0 -26
  529. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/break.d.ts +0 -4
  530. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/for.d.ts +0 -4
  531. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/index.d.ts +0 -5
  532. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/index.js +0 -22
  533. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/next.d.ts +0 -4
  534. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/repeat.d.ts +0 -13
  535. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/while.d.ts +0 -4
  536. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/index.d.ts +0 -3
  537. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/index.js +0 -20
  538. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/special.d.ts +0 -6
  539. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/special.js +0 -24
  540. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/unary.d.ts +0 -13
  541. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/unary.js +0 -59
  542. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/comment.d.ts +0 -11
  543. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/index.d.ts +0 -1
  544. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/index.js +0 -18
  545. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/line-directive.d.ts +0 -12
  546. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/elements.d.ts +0 -10
  547. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/elements.js +0 -159
  548. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/index.d.ts +0 -3
  549. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/index.js +0 -20
  550. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/root.d.ts +0 -4
  551. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/root.js +0 -33
  552. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/single-element.d.ts +0 -13
  553. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/single-element.js +0 -64
  554. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/index.d.ts +0 -3
  555. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/index.js +0 -20
  556. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/number.d.ts +0 -13
  557. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/string.d.ts +0 -11
  558. package/r-bridge/lang-4.x/index.d.ts +0 -2
  559. package/r-bridge/lang-4.x/index.js +0 -19
  560. package/slicing/criterion/filters/index.d.ts +0 -1
  561. package/slicing/criterion/filters/index.js +0 -18
  562. package/slicing/criterion/index.d.ts +0 -3
  563. package/slicing/criterion/index.js +0 -20
  564. package/slicing/index.d.ts +0 -3
  565. package/slicing/index.js +0 -20
  566. package/slicing/static/index.d.ts +0 -1
  567. package/slicing/static/index.js +0 -18
  568. package/util/mermaid/index.d.ts +0 -3
  569. package/util/mermaid/index.js +0 -20
  570. /package/{r-bridge/lang-4.x/ast/parser/xml → benchmark/summarizer}/data.js +0 -0
@@ -1,42 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tryNormalizeRepeat = void 0;
4
- const meta_1 = require("../meta");
5
- const structure_1 = require("../structure");
6
- const assert_1 = require("../../../../../../../util/assert");
7
- const hooks_1 = require("../../hooks");
8
4
  const parser_1 = require("../../../json/parser");
5
+ const assert_1 = require("../../../../../../../util/assert");
6
+ const normalize_meta_1 = require("../../normalize-meta");
7
+ const normalize_single_node_1 = require("../structure/normalize-single-node");
9
8
  /**
10
9
  * Try to parse the construct as a {@link RRepeatLoop}.
11
10
  *
12
- * @param data - The data used by the parser (see {@link ParserData})
11
+ * @param data - The data used by the parser (see {@link NormalizerData})
13
12
  * @param repeatToken - Token which represents the `repeat` keyword
14
- * @param body - The `body` of the repeat-loop
13
+ * @param bodyToken - The `body` of the repeat-loop
15
14
  *
16
15
  * @returns The parsed {@link RRepeatLoop} or `undefined` if the given construct is not a repeat-loop
17
16
  */
18
- function tryNormalizeRepeat(data, repeatToken, body) {
17
+ function tryNormalizeRepeat(data, [repeatToken, bodyToken]) {
19
18
  if (repeatToken.name !== "REPEAT" /* RawRType.Repeat */) {
20
19
  parser_1.parseLog.debug('encountered non-repeat token for supposed repeat-loop structure');
21
- return (0, hooks_1.executeUnknownHook)(data.hooks.loops.onRepeatLoop.unknown, data, { repeatToken, body });
20
+ return undefined;
22
21
  }
23
22
  parser_1.parseLog.debug('trying to parse repeat-loop');
24
- ({ repeatToken, body } = (0, hooks_1.executeHook)(data.hooks.loops.onRepeatLoop.before, data, { repeatToken, body }));
25
- const parseBody = (0, structure_1.tryNormalizeSingleNode)(data, body);
26
- (0, assert_1.guard)(parseBody.type !== "RDelimiter" /* RType.Delimiter */, () => `no body for repeat-loop ${JSON.stringify(repeatToken)} (${JSON.stringify(body)})`);
27
- const { location, content } = (0, meta_1.retrieveMetaStructure)(repeatToken.content);
28
- const result = {
23
+ const parseBody = (0, normalize_single_node_1.normalizeSingleNode)(data, bodyToken);
24
+ (0, assert_1.guard)(parseBody.type !== "RDelimiter" /* RType.Delimiter */, () => `no body for repeat-loop ${JSON.stringify(repeatToken)} (${JSON.stringify(bodyToken)})`);
25
+ const { location, content } = (0, normalize_meta_1.retrieveMetaStructure)(repeatToken.content);
26
+ return {
29
27
  type: "RRepeatLoop" /* RType.RepeatLoop */,
30
28
  location,
31
29
  lexeme: content,
32
- body: (0, meta_1.ensureExpressionList)(parseBody),
30
+ body: (0, normalize_meta_1.ensureExpressionList)(parseBody),
33
31
  info: {
34
32
  fullRange: data.currentRange,
35
33
  additionalTokens: [],
36
34
  fullLexeme: data.currentLexeme
37
35
  }
38
36
  };
39
- return (0, hooks_1.executeHook)(data.hooks.loops.onRepeatLoop.after, data, result);
40
37
  }
41
38
  exports.tryNormalizeRepeat = tryNormalizeRepeat;
42
- //# sourceMappingURL=repeat.js.map
39
+ //# sourceMappingURL=normalize-repeat.js.map
@@ -0,0 +1,4 @@
1
+ import type { NormalizerData } from '../../normalizer-data';
2
+ import type { NamedXmlBasedJson } from '../../input-format';
3
+ import type { RWhileLoop } from '../../../../model/nodes/r-while-loop';
4
+ export declare function tryNormalizeWhile(data: NormalizerData, [whileToken, leftParen, condition, rightParen, body]: [NamedXmlBasedJson, NamedXmlBasedJson, NamedXmlBasedJson, NamedXmlBasedJson, NamedXmlBasedJson]): RWhileLoop | undefined;
@@ -2,14 +2,13 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tryNormalizeWhile = void 0;
4
4
  const input_format_1 = require("../../input-format");
5
- const meta_1 = require("../meta");
6
- const structure_1 = require("../structure");
7
- const hooks_1 = require("../../hooks");
8
5
  const parser_1 = require("../../../json/parser");
9
- function tryNormalizeWhile(data, whileToken, leftParen, condition, rightParen, body) {
6
+ const normalize_meta_1 = require("../../normalize-meta");
7
+ const normalize_single_node_1 = require("../structure/normalize-single-node");
8
+ function tryNormalizeWhile(data, [whileToken, leftParen, condition, rightParen, body]) {
10
9
  if (whileToken.name !== "WHILE" /* RawRType.While */) {
11
10
  parser_1.parseLog.debug('encountered non-while token for supposed while-loop structure');
12
- return (0, hooks_1.executeUnknownHook)(data.hooks.loops.onWhileLoop.unknown, data, { whileToken, leftParen, condition, rightParen, body });
11
+ return undefined;
13
12
  }
14
13
  else if (leftParen.name !== "(" /* RawRType.ParenLeft */) {
15
14
  throw new input_format_1.XmlParseError(`expected left-parenthesis for while but found ${JSON.stringify(leftParen)}`);
@@ -18,19 +17,19 @@ function tryNormalizeWhile(data, whileToken, leftParen, condition, rightParen, b
18
17
  throw new input_format_1.XmlParseError(`expected right-parenthesis for while but found ${JSON.stringify(rightParen)}`);
19
18
  }
20
19
  parser_1.parseLog.debug('trying to parse while-loop');
21
- const parsedCondition = (0, structure_1.tryNormalizeSingleNode)(data, condition);
22
- const parseBody = (0, structure_1.tryNormalizeSingleNode)(data, body);
20
+ const parsedCondition = (0, normalize_single_node_1.normalizeSingleNode)(data, condition);
21
+ const parseBody = (0, normalize_single_node_1.normalizeSingleNode)(data, body);
23
22
  if (parsedCondition.type === "RDelimiter" /* RType.Delimiter */ || parseBody.type === "RDelimiter" /* RType.Delimiter */) {
24
23
  throw new input_format_1.XmlParseError(`unexpected under-sided while-loop, received ${JSON.stringify([
25
24
  parsedCondition,
26
25
  parseBody,
27
26
  ])} for ${JSON.stringify([whileToken, condition, body])}`);
28
27
  }
29
- const { location, content } = (0, meta_1.retrieveMetaStructure)(whileToken.content);
30
- const result = {
28
+ const { location, content } = (0, normalize_meta_1.retrieveMetaStructure)(whileToken.content);
29
+ return {
31
30
  type: "RWhileLoop" /* RType.WhileLoop */,
32
31
  condition: parsedCondition,
33
- body: (0, meta_1.ensureExpressionList)(parseBody),
32
+ body: (0, normalize_meta_1.ensureExpressionList)(parseBody),
34
33
  lexeme: content,
35
34
  location,
36
35
  info: {
@@ -39,7 +38,6 @@ function tryNormalizeWhile(data, whileToken, leftParen, condition, rightParen, b
39
38
  fullLexeme: data.currentLexeme
40
39
  }
41
40
  };
42
- return (0, hooks_1.executeHook)(data.hooks.loops.onWhileLoop.after, data, result);
43
41
  }
44
42
  exports.tryNormalizeWhile = tryNormalizeWhile;
45
- //# sourceMappingURL=while.js.map
43
+ //# sourceMappingURL=normalize-while.js.map
@@ -1,12 +1,12 @@
1
1
  import type { NamedXmlBasedJson } from '../input-format';
2
- import type { ParserData } from '../data';
3
- import type { RAccess } from '../../../model';
2
+ import type { NormalizerData } from '../normalizer-data';
3
+ import type { RAccess } from '../../../model/nodes/r-access';
4
4
  /**
5
5
  * Tries to normalize the given data as access (e.g., indexing).
6
6
  *
7
- * @param data - The data used by the parser (see {@link ParserData})
7
+ * @param data - The data used by the parser (see {@link NormalizerData})
8
8
  * @param mappedWithName - The json object to extract the meta-information from
9
9
  *
10
10
  * @returns The parsed {@link RAccess} or `undefined` if the given construct is not accessing a value
11
11
  */
12
- export declare function tryNormalizeAccess(data: ParserData, mappedWithName: NamedXmlBasedJson[]): RAccess | undefined;
12
+ export declare function tryNormalizeAccess(data: NormalizerData, mappedWithName: NamedXmlBasedJson[]): RAccess | undefined;
@@ -1,27 +1,53 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tryNormalizeAccess = void 0;
4
- const meta_1 = require("./meta");
5
- const hooks_1 = require("../hooks");
6
- const structure_1 = require("./structure");
7
- const assert_1 = require("../../../../../../util/assert");
8
- const arrays_1 = require("../../../../../../util/arrays");
9
- const argument_1 = require("./functions/argument");
4
+ const normalize_argument_1 = require("./functions/normalize-argument");
10
5
  const parser_1 = require("../../json/parser");
6
+ const arrays_1 = require("../../../../../../util/arrays");
7
+ const assert_1 = require("../../../../../../util/assert");
8
+ const normalize_meta_1 = require("../normalize-meta");
9
+ const normalize_single_node_1 = require("./structure/normalize-single-node");
10
+ const r_function_call_1 = require("../../../model/nodes/r-function-call");
11
+ const normalize_expressions_1 = require("./structure/normalize-expressions");
12
+ function normalizeAbstractArgument(x, data, operator) {
13
+ if (x.length === 0) {
14
+ return r_function_call_1.EmptyArgument;
15
+ }
16
+ else if (x.length !== 1 || x[0].name === "expr" /* RawRType.Expression */) {
17
+ const gotAccess = (0, normalize_argument_1.tryToNormalizeArgument)(data, x);
18
+ (0, assert_1.guard)(gotAccess !== undefined, () => `expected one access result in access as argument, yet received ${JSON.stringify(gotAccess)} for ${JSON.stringify([operator, x])}`);
19
+ return gotAccess;
20
+ }
21
+ else {
22
+ const node = (0, normalize_single_node_1.normalizeSingleNode)(data, x[0]);
23
+ (0, assert_1.guard)(node.type !== "RExpressionList" /* RType.ExpressionList */, () => `expected expression list to be parsed as argument, yet received ${JSON.stringify(node)} for ${JSON.stringify(x)}`);
24
+ return {
25
+ type: "RArgument" /* RType.Argument */,
26
+ location: node.location,
27
+ lexeme: node.lexeme,
28
+ name: undefined,
29
+ value: node,
30
+ info: {
31
+ fullRange: node.location,
32
+ fullLexeme: node.lexeme,
33
+ additionalTokens: []
34
+ }
35
+ };
36
+ }
37
+ }
11
38
  /**
12
39
  * Tries to normalize the given data as access (e.g., indexing).
13
40
  *
14
- * @param data - The data used by the parser (see {@link ParserData})
41
+ * @param data - The data used by the parser (see {@link NormalizerData})
15
42
  * @param mappedWithName - The json object to extract the meta-information from
16
43
  *
17
44
  * @returns The parsed {@link RAccess} or `undefined` if the given construct is not accessing a value
18
45
  */
19
46
  function tryNormalizeAccess(data, mappedWithName) {
20
47
  parser_1.parseLog.trace('trying to parse access');
21
- mappedWithName = (0, hooks_1.executeHook)(data.hooks.onAccess.before, data, mappedWithName);
22
48
  if (mappedWithName.length < 3) {
23
49
  parser_1.parseLog.trace('expected at least three elements are required to parse an access');
24
- return (0, hooks_1.executeUnknownHook)(data.hooks.onAccess.unknown, data, mappedWithName);
50
+ return undefined;
25
51
  }
26
52
  const accessOp = mappedWithName[1];
27
53
  let operator;
@@ -43,65 +69,38 @@ function tryNormalizeAccess(data, mappedWithName) {
43
69
  break;
44
70
  default:
45
71
  parser_1.parseLog.trace(`expected second element to be an access operator, yet received ${accessOp.name}`);
46
- return (0, hooks_1.executeUnknownHook)(data.hooks.onAccess.unknown, data, mappedWithName);
72
+ return undefined;
47
73
  }
48
74
  const accessed = mappedWithName[0];
49
75
  if (accessed.name !== "expr" /* RawRType.Expression */ && accessed.name !== "expr_or_assign_or_help" /* RawRType.ExprOfAssignOrHelp */) {
50
76
  parser_1.parseLog.trace(`expected accessed element to be wrapped an expression, yet received ${accessed.name}`);
51
- return (0, hooks_1.executeUnknownHook)(data.hooks.onAccess.unknown, data, mappedWithName);
77
+ return undefined;
52
78
  }
53
- const parsedAccessed = (0, structure_1.normalizeBasedOnType)(data, [accessed]);
79
+ const parsedAccessed = (0, normalize_expressions_1.normalizeExpressions)(data, [accessed]);
54
80
  if (parsedAccessed.length !== 1) {
55
81
  parser_1.parseLog.trace(`expected accessed element to be wrapped an expression, yet received ${accessed.name}`);
56
- return (0, hooks_1.executeUnknownHook)(data.hooks.onAccess.unknown, data, mappedWithName);
82
+ return undefined;
57
83
  }
58
84
  const remaining = mappedWithName.slice(2, mappedWithName.length - closingLength);
59
85
  parser_1.parseLog.trace(`${remaining.length} remaining arguments for access`);
60
86
  const splitAccessOnComma = (0, arrays_1.splitArrayOn)(remaining, x => x.name === "," /* RawRType.Comma */);
61
87
  const parsedAccess = splitAccessOnComma.map(x => {
62
- if (x.length === 0) {
63
- parser_1.parseLog.trace('record empty access');
64
- return null;
65
- }
66
- parser_1.parseLog.trace('trying to parse access');
67
- const gotAccess = parseAccessArgument(operator, data, x);
68
- (0, assert_1.guard)(gotAccess !== undefined, () => `expected one access result in access as argument, yet received ${JSON.stringify(gotAccess)} for ${JSON.stringify([operator, x])}`);
69
- return gotAccess;
88
+ return normalizeAbstractArgument(x, data, operator);
70
89
  });
71
- let resultingAccess = parsedAccess;
72
- if (operator === '@' || operator === '$') {
73
- (0, assert_1.guard)(parsedAccess.length === 1, () => `expected one access result in access with ${JSON.stringify(operator)}, yet received ${JSON.stringify(parsedAccess)}`);
74
- const first = parsedAccess[0];
75
- (0, assert_1.guard)(first !== null && (first.type === "RSymbol" /* RType.Symbol */ || first.type === "RString" /* RType.String */ || first.type === "RLogical" /* RType.Logical */), () => `${JSON.stringify(operator)} requires one symbol, yet received ${JSON.stringify(parsedAccess)}`);
76
- resultingAccess = first.type === "RString" /* RType.String */ ? first.content.str : first.lexeme;
77
- }
78
- const { content, location } = (0, meta_1.retrieveMetaStructure)(accessOp.content);
79
- const result = {
90
+ const { content, location } = (0, normalize_meta_1.retrieveMetaStructure)(accessOp.content);
91
+ return {
80
92
  type: "RAccess" /* RType.Access */,
81
93
  location,
82
94
  lexeme: content,
83
95
  accessed: parsedAccessed[0],
84
96
  operator,
85
- access: resultingAccess,
97
+ access: parsedAccess,
86
98
  info: {
87
99
  fullRange: data.currentRange,
88
100
  additionalTokens: [],
89
101
  fullLexeme: data.currentLexeme
90
102
  }
91
103
  };
92
- return (0, hooks_1.executeHook)(data.hooks.onAccess.after, data, result);
93
104
  }
94
105
  exports.tryNormalizeAccess = tryNormalizeAccess;
95
- function parseAccessArgument(operator, data, elements) {
96
- // within access the content is *not* wrapped within another expression, that means if we have a SYMBOL_SUB we can directly parse the argument,
97
- // otherwise we have to add the expression layer
98
- // console.log('parseAccessArgument', elements.map(x => x.name))
99
- if (operator === '@' || operator === '$') {
100
- const parse = (0, structure_1.normalizeBasedOnType)(data, elements);
101
- return parse.length !== 1 ? undefined : parse[0];
102
- }
103
- else {
104
- return (0, argument_1.tryToNormalizeArgument)(data, elements);
105
- }
106
- }
107
- //# sourceMappingURL=access.js.map
106
+ //# sourceMappingURL=normalize-access.js.map
@@ -1,8 +1,8 @@
1
+ import type { NormalizerData } from '../../normalizer-data';
1
2
  import type { NamedXmlBasedJson } from '../../input-format';
2
- import type { ParserData } from '../../data';
3
- import type { RNode } from '../../../../model';
3
+ import type { RNode } from '../../../../model/model';
4
4
  /**
5
5
  * Parsing binary operations includes the pipe, even though the produced PIPE construct is not a binary operation,
6
6
  * to ensure it is handled separately from the others (especially in the combination of a pipe bind)
7
7
  */
8
- export declare function tryNormalizeBinary(data: ParserData, lhs: NamedXmlBasedJson, operator: NamedXmlBasedJson, rhs: NamedXmlBasedJson): RNode | undefined;
8
+ export declare function tryNormalizeBinary(data: NormalizerData, [lhs, operator, rhs]: [NamedXmlBasedJson, NamedXmlBasedJson, NamedXmlBasedJson]): RNode | undefined;
@@ -2,69 +2,40 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tryNormalizeBinary = void 0;
4
4
  const input_format_1 = require("../../input-format");
5
- const meta_1 = require("../meta");
6
- const special_1 = require("./special");
7
- const structure_1 = require("../structure");
8
- const model_1 = require("../../../../model");
9
- const hooks_1 = require("../../hooks");
10
- const assert_1 = require("../../../../../../../util/assert");
11
5
  const parser_1 = require("../../../json/parser");
6
+ const normalize_meta_1 = require("../../normalize-meta");
7
+ const assert_1 = require("../../../../../../../util/assert");
8
+ const log_1 = require("../../../../../../../util/log");
9
+ const strings_1 = require("../../../../../../../util/strings");
10
+ const operators_1 = require("../../../../model/operators");
11
+ const normalize_single_node_1 = require("../structure/normalize-single-node");
12
12
  /**
13
13
  * Parsing binary operations includes the pipe, even though the produced PIPE construct is not a binary operation,
14
14
  * to ensure it is handled separately from the others (especially in the combination of a pipe bind)
15
15
  */
16
- function tryNormalizeBinary(data, lhs, operator, rhs) {
17
- parser_1.parseLog.trace(`binary op for ${lhs.name} [${operator.name}] ${rhs.name}`);
18
- let flavor;
19
- if ("SPECIAL" /* RawRType.Special */ === operator.name) {
20
- flavor = 'special';
21
- }
22
- else if (model_1.ArithmeticOperatorsRAst.has(operator.name)) {
23
- flavor = 'arithmetic';
24
- }
25
- else if (model_1.ComparisonOperatorsRAst.has(operator.name)) {
26
- flavor = 'comparison';
27
- }
28
- else if (model_1.LogicalOperatorsRAst.has(operator.name)) {
29
- flavor = 'logical';
30
- }
31
- else if (model_1.ModelFormulaOperatorsRAst.has(operator.name)) {
32
- flavor = 'model formula';
33
- }
34
- else if (model_1.AssignmentsRAst.has(operator.name)) {
35
- flavor = 'assignment';
36
- }
37
- else if (operator.name === "PIPE" /* RawRType.Pipe */) {
38
- flavor = 'pipe';
16
+ function tryNormalizeBinary(data, [lhs, operator, rhs]) {
17
+ (0, log_1.expensiveTrace)(parser_1.parseLog, () => `binary op for ${lhs.name} [${operator.name}] ${rhs.name}`);
18
+ if (operator.name === "SPECIAL" /* RawRType.Special */ || operators_1.OperatorsInRAst.has(operator.name) || operator.name === "PIPE" /* RawRType.Pipe */) {
19
+ return parseBinaryOp(data, lhs, operator, rhs);
39
20
  }
40
21
  else {
41
- return (0, hooks_1.executeUnknownHook)(data.hooks.operators.onBinary.unknown, data, { lhs, operator, rhs });
22
+ return undefined;
42
23
  }
43
- return parseBinaryOp(data, flavor, lhs, operator, rhs);
44
24
  }
45
25
  exports.tryNormalizeBinary = tryNormalizeBinary;
46
- function parseBinaryOp(data, flavor, lhs, operator, rhs) {
47
- parser_1.parseLog.debug(`[binary op] trying to parse ${flavor}`);
48
- ({ flavor, lhs, rhs, operator } = (0, hooks_1.executeHook)(data.hooks.operators.onBinary.before, data, { flavor, lhs, operator, rhs }));
49
- (0, meta_1.ensureChildrenAreLhsAndRhsOrdered)(lhs.content, rhs.content);
50
- let parsedLhs = (0, structure_1.tryNormalizeSingleNode)(data, lhs);
51
- let parsedRhs = (0, structure_1.tryNormalizeSingleNode)(data, rhs);
26
+ function parseBinaryOp(data, lhs, operator, rhs) {
27
+ (0, normalize_meta_1.ensureChildrenAreLhsAndRhsOrdered)(lhs.content, rhs.content);
28
+ const parsedLhs = (0, normalize_single_node_1.normalizeSingleNode)(data, lhs);
29
+ const parsedRhs = (0, normalize_single_node_1.normalizeSingleNode)(data, rhs);
52
30
  if (parsedLhs.type === "RDelimiter" /* RType.Delimiter */ || parsedRhs.type === "RDelimiter" /* RType.Delimiter */) {
53
31
  throw new input_format_1.XmlParseError(`unexpected under-sided binary op, received ${JSON.stringify([parsedLhs, parsedRhs])} for ${JSON.stringify([lhs, operator, rhs])}`);
54
32
  }
55
- const operationName = (0, meta_1.retrieveOpName)(operator);
56
- // special support for strings in assignments
57
- if (flavor === 'assignment') {
58
- [parsedLhs, parsedRhs] = processLhsAndRhsForAssignment(operationName, parsedLhs, parsedRhs);
59
- }
60
- const { location, content } = (0, meta_1.retrieveMetaStructure)(operator.content);
61
- if (flavor === 'special') {
62
- flavor = (0, special_1.identifySpecialOp)(content);
63
- }
64
- if (flavor === 'special') {
33
+ const operationName = (0, normalize_meta_1.retrieveOpName)(operator);
34
+ const { location, content } = (0, normalize_meta_1.retrieveMetaStructure)(operator.content);
35
+ if ((0, strings_1.startAndEndsWith)(operationName, '%')) {
65
36
  (0, assert_1.guard)(parsedLhs.location !== undefined && parsedLhs.lexeme !== undefined && parsedRhs.location !== undefined && parsedRhs.lexeme !== undefined, () => `special op lhs and rhs must have a locations and lexemes, but ${JSON.stringify(parsedLhs)} and ${JSON.stringify(parsedRhs)})`);
66
37
  // parse as infix function call!
67
- const result = {
38
+ return {
68
39
  type: "RFunctionCall" /* RType.FunctionCall */,
69
40
  flavor: 'named',
70
41
  infixSpecial: true,
@@ -98,13 +69,11 @@ function parseBinaryOp(data, flavor, lhs, operator, rhs) {
98
69
  ],
99
70
  info: {}
100
71
  };
101
- return (0, hooks_1.executeHook)(data.hooks.operators.onBinary.after, data, result);
102
72
  }
103
- let result;
104
- if (flavor === 'pipe') {
73
+ else if (operator.name === "PIPE" /* RawRType.Pipe */) {
105
74
  (0, assert_1.guard)(parsedLhs.location !== undefined, () => `pipe lhs must have a location, but ${JSON.stringify(parsedLhs)})`);
106
75
  (0, assert_1.guard)(parsedLhs.lexeme !== undefined, () => `pipe lhs must have a full lexeme, but ${JSON.stringify(parsedLhs)})`);
107
- result = {
76
+ return {
108
77
  type: "RPipe" /* RType.Pipe */,
109
78
  location,
110
79
  lhs: {
@@ -125,9 +94,8 @@ function parseBinaryOp(data, flavor, lhs, operator, rhs) {
125
94
  };
126
95
  }
127
96
  else {
128
- result = {
97
+ return {
129
98
  type: "RBinaryOp" /* RType.BinaryOp */,
130
- flavor,
131
99
  location,
132
100
  lhs: parsedLhs,
133
101
  rhs: parsedRhs,
@@ -140,23 +108,5 @@ function parseBinaryOp(data, flavor, lhs, operator, rhs) {
140
108
  }
141
109
  };
142
110
  }
143
- return (0, hooks_1.executeHook)(data.hooks.operators.onBinary.after, data, result);
144
- }
145
- function processLhsAndRhsForAssignment(opName, parsedLhs, parsedRhs) {
146
- const isRhs = opName === '->' || opName === '->>';
147
- const assigned = isRhs ? parsedRhs : parsedLhs;
148
- if (assigned.type !== "RString" /* RType.String */) {
149
- return [parsedLhs, parsedRhs];
150
- }
151
- // update the assigned value to be parsed as a symbol
152
- const result = {
153
- type: "RSymbol" /* RType.Symbol */,
154
- lexeme: assigned.lexeme,
155
- location: assigned.location,
156
- content: assigned.content.str,
157
- namespace: undefined,
158
- info: assigned.info
159
- };
160
- return isRhs ? [parsedLhs, result] : [result, parsedRhs];
161
111
  }
162
- //# sourceMappingURL=binary.js.map
112
+ //# sourceMappingURL=normalize-binary.js.map
@@ -0,0 +1,13 @@
1
+ import type { NormalizerData } from '../../normalizer-data';
2
+ import type { NamedXmlBasedJson } from '../../input-format';
3
+ import type { RNode } from '../../../../model/model';
4
+ /**
5
+ * Parses the construct as a {@link RUnaryOp}.
6
+ *
7
+ * @param data - The data used by the parser (see {@link NormalizerData})
8
+ * @param operator - The operator token
9
+ * @param operand - The operand of the unary operator
10
+ *
11
+ * @returns The parsed {@link RUnaryOp} or `undefined` if the given construct is not a unary operator
12
+ */
13
+ export declare function tryNormalizeUnary(data: NormalizerData, [operator, operand]: [NamedXmlBasedJson, NamedXmlBasedJson]): RNode | undefined;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.tryNormalizeUnary = void 0;
4
+ const parser_1 = require("../../../json/parser");
5
+ const normalize_meta_1 = require("../../normalize-meta");
6
+ const assert_1 = require("../../../../../../../util/assert");
7
+ const log_1 = require("../../../../../../../util/log");
8
+ const operators_1 = require("../../../../model/operators");
9
+ const normalize_single_node_1 = require("../structure/normalize-single-node");
10
+ /**
11
+ * Parses the construct as a {@link RUnaryOp}.
12
+ *
13
+ * @param data - The data used by the parser (see {@link NormalizerData})
14
+ * @param operator - The operator token
15
+ * @param operand - The operand of the unary operator
16
+ *
17
+ * @returns The parsed {@link RUnaryOp} or `undefined` if the given construct is not a unary operator
18
+ */
19
+ function tryNormalizeUnary(data, [operator, operand]) {
20
+ (0, log_1.expensiveTrace)(parser_1.parseLog, () => `unary op for ${operator.name} ${operand.name}`);
21
+ if (operators_1.UnaryOperatorsInRAst.has(operator.name)) {
22
+ return parseUnaryOp(data, operator, operand);
23
+ }
24
+ else {
25
+ return undefined;
26
+ }
27
+ }
28
+ exports.tryNormalizeUnary = tryNormalizeUnary;
29
+ function parseUnaryOp(data, operator, operand) {
30
+ const parsedOperand = (0, normalize_single_node_1.normalizeSingleNode)(data, operand);
31
+ (0, assert_1.guard)(parsedOperand.type !== "RDelimiter" /* RType.Delimiter */, 'unexpected under-sided unary op');
32
+ const operationName = (0, normalize_meta_1.retrieveOpName)(operator);
33
+ const { location, content } = (0, normalize_meta_1.retrieveMetaStructure)(operator.content);
34
+ return {
35
+ type: "RUnaryOp" /* RType.UnaryOp */,
36
+ location,
37
+ operator: operationName,
38
+ lexeme: content,
39
+ operand: parsedOperand,
40
+ info: {
41
+ fullRange: data.currentRange,
42
+ additionalTokens: [],
43
+ fullLexeme: data.currentLexeme
44
+ }
45
+ };
46
+ }
47
+ //# sourceMappingURL=normalize-unary.js.map
@@ -0,0 +1,11 @@
1
+ import type { NormalizerData } from '../../normalizer-data';
2
+ import type { XmlBasedJson } from '../../input-format';
3
+ import type { RComment } from '../../../../model/nodes/r-comment';
4
+ /**
5
+ * Normalize the given object as an R comment.
6
+ * This requires you to check the corresponding name beforehand.
7
+ *
8
+ * @param data - The data used by the parser (see {@link NormalizerData})
9
+ * @param obj - The json object to extract the meta-information from
10
+ */
11
+ export declare function normalizeComment(data: NormalizerData, obj: XmlBasedJson): RComment;
@@ -1,23 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizeComment = void 0;
4
- const meta_1 = require("../meta");
4
+ const normalize_meta_1 = require("../../normalize-meta");
5
5
  const assert_1 = require("../../../../../../../util/assert");
6
- const hooks_1 = require("../../hooks");
7
- const parser_1 = require("../../../json/parser");
8
6
  /**
9
7
  * Normalize the given object as an R comment.
10
8
  * This requires you to check the corresponding name beforehand.
11
9
  *
12
- * @param data - The data used by the parser (see {@link ParserData})
10
+ * @param data - The data used by the parser (see {@link NormalizerData})
13
11
  * @param obj - The json object to extract the meta-information from
14
12
  */
15
13
  function normalizeComment(data, obj) {
16
- parser_1.parseLog.debug('[comment]');
17
- obj = (0, hooks_1.executeHook)(data.hooks.other.onComment.before, data, obj);
18
- const { location, content } = (0, meta_1.retrieveMetaStructure)(obj);
14
+ const { location, content } = (0, normalize_meta_1.retrieveMetaStructure)(obj);
19
15
  (0, assert_1.guard)(content.startsWith('#'), 'comment must start with #');
20
- const result = {
16
+ return {
21
17
  type: "RComment" /* RType.Comment */,
22
18
  location,
23
19
  content: content.slice(1),
@@ -28,7 +24,6 @@ function normalizeComment(data, obj) {
28
24
  fullLexeme: content
29
25
  }
30
26
  };
31
- return (0, hooks_1.executeHook)(data.hooks.other.onComment.after, data, result);
32
27
  }
33
28
  exports.normalizeComment = normalizeComment;
34
- //# sourceMappingURL=comment.js.map
29
+ //# sourceMappingURL=normalize-comment.js.map
@@ -0,0 +1,13 @@
1
+ import type { NormalizerData } from '../../normalizer-data';
2
+ import type { XmlBasedJson } from '../../input-format';
3
+ import type { RLineDirective } from '../../../../model/nodes/r-line-directive';
4
+ import type { RComment } from '../../../../model/nodes/r-comment';
5
+ /**
6
+ * Normalize the given object as an R line directive (`#line <number> "<file>"`).
7
+ * This requires you to check the corresponding name beforehand.
8
+ * If the given object turns out to be no line directive, this returns a normal comment instead.
9
+ *
10
+ * @param data - The data used by the parser (see {@link NormalizerData})
11
+ * @param obj - The json object to extract the meta-information from
12
+ */
13
+ export declare function normalizeLineDirective(data: NormalizerData, obj: XmlBasedJson): RLineDirective | RComment;
@@ -1,29 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizeLineDirective = void 0;
4
- const meta_1 = require("../meta");
5
- const assert_1 = require("../../../../../../../util/assert");
6
- const hooks_1 = require("../../hooks");
7
4
  const parser_1 = require("../../../json/parser");
5
+ const normalize_meta_1 = require("../../normalize-meta");
6
+ const assert_1 = require("../../../../../../../util/assert");
8
7
  const LineDirectiveRegex = /^#line\s+(\d+)\s+"([^"]+)"\s*$/;
9
8
  /**
10
9
  * Normalize the given object as an R line directive (`#line <number> "<file>"`).
11
10
  * This requires you to check the corresponding name beforehand.
12
11
  * If the given object turns out to be no line directive, this returns a normal comment instead.
13
12
  *
14
- * @param data - The data used by the parser (see {@link ParserData})
13
+ * @param data - The data used by the parser (see {@link NormalizerData})
15
14
  * @param obj - The json object to extract the meta-information from
16
15
  */
17
16
  function normalizeLineDirective(data, obj) {
18
- parser_1.parseLog.debug('[line-directive]');
19
- obj = (0, hooks_1.executeHook)(data.hooks.other.onLineDirective.before, data, obj);
20
- const { location, content } = (0, meta_1.retrieveMetaStructure)(obj);
17
+ const { location, content } = (0, normalize_meta_1.retrieveMetaStructure)(obj);
21
18
  (0, assert_1.guard)(content.startsWith('#line'), 'line directive must start with #line');
22
19
  const match = LineDirectiveRegex.exec(content);
23
- let result;
24
20
  if (match === null) {
25
21
  parser_1.parseLog.debug(`[line-directive] does not match the regex ${LineDirectiveRegex.source} given ${JSON.stringify(content)}`);
26
- result = {
22
+ return {
27
23
  type: "RComment" /* RType.Comment */,
28
24
  location,
29
25
  lexeme: content,
@@ -36,7 +32,7 @@ function normalizeLineDirective(data, obj) {
36
32
  };
37
33
  }
38
34
  else {
39
- result = {
35
+ return {
40
36
  type: "RLineDirective" /* RType.LineDirective */,
41
37
  location,
42
38
  line: parseInt(match[1]),
@@ -49,7 +45,6 @@ function normalizeLineDirective(data, obj) {
49
45
  }
50
46
  };
51
47
  }
52
- return (0, hooks_1.executeHook)(data.hooks.other.onLineDirective.after, data, result);
53
48
  }
54
49
  exports.normalizeLineDirective = normalizeLineDirective;
55
- //# sourceMappingURL=line-directive.js.map
50
+ //# sourceMappingURL=normalize-line-directive.js.map
@@ -0,0 +1,3 @@
1
+ import type { NamedXmlBasedJson } from '../../input-format';
2
+ import type { RDelimiter } from '../../../../model/nodes/info/r-delimiter';
3
+ export declare function normalizeDelimiter(elem: NamedXmlBasedJson): RDelimiter;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeDelimiter = void 0;
4
+ const normalize_meta_1 = require("../../normalize-meta");
5
+ function normalizeDelimiter(elem) {
6
+ const { location, content } = (0, normalize_meta_1.retrieveMetaStructure)(elem.content);
7
+ return {
8
+ type: "RDelimiter" /* RType.Delimiter */,
9
+ location,
10
+ lexeme: content,
11
+ subtype: elem.name
12
+ };
13
+ }
14
+ exports.normalizeDelimiter = normalizeDelimiter;
15
+ //# sourceMappingURL=normalize-delimiter.js.map
@@ -0,0 +1,10 @@
1
+ import type { NamedXmlBasedJson, XmlBasedJson } from '../../input-format';
2
+ import type { NormalizerData } from '../../normalizer-data';
3
+ import type { RDelimiter } from '../../../../model/nodes/info/r-delimiter';
4
+ import type { RNode } from '../../../../model/model';
5
+ export declare function splitComments(tokens: readonly NamedXmlBasedJson[]): {
6
+ comments: NamedXmlBasedJson[];
7
+ others: NamedXmlBasedJson[];
8
+ };
9
+ export declare function normalizeExpressions(data: NormalizerData, tokens: readonly XmlBasedJson[] | readonly NamedXmlBasedJson[]): (RNode | RDelimiter)[];
10
+ export declare function parseNodesWithUnknownType(data: NormalizerData, mappedWithName: readonly NamedXmlBasedJson[]): (RNode | RDelimiter)[];