@eagleoutice/flowr 1.5.2 → 2.0.1

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 +50 -45
  324. package/reconstruct/reconstruct.d.ts +4 -2
  325. package/reconstruct/reconstruct.js +193 -185
  326. package/slicing/criterion/collect-all.d.ts +4 -3
  327. package/slicing/criterion/collect-all.js +5 -1
  328. package/slicing/criterion/filters/all-variables.js +14 -22
  329. package/slicing/criterion/parse.d.ts +4 -2
  330. package/slicing/criterion/parse.js +13 -11
  331. package/slicing/static/fingerprint.d.ts +5 -0
  332. package/slicing/static/fingerprint.js +17 -0
  333. package/slicing/static/slice-call.d.ts +10 -0
  334. package/slicing/static/slice-call.js +86 -0
  335. package/slicing/static/slicer-types.d.ts +33 -0
  336. package/slicing/static/slicer-types.js +3 -0
  337. package/slicing/static/static-slicer.d.ts +6 -24
  338. package/slicing/static/static-slicer.js +54 -155
  339. package/slicing/static/visiting-queue.d.ts +23 -0
  340. package/slicing/static/visiting-queue.js +53 -0
  341. package/statistics/features/common-syntax-probability.d.ts +29 -0
  342. package/statistics/features/common-syntax-probability.js +159 -0
  343. package/statistics/features/feature.d.ts +182 -0
  344. package/statistics/features/feature.js +39 -0
  345. package/statistics/features/post-processing.d.ts +12 -0
  346. package/statistics/features/post-processing.js +21 -0
  347. package/statistics/features/supported/assignments/assignments.d.ts +12 -0
  348. package/statistics/features/supported/assignments/assignments.js +55 -0
  349. package/statistics/features/supported/assignments/post-process.d.ts +3 -0
  350. package/statistics/features/supported/assignments/post-process.js +124 -0
  351. package/statistics/features/supported/comments/comments.d.ts +18 -0
  352. package/statistics/features/supported/comments/comments.js +133 -0
  353. package/statistics/features/supported/comments/post-process.d.ts +3 -0
  354. package/statistics/features/supported/comments/post-process.js +49 -0
  355. package/statistics/features/supported/control-flow/control-flow.d.ts +17 -0
  356. package/statistics/features/supported/control-flow/control-flow.js +68 -0
  357. package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
  358. package/statistics/features/supported/control-flow/post-process.js +64 -0
  359. package/statistics/features/supported/data-access/data-access.d.ts +15 -0
  360. package/statistics/features/supported/data-access/data-access.js +120 -0
  361. package/statistics/features/supported/data-access/post-process.d.ts +3 -0
  362. package/statistics/features/supported/data-access/post-process.js +106 -0
  363. package/statistics/features/supported/defined-functions/defined-functions.d.ts +34 -0
  364. package/statistics/features/supported/defined-functions/defined-functions.js +142 -0
  365. package/statistics/features/supported/defined-functions/post-process.d.ts +6 -0
  366. package/statistics/features/supported/defined-functions/post-process.js +169 -0
  367. package/statistics/features/supported/expression-list/expression-list.d.ts +9 -0
  368. package/statistics/features/supported/expression-list/expression-list.js +36 -0
  369. package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
  370. package/statistics/features/supported/expression-list/post-process.js +43 -0
  371. package/statistics/features/supported/loops/loops.d.ts +20 -0
  372. package/statistics/features/supported/loops/loops.js +79 -0
  373. package/statistics/features/supported/loops/post-process.d.ts +3 -0
  374. package/statistics/features/supported/loops/post-process.js +71 -0
  375. package/statistics/features/supported/used-functions/post-process.d.ts +6 -0
  376. package/statistics/features/supported/used-functions/post-process.js +178 -0
  377. package/statistics/features/supported/used-functions/used-functions.d.ts +24 -0
  378. package/statistics/features/supported/used-functions/used-functions.js +97 -0
  379. package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
  380. package/statistics/features/supported/used-packages/post-process.js +120 -0
  381. package/statistics/features/supported/used-packages/used-packages.d.ts +16 -0
  382. package/statistics/features/supported/used-packages/used-packages.js +130 -0
  383. package/statistics/features/supported/values/post-process.d.ts +3 -0
  384. package/statistics/features/supported/values/post-process.js +71 -0
  385. package/statistics/features/supported/values/values.d.ts +14 -0
  386. package/statistics/features/supported/values/values.js +101 -0
  387. package/statistics/features/supported/variables/post-process.d.ts +9 -0
  388. package/statistics/features/supported/variables/post-process.js +121 -0
  389. package/statistics/features/supported/variables/variables.d.ts +15 -0
  390. package/statistics/features/supported/variables/variables.js +60 -0
  391. package/statistics/meta-statistics.d.ts +33 -0
  392. package/statistics/meta-statistics.js +17 -0
  393. package/statistics/output/file-provider.d.ts +37 -0
  394. package/statistics/output/file-provider.js +97 -0
  395. package/statistics/output/print-stats.d.ts +17 -0
  396. package/statistics/output/print-stats.js +69 -0
  397. package/statistics/output/statistics-file.d.ts +37 -0
  398. package/statistics/output/statistics-file.js +69 -0
  399. package/statistics/statistics.d.ts +28 -0
  400. package/statistics/statistics.js +108 -0
  401. package/statistics/summarizer/auto-detect.d.ts +2 -0
  402. package/statistics/summarizer/auto-detect.js +32 -0
  403. package/statistics/summarizer/first-phase/process.d.ts +6 -0
  404. package/statistics/summarizer/first-phase/process.js +81 -0
  405. package/statistics/summarizer/post-process/clusterer.d.ts +26 -0
  406. package/statistics/summarizer/post-process/clusterer.js +43 -0
  407. package/statistics/summarizer/post-process/file-based-count.d.ts +17 -0
  408. package/statistics/summarizer/post-process/file-based-count.js +49 -0
  409. package/statistics/summarizer/post-process/histogram.d.ts +59 -0
  410. package/statistics/summarizer/post-process/histogram.js +128 -0
  411. package/statistics/summarizer/post-process/post-process-output.d.ts +16 -0
  412. package/statistics/summarizer/post-process/post-process-output.js +105 -0
  413. package/statistics/summarizer/second-phase/process.d.ts +11 -0
  414. package/statistics/summarizer/second-phase/process.js +116 -0
  415. package/statistics/summarizer/summarizer.d.ts +35 -0
  416. package/statistics/summarizer/summarizer.js +135 -0
  417. package/util/ansi.d.ts +2 -2
  418. package/util/ansi.js +2 -2
  419. package/util/arrays.d.ts +11 -1
  420. package/util/arrays.js +34 -1
  421. package/util/assert.d.ts +1 -0
  422. package/util/assert.js +5 -1
  423. package/util/cfg/cfg.d.ts +3 -2
  424. package/util/cfg/cfg.js +17 -28
  425. package/util/cfg/visitor.d.ts +1 -1
  426. package/util/defaultmap.d.ts +1 -1
  427. package/util/defaultmap.js +1 -1
  428. package/util/diff.d.ts +4 -4
  429. package/util/files.d.ts +2 -2
  430. package/util/files.js +1 -1
  431. package/util/log.d.ts +1 -0
  432. package/util/log.js +7 -1
  433. package/util/logic.d.ts +1 -0
  434. package/util/logic.js +3 -0
  435. package/util/mermaid/ast.d.ts +1 -1
  436. package/util/mermaid/ast.js +2 -2
  437. package/util/mermaid/cfg.d.ts +1 -1
  438. package/util/mermaid/dfg.d.ts +34 -8
  439. package/util/mermaid/dfg.js +99 -70
  440. package/util/mermaid/mermaid.d.ts +1 -1
  441. package/util/mermaid/mermaid.js +6 -7
  442. package/util/objects.js +4 -0
  443. package/util/quads.d.ts +3 -3
  444. package/util/quads.js +0 -1
  445. package/util/range.d.ts +27 -14
  446. package/util/range.js +31 -27
  447. package/util/version.js +1 -1
  448. package/core/index.d.ts +0 -4
  449. package/core/index.js +0 -23
  450. package/core/input.d.ts +0 -42
  451. package/core/output.d.ts +0 -15
  452. package/core/slicer.d.ts +0 -124
  453. package/core/slicer.js +0 -227
  454. package/core/steps.d.ts +0 -508
  455. package/core/steps.js +0 -100
  456. package/dataflow/environments/index.d.ts +0 -7
  457. package/dataflow/environments/index.js +0 -23
  458. package/dataflow/environments/register.js +0 -40
  459. package/dataflow/environments/scopes.d.ts +0 -6
  460. package/dataflow/environments/scopes.js +0 -6
  461. package/dataflow/graph/index.d.ts +0 -4
  462. package/dataflow/graph/index.js +0 -21
  463. package/dataflow/index.d.ts +0 -5
  464. package/dataflow/index.js +0 -24
  465. package/dataflow/internal/info.d.ts +0 -21
  466. package/dataflow/internal/info.js +0 -16
  467. package/dataflow/internal/process/access.d.ts +0 -4
  468. package/dataflow/internal/process/access.js +0 -53
  469. package/dataflow/internal/process/expression-list.d.ts +0 -8
  470. package/dataflow/internal/process/expression-list.js +0 -144
  471. package/dataflow/internal/process/functions/argument.d.ts +0 -8
  472. package/dataflow/internal/process/functions/exit-points.d.ts +0 -2
  473. package/dataflow/internal/process/functions/exit-points.js +0 -121
  474. package/dataflow/internal/process/functions/function-call.d.ts +0 -5
  475. package/dataflow/internal/process/functions/function-call.js +0 -105
  476. package/dataflow/internal/process/functions/function-definition.d.ts +0 -4
  477. package/dataflow/internal/process/functions/function-definition.js +0 -176
  478. package/dataflow/internal/process/functions/source.d.ts +0 -8
  479. package/dataflow/internal/process/functions/source.js +0 -81
  480. package/dataflow/internal/process/if-then-else.d.ts +0 -4
  481. package/dataflow/internal/process/if-then-else.js +0 -56
  482. package/dataflow/internal/process/loops/for-loop.d.ts +0 -4
  483. package/dataflow/internal/process/loops/for-loop.js +0 -54
  484. package/dataflow/internal/process/loops/repeat-loop.d.ts +0 -4
  485. package/dataflow/internal/process/loops/repeat-loop.js +0 -21
  486. package/dataflow/internal/process/loops/while-loop.d.ts +0 -4
  487. package/dataflow/internal/process/loops/while-loop.js +0 -31
  488. package/dataflow/internal/process/operators/assignment.d.ts +0 -4
  489. package/dataflow/internal/process/operators/assignment.js +0 -129
  490. package/dataflow/internal/process/operators/non-assignment-binary-op.d.ts +0 -4
  491. package/dataflow/internal/process/operators/non-assignment-binary-op.js +0 -25
  492. package/dataflow/internal/process/operators/pipe.d.ts +0 -4
  493. package/dataflow/internal/process/operators/pipe.js +0 -46
  494. package/dataflow/internal/process/operators/unary-op.d.ts +0 -4
  495. package/dataflow/internal/process/operators/unary-op.js +0 -10
  496. package/dataflow/internal/process/symbol.d.ts +0 -4
  497. package/dataflow/internal/process/symbol.js +0 -21
  498. package/dataflow/internal/process/uninteresting-leaf.d.ts +0 -3
  499. package/dataflow/internal/process/uninteresting-leaf.js +0 -9
  500. package/index.d.ts +0 -4
  501. package/index.js +0 -21
  502. package/r-bridge/index.d.ts +0 -11
  503. package/r-bridge/index.js +0 -28
  504. package/r-bridge/lang-4.x/ast/index.d.ts +0 -3
  505. package/r-bridge/lang-4.x/ast/index.js +0 -22
  506. package/r-bridge/lang-4.x/ast/model/index.d.ts +0 -6
  507. package/r-bridge/lang-4.x/ast/model/index.js +0 -23
  508. package/r-bridge/lang-4.x/ast/model/nodes/index.d.ts +0 -21
  509. package/r-bridge/lang-4.x/ast/model/nodes/index.js +0 -38
  510. package/r-bridge/lang-4.x/ast/model/nodes/info/index.d.ts +0 -13
  511. package/r-bridge/lang-4.x/ast/model/nodes/info/index.js +0 -27
  512. package/r-bridge/lang-4.x/ast/model/processing/index.d.ts +0 -5
  513. package/r-bridge/lang-4.x/ast/model/processing/index.js +0 -22
  514. package/r-bridge/lang-4.x/ast/parser/xml/hooks.d.ts +0 -292
  515. package/r-bridge/lang-4.x/ast/parser/xml/hooks.js +0 -136
  516. package/r-bridge/lang-4.x/ast/parser/xml/index.d.ts +0 -3
  517. package/r-bridge/lang-4.x/ast/parser/xml/index.js +0 -20
  518. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/index.d.ts +0 -2
  519. package/r-bridge/lang-4.x/ast/parser/xml/internal/control/index.js +0 -19
  520. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/expression.d.ts +0 -10
  521. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/expression.js +0 -65
  522. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/index.d.ts +0 -1
  523. package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/index.js +0 -18
  524. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/definition.d.ts +0 -12
  525. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/index.d.ts +0 -2
  526. package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/index.js +0 -20
  527. package/r-bridge/lang-4.x/ast/parser/xml/internal/index.d.ts +0 -9
  528. package/r-bridge/lang-4.x/ast/parser/xml/internal/index.js +0 -26
  529. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/break.d.ts +0 -4
  530. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/for.d.ts +0 -4
  531. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/index.d.ts +0 -5
  532. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/index.js +0 -22
  533. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/next.d.ts +0 -4
  534. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/repeat.d.ts +0 -13
  535. package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/while.d.ts +0 -4
  536. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/index.d.ts +0 -3
  537. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/index.js +0 -20
  538. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/special.d.ts +0 -6
  539. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/special.js +0 -24
  540. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/unary.d.ts +0 -13
  541. package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/unary.js +0 -59
  542. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/comment.d.ts +0 -11
  543. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/index.d.ts +0 -1
  544. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/index.js +0 -18
  545. package/r-bridge/lang-4.x/ast/parser/xml/internal/other/line-directive.d.ts +0 -12
  546. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/elements.d.ts +0 -10
  547. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/elements.js +0 -159
  548. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/index.d.ts +0 -3
  549. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/index.js +0 -20
  550. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/root.d.ts +0 -4
  551. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/root.js +0 -33
  552. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/single-element.d.ts +0 -13
  553. package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/single-element.js +0 -64
  554. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/index.d.ts +0 -3
  555. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/index.js +0 -20
  556. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/number.d.ts +0 -13
  557. package/r-bridge/lang-4.x/ast/parser/xml/internal/values/string.d.ts +0 -11
  558. package/r-bridge/lang-4.x/index.d.ts +0 -2
  559. package/r-bridge/lang-4.x/index.js +0 -19
  560. package/slicing/criterion/filters/index.d.ts +0 -1
  561. package/slicing/criterion/filters/index.js +0 -18
  562. package/slicing/criterion/index.d.ts +0 -3
  563. package/slicing/criterion/index.js +0 -20
  564. package/slicing/index.d.ts +0 -3
  565. package/slicing/index.js +0 -20
  566. package/slicing/static/index.d.ts +0 -1
  567. package/slicing/static/index.js +0 -18
  568. package/util/mermaid/index.d.ts +0 -3
  569. package/util/mermaid/index.js +0 -20
  570. /package/{r-bridge/lang-4.x/ast/parser/xml → benchmark/summarizer}/data.js +0 -0
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseNodesWithUnknownType = exports.normalizeExpressions = exports.splitComments = void 0;
4
+ const normalize_single_node_1 = require("./normalize-single-node");
5
+ const parser_1 = require("../../../json/parser");
6
+ const normalize_meta_1 = require("../../normalize-meta");
7
+ const log_1 = require("../../../../../../../util/log");
8
+ const assert_1 = require("../../../../../../../util/assert");
9
+ const json_1 = require("../../../../../../../util/json");
10
+ const normalize_unary_1 = require("../operators/normalize-unary");
11
+ const normalize_repeat_1 = require("../loops/normalize-repeat");
12
+ const normalize_binary_1 = require("../operators/normalize-binary");
13
+ const normalize_for_1 = require("../loops/normalize-for");
14
+ const normalize_symbol_1 = require("../values/normalize-symbol");
15
+ const normalize_if_then_1 = require("../control/normalize-if-then");
16
+ const normalize_while_1 = require("../loops/normalize-while");
17
+ const normalize_if_then_else_1 = require("../control/normalize-if-then-else");
18
+ const normalize_comment_1 = require("../other/normalize-comment");
19
+ function normalizeMappedWithoutSemicolonBasedOnType(mappedWithName, data) {
20
+ let result = undefined;
21
+ switch (mappedWithName.length) {
22
+ case 1:
23
+ result = (0, normalize_single_node_1.normalizeSingleNode)(data, mappedWithName[0]);
24
+ break;
25
+ case 2:
26
+ result = (0, normalize_unary_1.tryNormalizeUnary)(data, mappedWithName)
27
+ ?? (0, normalize_repeat_1.tryNormalizeRepeat)(data, mappedWithName);
28
+ break;
29
+ case 3:
30
+ result = (0, normalize_binary_1.tryNormalizeBinary)(data, mappedWithName)
31
+ ?? (0, normalize_for_1.tryNormalizeFor)(data, mappedWithName)
32
+ ?? (0, normalize_symbol_1.tryNormalizeSymbol)(data, mappedWithName);
33
+ break;
34
+ case 5:
35
+ result = (0, normalize_if_then_1.tryNormalizeIfThen)(data, mappedWithName)
36
+ ?? (0, normalize_while_1.tryNormalizeWhile)(data, mappedWithName);
37
+ break;
38
+ case 7:
39
+ result = (0, normalize_if_then_else_1.tryNormalizeIfThenElse)(data, mappedWithName);
40
+ break;
41
+ }
42
+ // otherwise perform default parsing
43
+ return result !== undefined ? [result] : parseNodesWithUnknownType(data, mappedWithName);
44
+ }
45
+ function splitComments(tokens) {
46
+ const comments = [];
47
+ const others = [];
48
+ for (const elem of tokens) {
49
+ if (elem.name === "COMMENT" /* RawRType.Comment */) {
50
+ comments.push(elem);
51
+ }
52
+ else {
53
+ others.push(elem);
54
+ }
55
+ }
56
+ return { comments, others };
57
+ }
58
+ exports.splitComments = splitComments;
59
+ function splitExprs(tokens) {
60
+ let last = 0, i = 0;
61
+ let lastExpr = false;
62
+ const segments = [];
63
+ for (const token of tokens) {
64
+ if (token.name === ";" /* RawRType.Semicolon */) {
65
+ segments.push(tokens.slice(last, i));
66
+ lastExpr = false;
67
+ last = i + 1;
68
+ }
69
+ else {
70
+ const thisExpr = token.name === "expr" /* RawRType.Expression */ || token.name === "expr_or_assign_or_help" /* RawRType.ExprOfAssignOrHelp */;
71
+ if (thisExpr && lastExpr) {
72
+ if (i > last) {
73
+ segments.push(tokens.slice(last, i));
74
+ }
75
+ segments.push([tokens[i]]);
76
+ last = i + 1;
77
+ }
78
+ lastExpr = thisExpr;
79
+ }
80
+ i++;
81
+ }
82
+ if (last < tokens.length) {
83
+ segments.push(tokens.slice(last, tokens.length));
84
+ }
85
+ return segments;
86
+ }
87
+ /**
88
+ * Handles semicolons within _and_ braces at the start and end of the expression
89
+ * @param raw - The tokens to split
90
+ */
91
+ function handleExpressionList(raw) {
92
+ if (raw.length === 0) {
93
+ return { segments: [], comments: [], braces: undefined };
94
+ }
95
+ const { comments, others: tokens } = splitComments(raw);
96
+ const first = tokens[0].name;
97
+ if (first === "{" /* RawRType.BraceLeft */) {
98
+ const endType = tokens[tokens.length - 1].name;
99
+ (0, assert_1.guard)(endType === "}" /* RawRType.BraceRight */, () => `expected a brace at the end of the expression list as well, but ${endType} :: ${JSON.stringify(tokens[tokens.length - 1], json_1.jsonReplacer)}`);
100
+ return {
101
+ segments: [tokens.slice(1, tokens.length - 1)],
102
+ comments,
103
+ braces: [tokens[0], tokens[tokens.length - 1]]
104
+ };
105
+ }
106
+ else if (first === "(" /* RawRType.ParenLeft */) {
107
+ const endType = tokens[tokens.length - 1].name;
108
+ (0, assert_1.guard)(endType === ")" /* RawRType.ParenRight */, () => `expected a parenthesis at the end of the expression list as well, but ${endType} :: ${JSON.stringify(tokens[tokens.length - 1], json_1.jsonReplacer)}`);
109
+ return {
110
+ segments: [tokens.slice(1, tokens.length - 1)],
111
+ comments,
112
+ braces: [tokens[0], tokens[tokens.length - 1]]
113
+ };
114
+ }
115
+ else {
116
+ return { segments: splitExprs(tokens), comments, braces: undefined };
117
+ }
118
+ }
119
+ function processBraces([start, end], processed, comments, data) {
120
+ const [newStart, newEnd] = [(0, normalize_symbol_1.tryNormalizeSymbol)(data, [start]), (0, normalize_symbol_1.tryNormalizeSymbol)(data, [end])];
121
+ (0, assert_1.guard)(newStart !== undefined && newEnd !== undefined, () => `expected both start and end to be symbols, but ${JSON.stringify(start, json_1.jsonReplacer)} :: ${JSON.stringify(end, json_1.jsonReplacer)}`);
122
+ return {
123
+ type: "RExpressionList" /* RType.ExpressionList */,
124
+ children: processed,
125
+ grouping: [newStart, newEnd],
126
+ lexeme: undefined,
127
+ location: undefined,
128
+ info: {
129
+ additionalTokens: comments,
130
+ }
131
+ };
132
+ }
133
+ function normalizeExpressions(data, tokens) {
134
+ if (tokens.length === 0) {
135
+ parser_1.parseLog.warn('no children received, skipping');
136
+ return [];
137
+ }
138
+ let mappedWithName = tokens[0].name ? tokens : (0, normalize_meta_1.getWithTokenType)(tokens);
139
+ (0, log_1.expensiveTrace)(log_1.log, () => `[parseBasedOnType] names: [${mappedWithName.map(({ name }) => name).join(', ')}]`);
140
+ let parsedComments = [];
141
+ if (mappedWithName.length > 1) {
142
+ // iterate over types, find all semicolons, and segment the tokens based on them.
143
+ // we could potentially optimize as not all expr may have semicolons but not for now
144
+ const { segments, braces, comments } = handleExpressionList(mappedWithName);
145
+ parsedComments = comments.map(c => (0, normalize_comment_1.normalizeComment)(data, c.content));
146
+ if (segments.length > 1 || braces) {
147
+ const processed = segments.flatMap(s => normalizeExpressions(data, s));
148
+ (0, assert_1.guard)(!processed.some(x => x.type === "RDelimiter" /* RType.Delimiter */), () => `expected no delimiter tokens in ${JSON.stringify(processed)}`);
149
+ if (braces) {
150
+ return [processBraces(braces, processed, parsedComments, data)];
151
+ }
152
+ else if (processed.length > 0) {
153
+ if (parsedComments) {
154
+ processed[0].info.additionalTokens ??= [];
155
+ processed[0].info.additionalTokens.push(...parsedComments);
156
+ }
157
+ return processed;
158
+ }
159
+ else {
160
+ return parsedComments;
161
+ }
162
+ }
163
+ /*
164
+ * if splitOnSemicolon.length === 1, we can continue with the normal parsing, but we may have had a trailing semicolon, with this, it is removed as well.
165
+ * splitOnSemicolon.length === 0 is not possible, as we would have had an empty array before, split does not add elements.
166
+ */
167
+ mappedWithName = segments[0];
168
+ }
169
+ return [...parsedComments, ...normalizeMappedWithoutSemicolonBasedOnType(mappedWithName, data)];
170
+ }
171
+ exports.normalizeExpressions = normalizeExpressions;
172
+ function parseNodesWithUnknownType(data, mappedWithName) {
173
+ const parsedNodes = [];
174
+ // used to indicate the new root node of this set of nodes
175
+ for (const elem of mappedWithName) {
176
+ const retrieved = (0, normalize_single_node_1.normalizeSingleNode)(data, elem);
177
+ parsedNodes.push(retrieved);
178
+ }
179
+ return parsedNodes;
180
+ }
181
+ exports.parseNodesWithUnknownType = parseNodesWithUnknownType;
182
+ //# sourceMappingURL=normalize-expressions.js.map
@@ -0,0 +1,4 @@
1
+ import type { NormalizerData } from '../../normalizer-data';
2
+ import type { XmlBasedJson } from '../../input-format';
3
+ import type { RExpressionList } from '../../../../model/nodes/r-expression-list';
4
+ export declare function normalizeRootObjToAst(data: NormalizerData, obj: XmlBasedJson): RExpressionList;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeRootObjToAst = void 0;
4
+ const input_format_1 = require("../../input-format");
5
+ const normalize_meta_1 = require("../../normalize-meta");
6
+ const normalize_expressions_1 = require("./normalize-expressions");
7
+ const log_1 = require("../../../../../../../util/log");
8
+ const arrays_1 = require("../../../../../../../util/arrays");
9
+ function normalizeRootObjToAst(data, obj) {
10
+ const exprContent = (0, input_format_1.getKeyGuarded)(obj, "exprlist" /* RawRType.ExpressionList */);
11
+ (0, normalize_meta_1.assureTokenType)(exprContent, "exprlist" /* RawRType.ExpressionList */);
12
+ let parsedChildren = [];
13
+ if (input_format_1.childrenKey in exprContent) {
14
+ const children = (0, input_format_1.getKeyGuarded)(exprContent, input_format_1.childrenKey);
15
+ parsedChildren = (0, normalize_expressions_1.normalizeExpressions)(data, children);
16
+ }
17
+ else {
18
+ log_1.log.debug('no children found, assume empty input');
19
+ }
20
+ const [delimiters, nodes] = (0, arrays_1.partition)(parsedChildren, x => x.type === "RDelimiter" /* RType.Delimiter */ || x.type === "RComment" /* RType.Comment */);
21
+ return {
22
+ type: "RExpressionList" /* RType.ExpressionList */,
23
+ children: nodes,
24
+ grouping: undefined,
25
+ lexeme: undefined,
26
+ info: {
27
+ fullRange: data.currentRange,
28
+ additionalTokens: delimiters,
29
+ fullLexeme: data.currentLexeme
30
+ }
31
+ };
32
+ }
33
+ exports.normalizeRootObjToAst = normalizeRootObjToAst;
34
+ //# sourceMappingURL=normalize-root.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
+ import type { RDelimiter } from '../../../../model/nodes/info/r-delimiter';
5
+ /**
6
+ * Parses a single structure in the ast based on its type (e.g., a string, a number, a symbol, ...)
7
+ *
8
+ * @param data - The data used by the parser (see {@link NormalizerData})
9
+ * @param elem - The element to parse
10
+ *
11
+ * @returns The parsed element as an `RNode` or an `RDelimiter` if it is such.
12
+ */
13
+ export declare function normalizeSingleNode(data: NormalizerData, elem: NamedXmlBasedJson): RNode | RDelimiter;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeSingleNode = void 0;
4
+ const normalize_meta_1 = require("../../normalize-meta");
5
+ const input_format_1 = require("../../input-format");
6
+ const normalize_line_directive_1 = require("../other/normalize-line-directive");
7
+ const assert_1 = require("../../../../../../../util/assert");
8
+ const normalize_delimiter_1 = require("./normalize-delimiter");
9
+ const normalize_comment_1 = require("../other/normalize-comment");
10
+ const normalize_expression_1 = require("../expression/normalize-expression");
11
+ const normalize_number_1 = require("../values/normalize-number");
12
+ const normalize_string_1 = require("../values/normalize-string");
13
+ const normalize_break_1 = require("../loops/normalize-break");
14
+ const normalize_next_1 = require("../loops/normalize-next");
15
+ const normalize_symbol_1 = require("../values/normalize-symbol");
16
+ /**
17
+ * Parses a single structure in the ast based on its type (e.g., a string, a number, a symbol, ...)
18
+ *
19
+ * @param data - The data used by the parser (see {@link NormalizerData})
20
+ * @param elem - The element to parse
21
+ *
22
+ * @returns The parsed element as an `RNode` or an `RDelimiter` if it is such.
23
+ */
24
+ function normalizeSingleNode(data, elem) {
25
+ switch (elem.name) {
26
+ case "(" /* RawRType.ParenLeft */:
27
+ case ")" /* RawRType.ParenRight */:
28
+ case "{" /* RawRType.BraceLeft */:
29
+ case "}" /* RawRType.BraceRight */:
30
+ return (0, normalize_delimiter_1.normalizeDelimiter)(elem);
31
+ case "COMMENT" /* RawRType.Comment */:
32
+ return (0, normalize_comment_1.normalizeComment)(data, elem.content);
33
+ case "LINE_DIRECTIVE" /* RawRType.LineDirective */:
34
+ return (0, normalize_line_directive_1.normalizeLineDirective)(data, elem.content);
35
+ case "exprlist" /* RawRType.ExpressionList */:
36
+ case "expr" /* RawRType.Expression */:
37
+ case "expr_or_assign_or_help" /* RawRType.ExprOfAssignOrHelp */:
38
+ return (0, normalize_expression_1.normalizeExpression)(data, elem.content);
39
+ case "NUM_CONST" /* RawRType.NumericConst */:
40
+ return (0, normalize_number_1.normalizeNumber)(data, elem.content);
41
+ case "STR_CONST" /* RawRType.StringConst */:
42
+ return (0, normalize_string_1.normalizeString)(data, elem.content);
43
+ case "BREAK" /* RawRType.Break */:
44
+ return (0, normalize_break_1.normalizeBreak)(data, elem.content);
45
+ case "NEXT" /* RawRType.Next */:
46
+ return (0, normalize_next_1.normalizeNext)(data, elem.content);
47
+ case "SYMBOL" /* RawRType.Symbol */:
48
+ case "SLOT" /* RawRType.Slot */:
49
+ case "NULL_CONST" /* RawRType.NullConst */: {
50
+ const symbol = (0, normalize_symbol_1.tryNormalizeSymbol)(data, (0, normalize_meta_1.getWithTokenType)([elem.content]));
51
+ (0, assert_1.guard)(symbol !== undefined, () => `should have been parsed to a symbol but was ${JSON.stringify(symbol)}`);
52
+ return symbol;
53
+ }
54
+ default:
55
+ throw new input_format_1.XmlParseError(`unknown type ${elem.name} for ${JSON.stringify(elem)} in ${JSON.stringify(data)}`);
56
+ }
57
+ }
58
+ exports.normalizeSingleNode = normalizeSingleNode;
59
+ //# sourceMappingURL=normalize-single-node.js.map
@@ -0,0 +1,16 @@
1
+ import type { NormalizerData } from '../../normalizer-data';
2
+ import type { XmlBasedJson } from '../../input-format';
3
+ import type { RNa } from '../../../../../convert-values';
4
+ import type { RNumber } from '../../../../model/nodes/r-number';
5
+ import type { RLogical } from '../../../../model/nodes/r-logical';
6
+ import type { RSymbol } from '../../../../model/nodes/r-symbol';
7
+ import type { NoInfo } from '../../../../model/model';
8
+ /**
9
+ * Normalize the given object as a R number (see {@link number2ts}), supporting booleans (see {@link boolean2ts}),
10
+ * and special values.
11
+ * This requires you to check the corresponding name beforehand.
12
+ *
13
+ * @param data - The data used by the parser (see {@link NormalizerData})
14
+ * @param obj - The json object to extract the meta-information from
15
+ */
16
+ export declare function normalizeNumber(data: NormalizerData, obj: XmlBasedJson): RNumber | RLogical | RSymbol<NoInfo, typeof RNa>;
@@ -1,22 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizeNumber = void 0;
4
- const values_1 = require("../../../../../values");
5
- const meta_1 = require("../meta");
6
- const hooks_1 = require("../../hooks");
7
- const parser_1 = require("../../../json/parser");
4
+ const convert_values_1 = require("../../../../../convert-values");
5
+ const normalize_meta_1 = require("../../normalize-meta");
8
6
  /**
9
7
  * Normalize the given object as a R number (see {@link number2ts}), supporting booleans (see {@link boolean2ts}),
10
8
  * and special values.
11
9
  * This requires you to check the corresponding name beforehand.
12
10
  *
13
- * @param data - The data used by the parser (see {@link ParserData})
11
+ * @param data - The data used by the parser (see {@link NormalizerData})
14
12
  * @param obj - The json object to extract the meta-information from
15
13
  */
16
14
  function normalizeNumber(data, obj) {
17
- parser_1.parseLog.debug('[number]');
18
- obj = (0, hooks_1.executeHook)(data.hooks.values.onNumber.before, data, obj);
19
- const { location, content } = (0, meta_1.retrieveMetaStructure)(obj);
15
+ const { location, content } = (0, normalize_meta_1.retrieveMetaStructure)(obj);
20
16
  const common = {
21
17
  location,
22
18
  lexeme: content,
@@ -26,31 +22,29 @@ function normalizeNumber(data, obj) {
26
22
  fullLexeme: data.currentLexeme
27
23
  }
28
24
  };
29
- let result;
30
25
  /* the special symbol */
31
- if ((0, values_1.isNA)(content)) {
32
- result = {
26
+ if ((0, convert_values_1.isNA)(content)) {
27
+ return {
33
28
  ...common,
34
29
  namespace: undefined,
35
30
  type: "RSymbol" /* RType.Symbol */,
36
31
  content
37
32
  };
38
33
  }
39
- else if ((0, values_1.isBoolean)(content)) {
40
- result = {
34
+ else if ((0, convert_values_1.isBoolean)(content)) {
35
+ return {
41
36
  ...common,
42
37
  type: "RLogical" /* RType.Logical */,
43
- content: (0, values_1.boolean2ts)(content)
38
+ content: (0, convert_values_1.boolean2ts)(content)
44
39
  };
45
40
  }
46
41
  else {
47
- result = {
42
+ return {
48
43
  ...common,
49
44
  type: "RNumber" /* RType.Number */,
50
- content: (0, values_1.number2ts)(content)
45
+ content: (0, convert_values_1.number2ts)(content)
51
46
  };
52
47
  }
53
- return (0, hooks_1.executeHook)(data.hooks.values.onNumber.after, data, result);
54
48
  }
55
49
  exports.normalizeNumber = normalizeNumber;
56
- //# sourceMappingURL=number.js.map
50
+ //# sourceMappingURL=normalize-number.js.map
@@ -0,0 +1,11 @@
1
+ import type { NormalizerData } from '../../normalizer-data';
2
+ import type { XmlBasedJson } from '../../input-format';
3
+ import type { RString } from '../../../../model/nodes/r-string';
4
+ /**
5
+ * Normalize the given object as a R string (see {@link string2ts}).
6
+ * This requires you to check the corresponding name beforehand.
7
+ *
8
+ * @param data - The data used by the parser (see {@link NormalizerData})
9
+ * @param obj - The json object to extract the meta-information from
10
+ */
11
+ export declare function normalizeString(data: NormalizerData, obj: XmlBasedJson): RString;
@@ -1,22 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizeString = void 0;
4
- const meta_1 = require("../meta");
5
- const values_1 = require("../../../../../values");
6
- const hooks_1 = require("../../hooks");
4
+ const normalize_meta_1 = require("../../normalize-meta");
7
5
  const assert_1 = require("../../../../../../../util/assert");
8
- const parser_1 = require("../../../json/parser");
6
+ const convert_values_1 = require("../../../../../convert-values");
9
7
  /**
10
8
  * Normalize the given object as a R string (see {@link string2ts}).
11
9
  * This requires you to check the corresponding name beforehand.
12
10
  *
13
- * @param data - The data used by the parser (see {@link ParserData})
11
+ * @param data - The data used by the parser (see {@link NormalizerData})
14
12
  * @param obj - The json object to extract the meta-information from
15
13
  */
16
14
  function normalizeString(data, obj) {
17
- parser_1.parseLog.debug('[string]');
18
- obj = (0, hooks_1.executeHook)(data.hooks.values.onString.before, data, obj);
19
- const { location, content } = (0, meta_1.retrieveMetaStructure)(obj);
15
+ const { location, content } = (0, normalize_meta_1.retrieveMetaStructure)(obj);
20
16
  // based on https://www.rdocumentation.org/packages/utils/versions/3.6.2/topics/getParseData we do not get strings with 1000 characters or more within the text field.
21
17
  // therefore, we recover the full string from the surrounding expr lexeme field
22
18
  let stringContent = content;
@@ -24,10 +20,10 @@ function normalizeString(data, obj) {
24
20
  (0, assert_1.guard)(data.currentLexeme !== undefined, 'need current lexeme wrapper for too long strings as they are not stored by the R parser post-processor');
25
21
  stringContent = data.currentLexeme;
26
22
  }
27
- const result = {
23
+ return {
28
24
  type: "RString" /* RType.String */,
29
25
  location,
30
- content: (0, values_1.string2ts)(stringContent),
26
+ content: (0, convert_values_1.string2ts)(stringContent),
31
27
  lexeme: stringContent,
32
28
  info: {
33
29
  fullRange: data.currentRange,
@@ -35,7 +31,6 @@ function normalizeString(data, obj) {
35
31
  fullLexeme: data.currentLexeme
36
32
  }
37
33
  };
38
- return (0, hooks_1.executeHook)(data.hooks.values.onString.after, data, result);
39
34
  }
40
35
  exports.normalizeString = normalizeString;
41
- //# sourceMappingURL=string.js.map
36
+ //# sourceMappingURL=normalize-string.js.map
@@ -1,14 +1,14 @@
1
+ import type { NormalizerData } from '../../normalizer-data';
1
2
  import type { NamedXmlBasedJson } from '../../input-format';
2
- import type { RSymbol } from '../../../../model';
3
- import type { ParserData } from '../../data';
3
+ import type { RSymbol } from '../../../../model/nodes/r-symbol';
4
4
  /**
5
5
  * Normalize the given object as an R symbol (incorporating namespace information).
6
6
  * <p>
7
7
  * The special symbols `T` and `F` are parsed as logic values.
8
8
  *
9
- * @param data - The data used by the parser (see {@link ParserData})
9
+ * @param data - The data used by the parser (see {@link NormalizerData})
10
10
  * @param objs - The json object to extract the meta-information from
11
11
  *
12
12
  * @returns The parsed symbol (with populated namespace information) or `undefined` if the given object is not a symbol.
13
13
  */
14
- export declare function tryNormalizeSymbol(data: ParserData, objs: NamedXmlBasedJson[]): RSymbol | undefined;
14
+ export declare function tryNormalizeSymbol(data: NormalizerData, objs: readonly NamedXmlBasedJson[]): RSymbol | undefined;
@@ -2,17 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tryNormalizeSymbol = void 0;
4
4
  const assert_1 = require("../../../../../../../util/assert");
5
- const meta_1 = require("../meta");
6
- const model_1 = require("../../../../model");
7
- const hooks_1 = require("../../hooks");
8
- const strings_1 = require("../../../../../../../util/strings");
9
5
  const parser_1 = require("../../../json/parser");
6
+ const normalize_meta_1 = require("../../normalize-meta");
7
+ const strings_1 = require("../../../../../../../util/strings");
8
+ const type_1 = require("../../../../model/type");
10
9
  /**
11
10
  * Normalize the given object as an R symbol (incorporating namespace information).
12
11
  * <p>
13
12
  * The special symbols `T` and `F` are parsed as logic values.
14
13
  *
15
- * @param data - The data used by the parser (see {@link ParserData})
14
+ * @param data - The data used by the parser (see {@link NormalizerData})
16
15
  * @param objs - The json object to extract the meta-information from
17
16
  *
18
17
  * @returns The parsed symbol (with populated namespace information) or `undefined` if the given object is not a symbol.
@@ -20,24 +19,23 @@ const parser_1 = require("../../../json/parser");
20
19
  function tryNormalizeSymbol(data, objs) {
21
20
  (0, assert_1.guard)(objs.length > 0, 'to parse symbols we need at least one object to work on!');
22
21
  parser_1.parseLog.debug('trying to parse symbol');
23
- objs = (0, hooks_1.executeHook)(data.hooks.values.onSymbol.before, data, objs);
24
22
  let location, content, namespace;
25
- if (objs.length === 1 && (0, model_1.isSymbol)(objs[0].name)) {
26
- const meta = (0, meta_1.retrieveMetaStructure)(objs[0].content);
23
+ if (objs.length === 1 && (0, type_1.isSymbol)(objs[0].name)) {
24
+ const meta = (0, normalize_meta_1.retrieveMetaStructure)(objs[0].content);
27
25
  location = meta.location;
28
26
  content = meta.content;
29
27
  namespace = undefined;
30
28
  }
31
- else if (objs.length === 3 && (0, model_1.isSymbol)(objs[2].name)) {
32
- const meta = (0, meta_1.retrieveMetaStructure)(objs[2].content);
29
+ else if (objs.length === 3 && (0, type_1.isSymbol)(objs[2].name)) {
30
+ const meta = (0, normalize_meta_1.retrieveMetaStructure)(objs[2].content);
33
31
  location = meta.location;
34
32
  content = meta.content;
35
- namespace = (0, meta_1.retrieveMetaStructure)(objs[0].content).content;
33
+ namespace = (0, normalize_meta_1.retrieveMetaStructure)(objs[0].content).content;
36
34
  }
37
35
  else {
38
- return (0, hooks_1.executeUnknownHook)(data.hooks.values.onSymbol.unknown, data, objs);
36
+ return undefined;
39
37
  }
40
- const result = {
38
+ return {
41
39
  type: "RSymbol" /* RType.Symbol */,
42
40
  namespace,
43
41
  location,
@@ -50,7 +48,6 @@ function tryNormalizeSymbol(data, objs) {
50
48
  fullLexeme: data.currentLexeme
51
49
  }
52
50
  };
53
- return (0, hooks_1.executeHook)(data.hooks.values.onSymbol.after, data, result);
54
51
  }
55
52
  exports.tryNormalizeSymbol = tryNormalizeSymbol;
56
- //# sourceMappingURL=symbol.js.map
53
+ //# sourceMappingURL=normalize-symbol.js.map
@@ -1,6 +1,8 @@
1
- import type { NamedXmlBasedJson, XmlBasedJson } from '../input-format';
2
- import type { SourceRange } from '../../../../../../util/range';
3
- import type { RawRType, RExpressionList, RNode } from '../../../model';
1
+ import type { SourceRange } from '../../../../../util/range';
2
+ import type { NamedXmlBasedJson, XmlBasedJson } from './input-format';
3
+ import type { RawRType } from '../../model/type';
4
+ import type { RExpressionList } from '../../model/nodes/r-expression-list';
5
+ import type { RNode } from '../../model/model';
4
6
  /**
5
7
  * if the passed object is an array with only one element, remove the array wrapper
6
8
  */
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ensureExpressionList = exports.ensureChildrenAreLhsAndRhsOrdered = exports.retrieveOpName = exports.getWithTokenType = exports.getTokenType = exports.assureTokenType = 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");
4
+ const range_1 = require("../../../../../util/range");
5
+ const assert_1 = require("../../../../../util/assert");
6
+ const input_format_1 = require("./input-format");
7
7
  /**
8
8
  * if the passed object is an array with only one element, remove the array wrapper
9
9
  */
@@ -26,8 +26,7 @@ exports.objectWithArrUnwrap = objectWithArrUnwrap;
26
26
  * given a xml element, extract the source location of the corresponding element in the R-ast
27
27
  */
28
28
  function extractLocation(ast) {
29
- const { line1, col1, line2, col2 } = (0, input_format_1.getKeysGuarded)(ast, 'line1', 'col1', 'line2', 'col2');
30
- return (0, range_1.rangeFrom)(line1, col1, line2, col2);
29
+ return (0, range_1.rangeFrom)(ast['line1'], ast['col1'], ast['line2'], ast['col2']);
31
30
  }
32
31
  exports.extractLocation = extractLocation;
33
32
  /**
@@ -39,8 +38,8 @@ exports.extractLocation = extractLocation;
39
38
  function retrieveMetaStructure(obj) {
40
39
  const unwrappedObj = objectWithArrUnwrap(obj);
41
40
  const attributes = obj[input_format_1.attributesKey];
42
- const content = obj[input_format_1.contentKey] ?? '';
43
41
  (0, assert_1.guard)(attributes !== undefined, () => `expected attributes to be defined for ${JSON.stringify(obj)}`);
42
+ const content = obj[input_format_1.contentKey] ?? '';
44
43
  const location = extractLocation(attributes);
45
44
  return {
46
45
  unwrappedObj,
@@ -63,7 +62,7 @@ exports.assureTokenType = assureTokenType;
63
62
  * @param content - the json object to extract the token-type from
64
63
  */
65
64
  function getTokenType(content) {
66
- return (0, input_format_1.getKeysGuarded)(content, input_format_1.nameKey);
65
+ return content[input_format_1.nameKey];
67
66
  }
68
67
  exports.getTokenType = getTokenType;
69
68
  function getWithTokenType(obj) {
@@ -98,6 +97,7 @@ function ensureExpressionList(node) {
98
97
  if (node.type !== "RExpressionList" /* RType.ExpressionList */) {
99
98
  return {
100
99
  type: "RExpressionList" /* RType.ExpressionList */,
100
+ grouping: undefined,
101
101
  location: node.location,
102
102
  info: node.info,
103
103
  lexeme: undefined,
@@ -107,4 +107,4 @@ function ensureExpressionList(node) {
107
107
  return node;
108
108
  }
109
109
  exports.ensureExpressionList = ensureExpressionList;
110
- //# sourceMappingURL=meta.js.map
110
+ //# sourceMappingURL=normalize-meta.js.map
@@ -1,13 +1,9 @@
1
1
  import type { MergeableRecord } from '../../../../../util/objects';
2
- import type { DeepReadonly } from 'ts-essentials';
3
- import type { XmlParserHooks } from './hooks';
4
2
  import type { SourceRange } from '../../../../../util/range';
5
3
  /**
6
4
  * Contains all information populated and present during parsing and normalization of the R AST.
7
5
  */
8
- export interface ParserData extends MergeableRecord {
9
- /** @see XmlParserHooks */
10
- readonly hooks: DeepReadonly<XmlParserHooks>;
6
+ export interface NormalizerData extends MergeableRecord {
11
7
  /**
12
8
  * The currently active source range during parsing, i.e. the full range of the current element.
13
9
  */
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=normalizer-data.js.map
@@ -22,8 +22,8 @@ export interface RNumberValue {
22
22
  export declare function number2ts(value: string): RNumberValue;
23
23
  export interface RStringValue {
24
24
  str: string;
25
- /** from the R-language definition a string is either delimited by a pair of single or double quotes */
26
- quotes: '"' | '\'';
25
+ /** from the R-language definition a string is either delimited by a pair of single or double quotes, 'none' strings are syntactically unquoted but treated as strings */
26
+ quotes: '"' | '\'' | 'none';
27
27
  /** a string is raw if prefixed with r */
28
28
  flag?: 'raw';
29
29
  }