@eagleoutice/flowr 2.9.12 → 2.9.14

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 (233) hide show
  1. package/README.md +35 -23
  2. package/abstract-interpretation/absint-visitor.d.ts +1 -1
  3. package/abstract-interpretation/absint-visitor.js +20 -20
  4. package/abstract-interpretation/data-frame/mappers/replacement-mapper.js +2 -2
  5. package/benchmark/slicer.d.ts +5 -3
  6. package/benchmark/slicer.js +26 -10
  7. package/benchmark/stats/print.js +12 -0
  8. package/benchmark/stats/stats.d.ts +3 -2
  9. package/benchmark/stats/stats.js +1 -1
  10. package/benchmark/summarizer/data.d.ts +1 -0
  11. package/benchmark/summarizer/second-phase/process.js +5 -0
  12. package/cli/benchmark-app.d.ts +1 -0
  13. package/cli/benchmark-app.js +1 -0
  14. package/cli/benchmark-helper-app.d.ts +2 -1
  15. package/cli/benchmark-helper-app.js +6 -3
  16. package/cli/common/options.d.ts +8 -0
  17. package/cli/common/options.js +3 -1
  18. package/cli/common/scripts-info.d.ts +8 -0
  19. package/cli/export-quads-app.js +1 -1
  20. package/cli/flowr.js +3 -3
  21. package/cli/repl/commands/repl-dataflow.js +5 -5
  22. package/cli/repl/core.d.ts +3 -3
  23. package/cli/repl/parser/slice-query-parser.d.ts +1 -1
  24. package/cli/repl/parser/slice-query-parser.js +2 -2
  25. package/cli/repl/server/connection.d.ts +2 -2
  26. package/cli/repl/server/connection.js +2 -2
  27. package/cli/repl/server/messages/message-slice.d.ts +1 -1
  28. package/cli/repl/server/messages/message-slice.js +2 -2
  29. package/cli/repl/server/server.d.ts +2 -2
  30. package/cli/script-core/statistics-core.d.ts +2 -2
  31. package/cli/script-core/statistics-helper-core.d.ts +2 -2
  32. package/cli/script-core/statistics-helper-core.js +1 -1
  33. package/cli/slicer-app.js +2 -2
  34. package/cli/statistics-app.js +1 -1
  35. package/cli/statistics-helper-app.js +1 -1
  36. package/cli/wiki.js +2 -2
  37. package/config.d.ts +65 -24
  38. package/config.js +197 -161
  39. package/control-flow/extract-cfg.js +7 -10
  40. package/control-flow/semantic-cfg-guided-visitor.d.ts +1 -1
  41. package/control-flow/semantic-cfg-guided-visitor.js +43 -43
  42. package/control-flow/useless-loop.d.ts +1 -1
  43. package/control-flow/useless-loop.js +3 -3
  44. package/core/print/dataflow-printer.d.ts +0 -14
  45. package/core/print/dataflow-printer.js +0 -21
  46. package/core/steps/all/core/20-dataflow.d.ts +3 -3
  47. package/core/steps/all/core/20-dataflow.js +3 -2
  48. package/core/steps/all/static-slicing/00-slice.d.ts +2 -5
  49. package/core/steps/all/static-slicing/00-slice.js +6 -8
  50. package/core/steps/pipeline/default-pipelines.d.ts +89 -89
  51. package/core/steps/pipeline-step.d.ts +2 -2
  52. package/dataflow/environments/built-in-proc-name.d.ts +83 -0
  53. package/dataflow/environments/built-in-proc-name.js +88 -0
  54. package/dataflow/environments/built-in.d.ts +1 -83
  55. package/dataflow/environments/built-in.js +37 -120
  56. package/dataflow/environments/default-builtin-config.d.ts +1 -1
  57. package/dataflow/environments/default-builtin-config.js +75 -75
  58. package/dataflow/environments/identifier.d.ts +1 -0
  59. package/dataflow/environments/identifier.js +1 -0
  60. package/dataflow/eval/resolve/alias-tracking.js +12 -15
  61. package/dataflow/eval/resolve/resolve.js +2 -2
  62. package/dataflow/fn/exceptions-of-function.d.ts +1 -1
  63. package/dataflow/fn/exceptions-of-function.js +2 -2
  64. package/dataflow/graph/call-graph.d.ts +49 -19
  65. package/dataflow/graph/call-graph.js +117 -114
  66. package/dataflow/graph/dataflowgraph-builder.d.ts +1 -1
  67. package/dataflow/graph/dataflowgraph-builder.js +2 -2
  68. package/dataflow/graph/df-helper.d.ts +132 -0
  69. package/dataflow/graph/df-helper.js +131 -0
  70. package/dataflow/graph/diff-dataflow-graph.d.ts +5 -10
  71. package/dataflow/graph/diff-dataflow-graph.js +3 -28
  72. package/dataflow/graph/edge.d.ts +1 -0
  73. package/dataflow/graph/edge.js +1 -0
  74. package/dataflow/graph/graph-helper.d.ts +55 -0
  75. package/dataflow/graph/graph-helper.js +105 -0
  76. package/dataflow/graph/graph.d.ts +6 -1
  77. package/dataflow/graph/graph.js +14 -9
  78. package/dataflow/graph/vertex.d.ts +1 -1
  79. package/dataflow/info.d.ts +14 -4
  80. package/dataflow/info.js +28 -16
  81. package/dataflow/internal/linker.d.ts +14 -10
  82. package/dataflow/internal/linker.js +29 -32
  83. package/dataflow/internal/process/functions/call/built-in/built-in-access.js +5 -5
  84. package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +4 -4
  85. package/dataflow/internal/process/functions/call/built-in/built-in-assignment.js +7 -6
  86. package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +1 -1
  87. package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +5 -5
  88. package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +2 -2
  89. package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +2 -2
  90. package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +4 -4
  91. package/dataflow/internal/process/functions/call/built-in/built-in-get.js +2 -2
  92. package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +3 -3
  93. package/dataflow/internal/process/functions/call/built-in/built-in-library.js +2 -2
  94. package/dataflow/internal/process/functions/call/built-in/built-in-list.js +2 -2
  95. package/dataflow/internal/process/functions/call/built-in/built-in-local.d.ts +1 -1
  96. package/dataflow/internal/process/functions/call/built-in/built-in-local.js +5 -5
  97. package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +2 -2
  98. package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +2 -2
  99. package/dataflow/internal/process/functions/call/built-in/built-in-recall.js +2 -2
  100. package/dataflow/internal/process/functions/call/built-in/built-in-register-hook.js +5 -5
  101. package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +2 -2
  102. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +1 -1
  103. package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +5 -4
  104. package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +2 -2
  105. package/dataflow/internal/process/functions/call/built-in/built-in-s-seven-dispatch.js +3 -3
  106. package/dataflow/internal/process/functions/call/built-in/built-in-s-seven-new-generic.js +3 -3
  107. package/dataflow/internal/process/functions/call/built-in/built-in-s-three-dispatch.d.ts +1 -1
  108. package/dataflow/internal/process/functions/call/built-in/built-in-s-three-dispatch.js +7 -7
  109. package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +2 -2
  110. package/dataflow/internal/process/functions/call/built-in/built-in-source.js +23 -12
  111. package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +3 -3
  112. package/dataflow/internal/process/functions/call/built-in/built-in-stop-if-not.js +2 -2
  113. package/dataflow/internal/process/functions/call/built-in/built-in-try-catch.js +6 -9
  114. package/dataflow/internal/process/functions/call/built-in/built-in-vector.js +2 -2
  115. package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +2 -2
  116. package/dataflow/internal/process/functions/call/known-call-handling.js +2 -2
  117. package/dataflow/internal/process/functions/call/named-call-handling.d.ts +1 -1
  118. package/dataflow/internal/process/functions/call/named-call-handling.js +1 -1
  119. package/dataflow/internal/process/functions/call/unnamed-call-handling.js +2 -2
  120. package/dataflow/internal/process/process-uninteresting-leaf.d.ts +1 -1
  121. package/dataflow/internal/process/process-uninteresting-leaf.js +1 -1
  122. package/dataflow/origin/dfg-get-origin.d.ts +1 -1
  123. package/dataflow/origin/dfg-get-symbol-refs.js +6 -6
  124. package/documentation/doc-readme.js +2 -2
  125. package/documentation/doc-util/doc-dfg.d.ts +3 -0
  126. package/documentation/doc-util/doc-dfg.js +5 -7
  127. package/documentation/doc-util/doc-normalized-ast.d.ts +0 -6
  128. package/documentation/doc-util/doc-normalized-ast.js +0 -23
  129. package/documentation/doc-util/doc-structure.js +3 -3
  130. package/documentation/doc-util/doc-types.js +3 -3
  131. package/documentation/wiki-analyzer.js +7 -5
  132. package/documentation/wiki-core.js +6 -7
  133. package/documentation/wiki-dataflow-graph.js +15 -13
  134. package/documentation/wiki-interface.js +8 -6
  135. package/documentation/wiki-linter.js +6 -5
  136. package/documentation/wiki-mk/doc-context.js +3 -4
  137. package/documentation/wiki-normalized-ast.js +5 -4
  138. package/documentation/wiki-query.js +28 -3
  139. package/engines.d.ts +2 -2
  140. package/engines.js +4 -4
  141. package/linter/linter-rules.d.ts +24 -1
  142. package/linter/linter-rules.js +3 -1
  143. package/linter/rules/dataframe-access-validation.js +5 -5
  144. package/linter/rules/naming-convention.d.ts +1 -1
  145. package/linter/rules/naming-convention.js +7 -3
  146. package/linter/rules/seeded-randomness.js +2 -2
  147. package/linter/rules/stop-with-call-arg.d.ts +35 -0
  148. package/linter/rules/stop-with-call-arg.js +72 -0
  149. package/linter/rules/useless-loop.d.ts +1 -1
  150. package/package.json +3 -1
  151. package/project/cache/flowr-analyzer-cache.d.ts +1 -1
  152. package/project/cache/flowr-analyzer-cache.js +1 -1
  153. package/project/context/flowr-analyzer-context.d.ts +6 -6
  154. package/project/context/flowr-analyzer-context.js +2 -2
  155. package/project/context/flowr-analyzer-files-context.d.ts +2 -2
  156. package/project/context/flowr-analyzer-files-context.js +28 -8
  157. package/project/flowr-analyzer-builder.d.ts +13 -6
  158. package/project/flowr-analyzer-builder.js +12 -3
  159. package/project/flowr-analyzer.d.ts +4 -4
  160. package/queries/catalog/call-context-query/identify-link-to-nested-call-relation.js +2 -2
  161. package/queries/catalog/call-graph-query/call-graph-query-format.d.ts +1 -1
  162. package/queries/catalog/call-graph-query/call-graph-query-format.js +2 -2
  163. package/queries/catalog/cluster-query/cluster-query-format.js +2 -2
  164. package/queries/catalog/config-query/config-query-format.d.ts +5 -5
  165. package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.js +2 -2
  166. package/queries/catalog/dataflow-query/dataflow-query-format.js +2 -2
  167. package/queries/catalog/df-shape-query/df-shape-query-executor.js +1 -2
  168. package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +2 -2
  169. package/queries/catalog/does-call-query/does-call-query-executor.js +2 -2
  170. package/queries/catalog/does-call-query/does-call-query-format.d.ts +2 -2
  171. package/queries/catalog/files-query/files-query-format.d.ts +3 -3
  172. package/queries/catalog/happens-before-query/happens-before-query-executor.js +2 -2
  173. package/queries/catalog/inspect-exceptions-query/inspect-exception-query-executor.d.ts +1 -1
  174. package/queries/catalog/inspect-exceptions-query/inspect-exception-query-executor.js +1 -1
  175. package/queries/catalog/inspect-exceptions-query/inspect-exception-query-format.d.ts +2 -2
  176. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +3 -3
  177. package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +2 -2
  178. package/queries/catalog/inspect-recursion-query/inspect-recursion-query-format.d.ts +2 -2
  179. package/queries/catalog/linter-query/linter-query-format.d.ts +3 -3
  180. package/queries/catalog/location-map-query/location-map-query-executor.js +2 -2
  181. package/queries/catalog/location-map-query/location-map-query-format.d.ts +2 -2
  182. package/queries/catalog/origin-query/origin-query-executor.d.ts +1 -1
  183. package/queries/catalog/origin-query/origin-query-executor.js +3 -3
  184. package/queries/catalog/origin-query/origin-query-format.d.ts +2 -2
  185. package/queries/catalog/provenance-query/provenance-query-executor.d.ts +9 -0
  186. package/queries/catalog/provenance-query/provenance-query-executor.js +37 -0
  187. package/queries/catalog/provenance-query/provenance-query-format.d.ts +35 -0
  188. package/queries/catalog/provenance-query/provenance-query-format.js +62 -0
  189. package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +4 -4
  190. package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +2 -2
  191. package/queries/catalog/resolve-value-query/resolve-value-query-format.js +4 -0
  192. package/queries/catalog/search-query/search-query-format.js +1 -1
  193. package/queries/catalog/static-slice-query/static-slice-query-executor.js +4 -2
  194. package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +4 -4
  195. package/queries/catalog/static-slice-query/static-slice-query-format.js +3 -3
  196. package/queries/query.d.ts +27 -19
  197. package/queries/query.js +2 -0
  198. package/r-bridge/lang-4.x/ast/model/model.d.ts +13 -2
  199. package/r-bridge/lang-4.x/ast/model/model.js +20 -1
  200. package/r-bridge/lang-4.x/ast/model/nodes/r-function-definition.d.ts +8 -1
  201. package/r-bridge/lang-4.x/ast/model/nodes/r-function-definition.js +13 -0
  202. package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +2 -2
  203. package/r-bridge/lang-4.x/ast/parser/json/parser.js +2 -2
  204. package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +6 -2
  205. package/search/flowr-search-filters.d.ts +1 -1
  206. package/search/flowr-search-printer.js +3 -3
  207. package/search/search-executor/search-enrichers.js +2 -2
  208. package/search/search-executor/search-generators.js +1 -1
  209. package/slicing/criterion/parse.d.ts +40 -16
  210. package/slicing/criterion/parse.js +67 -63
  211. package/slicing/static/slicer-types.d.ts +2 -3
  212. package/slicing/static/static-slicer.d.ts +3 -4
  213. package/slicing/static/static-slicer.js +9 -12
  214. package/statistics/statistics.d.ts +2 -2
  215. package/util/diff.d.ts +2 -2
  216. package/util/mermaid/ast.js +4 -4
  217. package/util/mermaid/cfg.js +5 -5
  218. package/util/mermaid/dfg.d.ts +33 -18
  219. package/util/mermaid/dfg.js +46 -31
  220. package/util/mermaid/mermaid.d.ts +57 -12
  221. package/util/mermaid/mermaid.js +74 -67
  222. package/util/objects.d.ts +12 -0
  223. package/util/objects.js +28 -0
  224. package/util/range.d.ts +8 -0
  225. package/util/range.js +13 -1
  226. package/util/slice-direction.d.ts +7 -0
  227. package/util/slice-direction.js +12 -0
  228. package/util/summarizer.js +1 -1
  229. package/util/version.js +1 -1
  230. package/dataflow/graph/invert-dfg.d.ts +0 -6
  231. package/dataflow/graph/invert-dfg.js +0 -20
  232. package/dataflow/graph/resolve-graph.d.ts +0 -8
  233. package/dataflow/graph/resolve-graph.js +0 -59
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BuiltIns = exports.BuiltInEvalHandlerMapper = exports.BuiltInProcessorMapper = exports.BuiltInProcName = void 0;
3
+ exports.BuiltIns = exports.BuiltInEvalHandlerMapper = exports.BuiltInProcessorMapper = void 0;
4
4
  const known_call_handling_1 = require("../internal/process/functions/call/known-call-handling");
5
5
  const built_in_access_1 = require("../internal/process/functions/call/built-in/built-in-access");
6
6
  const built_in_if_then_else_1 = require("../internal/process/functions/call/built-in/built-in-if-then-else");
@@ -40,7 +40,8 @@ const built_in_recall_1 = require("../internal/process/functions/call/built-in/b
40
40
  const built_in_s_seven_new_generic_1 = require("../internal/process/functions/call/built-in/built-in-s-seven-new-generic");
41
41
  const built_in_s_seven_dispatch_1 = require("../internal/process/functions/call/built-in/built-in-s-seven-dispatch");
42
42
  const r_string_1 = require("../../r-bridge/lang-4.x/ast/model/nodes/r-string");
43
- function defaultBuiltInProcessor(name, args, rootId, data, { returnsNthArgument, useAsProcessor = BuiltInProcName.Default, forceArgs, readAllArguments, cfg, hasUnknownSideEffects, treatAsFnCall }) {
43
+ const built_in_proc_name_1 = require("./built-in-proc-name");
44
+ function defaultBuiltInProcessor(name, args, rootId, data, { returnsNthArgument, useAsProcessor = built_in_proc_name_1.BuiltInProcName.Default, forceArgs, readAllArguments, cfg, hasUnknownSideEffects, treatAsFnCall }) {
44
45
  const { information: res, processedArguments } = (0, known_call_handling_1.processKnownFunctionCall)({ name, args, rootId, data, forceArgs, origin: useAsProcessor });
45
46
  if (returnsNthArgument !== undefined) {
46
47
  const arg = returnsNthArgument === 'last' ? processedArguments.at(-1) : processedArguments[returnsNthArgument];
@@ -99,7 +100,7 @@ function defaultBuiltInProcessor(name, args, rootId, data, { returnsNthArgument,
99
100
  }
100
101
  return res;
101
102
  }
102
- function defaultBuiltInProcessorReadallArgs(name, args, rootId, data, { useAsProcessor = BuiltInProcName.Default, forceArgs }) {
103
+ function defaultBuiltInProcessorReadallArgs(name, args, rootId, data, { useAsProcessor = built_in_proc_name_1.BuiltInProcName.Default, forceArgs }) {
103
104
  const { information, processedArguments } = (0, known_call_handling_1.processKnownFunctionCall)({ name, args, rootId, data, forceArgs, origin: useAsProcessor });
104
105
  const g = information.graph;
105
106
  for (const arg of processedArguments) {
@@ -109,122 +110,38 @@ function defaultBuiltInProcessorReadallArgs(name, args, rootId, data, { useAsPro
109
110
  }
110
111
  return information;
111
112
  }
112
- /**
113
- * This contains all names of built-in function handlers and origins
114
- */
115
- var BuiltInProcName;
116
- (function (BuiltInProcName) {
117
- /** for subsetting operations, see {@link processAccess} */
118
- BuiltInProcName["Access"] = "builtin:access";
119
- /** for the `*apply` family, see {@link processApply} */
120
- BuiltInProcName["Apply"] = "builtin:apply";
121
- /** for assignments like `<-` and `=`, see {@link processAssignment} */
122
- BuiltInProcName["Assignment"] = "builtin:assignment";
123
- /** for assignment like functions that may do additional work, see {@link processAssignmentLike} */
124
- BuiltInProcName["AssignmentLike"] = "builtin:assignment-like";
125
- /** for `break` calls */
126
- BuiltInProcName["Break"] = "builtin:break";
127
- /** the default built-in processor, see {@link defaultBuiltInProcessor} */
128
- BuiltInProcName["Default"] = "builtin:default";
129
- /** Just a more performant variant of the default processor for built-ins that need to read all their arguments, see {@link defaultBuiltInProcessor}, this will still produce the origin `BuiltIn.Default` */
130
- BuiltInProcName["DefaultReadAllArgs"] = "builtin:default-read-all-args";
131
- /** for `eval` calls, see {@link processEvalCall} */
132
- BuiltInProcName["Eval"] = "builtin:eval";
133
- /** for expression lists, see {@link processExpressionList} */
134
- BuiltInProcName["ExpressionList"] = "builtin:expression-list";
135
- /** for `for` loops, see {@link processForLoop} */
136
- BuiltInProcName["ForLoop"] = "builtin:for-loop";
137
- /** We resolved a function call, similar to {@link BuiltInProcName#Default} */
138
- BuiltInProcName["Function"] = "function";
139
- /** for function definitions, see {@link processFunctionDefinition} */
140
- BuiltInProcName["FunctionDefinition"] = "builtin:function-definition";
141
- /** for `get` calls, see {@link processGet} */
142
- BuiltInProcName["Get"] = "builtin:get";
143
- /** for `if-then-else` constructs, see {@link processIfThenElse} */
144
- BuiltInProcName["IfThenElse"] = "builtin:if-then-else";
145
- /** for `library` and `require` calls, see {@link processLibrary} */
146
- BuiltInProcName["Library"] = "builtin:library";
147
- /** for `list` calls, see {@link processList} */
148
- BuiltInProcName["List"] = "builtin:list";
149
- /** for `local` calls, see {@link processLocal} */
150
- BuiltInProcName["Local"] = "builtin:local";
151
- /** for the pipe operators, see {@link processPipe} */
152
- BuiltInProcName["Pipe"] = "builtin:pipe";
153
- /** for `quote`, and other substituting calls, see {@link processQuote} */
154
- BuiltInProcName["Quote"] = "builtin:quote";
155
- /**
156
- * for `recall` calls, see {@link processRecall}
157
- */
158
- BuiltInProcName["Recall"] = "builtin:recall";
159
- /** for `on.exìt` and other hooks, see {@link processRegisterHook} */
160
- BuiltInProcName["RegisterHook"] = "builtin:register-hook";
161
- /** for `repeat` loops, see {@link processRepeatLoop} */
162
- BuiltInProcName["RepeatLoop"] = "builtin:repeat-loop";
163
- /** for replacement functions like `names<-`, see {@link processReplacementFunction} */
164
- BuiltInProcName["Replacement"] = "builtin:replacement";
165
- /** for `return` calls */
166
- BuiltInProcName["Return"] = "builtin:return";
167
- /** for `rm` calls, see {@link processRm} */
168
- BuiltInProcName["Rm"] = "builtin:rm";
169
- /** for `UseMethod` calls, see {@link processS3Dispatch} */
170
- BuiltInProcName["S3Dispatch"] = "builtin:s3-dispatch";
171
- /** for `NextMethod` calls, see {@link processS3Dispatch} */
172
- BuiltInProcName["S3DispatchNext"] = "builtin:s3-dispatch-next";
173
- /** for `new.generic` calls, see {@link processS7NewGeneric} */
174
- BuiltInProcName["S7NewGeneric"] = "builtin:s7-new-generic";
175
- /** for `S7_dispatch` calls (and their implicit creations), see {@link processS7Dispatch} */
176
- BuiltInProcName["S7Dispatch"] = "builtin:s7-dispatch";
177
- /** for `source` calls, see {@link processSourceCall} */
178
- BuiltInProcName["Source"] = "builtin:source";
179
- /** for special binary operators like `%x%`, see {@link processSpecialBinOp} */
180
- BuiltInProcName["SpecialBinOp"] = "builtin:special-bin-op";
181
- /** for `stop` calls */
182
- BuiltInProcName["Stop"] = "builtin:stop";
183
- /** for `stopifnot` calls, see {@link processStopIfNot} */
184
- BuiltInProcName["StopIfNot"] = "builtin:stopifnot";
185
- /** support for `:=` in subsetting assignments, see {@link processAccess} */
186
- BuiltInProcName["TableAssignment"] = "table:assign";
187
- /** for `try` calls, see {@link processTryCatch} */
188
- BuiltInProcName["Try"] = "builtin:try";
189
- /** for unnamed directly-linked function calls */
190
- BuiltInProcName["Unnamed"] = "unnamed";
191
- /** for vector construction calls, see {@link processVector} */
192
- BuiltInProcName["Vector"] = "builtin:vector";
193
- /** for `while` loops, see {@link processWhileLoop} */
194
- BuiltInProcName["WhileLoop"] = "builtin:while-loop";
195
- })(BuiltInProcName || (exports.BuiltInProcName = BuiltInProcName = {}));
196
113
  exports.BuiltInProcessorMapper = {
197
- [BuiltInProcName.Access]: built_in_access_1.processAccess,
198
- [BuiltInProcName.Apply]: built_in_apply_1.processApply,
199
- [BuiltInProcName.Assignment]: built_in_assignment_1.processAssignment,
200
- [BuiltInProcName.AssignmentLike]: built_in_assignment_1.processAssignmentLike,
201
- [BuiltInProcName.Default]: defaultBuiltInProcessor,
202
- [BuiltInProcName.DefaultReadAllArgs]: defaultBuiltInProcessorReadallArgs,
203
- [BuiltInProcName.Eval]: built_in_eval_1.processEvalCall,
204
- [BuiltInProcName.ExpressionList]: built_in_expression_list_1.processExpressionList,
205
- [BuiltInProcName.ForLoop]: built_in_for_loop_1.processForLoop,
206
- [BuiltInProcName.FunctionDefinition]: built_in_function_definition_1.processFunctionDefinition,
207
- [BuiltInProcName.Get]: built_in_get_1.processGet,
208
- [BuiltInProcName.IfThenElse]: built_in_if_then_else_1.processIfThenElse,
209
- [BuiltInProcName.Library]: built_in_library_1.processLibrary,
210
- [BuiltInProcName.List]: built_in_list_1.processList,
211
- [BuiltInProcName.Local]: built_in_local_1.processLocal,
212
- [BuiltInProcName.Pipe]: built_in_pipe_1.processPipe,
213
- [BuiltInProcName.Quote]: built_in_quote_1.processQuote,
214
- [BuiltInProcName.Recall]: built_in_recall_1.processRecall,
215
- [BuiltInProcName.RegisterHook]: built_in_register_hook_1.processRegisterHook,
216
- [BuiltInProcName.RepeatLoop]: built_in_repeat_loop_1.processRepeatLoop,
217
- [BuiltInProcName.Replacement]: built_in_replacement_1.processReplacementFunction,
218
- [BuiltInProcName.Rm]: built_in_rm_1.processRm,
219
- [BuiltInProcName.S3Dispatch]: built_in_s_three_dispatch_1.processS3Dispatch,
220
- [BuiltInProcName.S7NewGeneric]: built_in_s_seven_new_generic_1.processS7NewGeneric,
221
- [BuiltInProcName.S7Dispatch]: built_in_s_seven_dispatch_1.processS7Dispatch,
222
- [BuiltInProcName.Source]: built_in_source_1.processSourceCall,
223
- [BuiltInProcName.SpecialBinOp]: built_in_special_bin_op_1.processSpecialBinOp,
224
- [BuiltInProcName.StopIfNot]: built_in_stop_if_not_1.processStopIfNot,
225
- [BuiltInProcName.Try]: built_in_try_catch_1.processTryCatch,
226
- [BuiltInProcName.Vector]: built_in_vector_1.processVector,
227
- [BuiltInProcName.WhileLoop]: built_in_while_loop_1.processWhileLoop,
114
+ [built_in_proc_name_1.BuiltInProcName.Access]: built_in_access_1.processAccess,
115
+ [built_in_proc_name_1.BuiltInProcName.Apply]: built_in_apply_1.processApply,
116
+ [built_in_proc_name_1.BuiltInProcName.Assignment]: built_in_assignment_1.processAssignment,
117
+ [built_in_proc_name_1.BuiltInProcName.AssignmentLike]: built_in_assignment_1.processAssignmentLike,
118
+ [built_in_proc_name_1.BuiltInProcName.Default]: defaultBuiltInProcessor,
119
+ [built_in_proc_name_1.BuiltInProcName.DefaultReadAllArgs]: defaultBuiltInProcessorReadallArgs,
120
+ [built_in_proc_name_1.BuiltInProcName.Eval]: built_in_eval_1.processEvalCall,
121
+ [built_in_proc_name_1.BuiltInProcName.ExpressionList]: built_in_expression_list_1.processExpressionList,
122
+ [built_in_proc_name_1.BuiltInProcName.ForLoop]: built_in_for_loop_1.processForLoop,
123
+ [built_in_proc_name_1.BuiltInProcName.FunctionDefinition]: built_in_function_definition_1.processFunctionDefinition,
124
+ [built_in_proc_name_1.BuiltInProcName.Get]: built_in_get_1.processGet,
125
+ [built_in_proc_name_1.BuiltInProcName.IfThenElse]: built_in_if_then_else_1.processIfThenElse,
126
+ [built_in_proc_name_1.BuiltInProcName.Library]: built_in_library_1.processLibrary,
127
+ [built_in_proc_name_1.BuiltInProcName.List]: built_in_list_1.processList,
128
+ [built_in_proc_name_1.BuiltInProcName.Local]: built_in_local_1.processLocal,
129
+ [built_in_proc_name_1.BuiltInProcName.Pipe]: built_in_pipe_1.processPipe,
130
+ [built_in_proc_name_1.BuiltInProcName.Quote]: built_in_quote_1.processQuote,
131
+ [built_in_proc_name_1.BuiltInProcName.Recall]: built_in_recall_1.processRecall,
132
+ [built_in_proc_name_1.BuiltInProcName.RegisterHook]: built_in_register_hook_1.processRegisterHook,
133
+ [built_in_proc_name_1.BuiltInProcName.RepeatLoop]: built_in_repeat_loop_1.processRepeatLoop,
134
+ [built_in_proc_name_1.BuiltInProcName.Replacement]: built_in_replacement_1.processReplacementFunction,
135
+ [built_in_proc_name_1.BuiltInProcName.Rm]: built_in_rm_1.processRm,
136
+ [built_in_proc_name_1.BuiltInProcName.S3Dispatch]: built_in_s_three_dispatch_1.processS3Dispatch,
137
+ [built_in_proc_name_1.BuiltInProcName.S7NewGeneric]: built_in_s_seven_new_generic_1.processS7NewGeneric,
138
+ [built_in_proc_name_1.BuiltInProcName.S7Dispatch]: built_in_s_seven_dispatch_1.processS7Dispatch,
139
+ [built_in_proc_name_1.BuiltInProcName.Source]: built_in_source_1.processSourceCall,
140
+ [built_in_proc_name_1.BuiltInProcName.SpecialBinOp]: built_in_special_bin_op_1.processSpecialBinOp,
141
+ [built_in_proc_name_1.BuiltInProcName.StopIfNot]: built_in_stop_if_not_1.processStopIfNot,
142
+ [built_in_proc_name_1.BuiltInProcName.Try]: built_in_try_catch_1.processTryCatch,
143
+ [built_in_proc_name_1.BuiltInProcName.Vector]: built_in_vector_1.processVector,
144
+ [built_in_proc_name_1.BuiltInProcName.WhileLoop]: built_in_while_loop_1.processWhileLoop,
228
145
  };
229
146
  exports.BuiltInEvalHandlerMapper = {
230
147
  'built-in:c': resolve_1.resolveAsVector,
@@ -278,8 +195,8 @@ class BuiltIns {
278
195
  * Registers all combinations of replacements
279
196
  */
280
197
  registerReplacementFunctions({ names, suffixes, assumePrimitive, config }) {
281
- const replacer = exports.BuiltInProcessorMapper[BuiltInProcName.Replacement];
282
- (0, assert_1.guard)(replacer !== undefined, () => `Processor for ${BuiltInProcName.Replacement} is undefined!`);
198
+ const replacer = exports.BuiltInProcessorMapper[built_in_proc_name_1.BuiltInProcName.Replacement];
199
+ (0, assert_1.guard)(replacer !== undefined, () => `Processor for ${built_in_proc_name_1.BuiltInProcName.Replacement} is undefined!`);
283
200
  for (const assignment of names) {
284
201
  for (const suffix of suffixes) {
285
202
  const effectiveName = `${identifier_1.Identifier.getName(assignment)}${suffix}`;
@@ -3,9 +3,9 @@ import type { DataflowGraph } from '../graph/graph';
3
3
  import type { DataflowGraphVertexFunctionCall } from '../graph/vertex';
4
4
  import type { NodeId } from '../../r-bridge/lang-4.x/ast/model/processing/node-id';
5
5
  import { CascadeAction } from '../../queries/catalog/call-context-query/cascade-action';
6
- import { BuiltInProcName } from './built-in';
7
6
  import { KnownHooks } from '../hooks';
8
7
  import { Identifier } from './identifier';
8
+ import { BuiltInProcName } from './built-in-proc-name';
9
9
  export declare const GgPlotCreate: readonly ["ggplot", "ggplotly", "ggMarginal", "ggcorrplot", "ggseasonplot", "ggdendrogram", "qmap", "qplot", "quickplot", "autoplot", "grid.arrange", "fviz_pca_biplot", "fviz_pca", "fviz_pca_ind", "fviz_pca_var", "fviz_screeplot", "fviz_mca_biplot", "fviz_mca", "fviz_mca_ind", "fviz_mca_var", "fviz_cluster", "fviz_dend", "ggsurvplot"];
10
10
  export declare const TinyPlotCrate: readonly ["tinyplot", "plt"];
11
11
  export declare const GraphicsPlotCreate: string[];
@@ -5,10 +5,10 @@ exports.getDefaultProcessor = getDefaultProcessor;
5
5
  const identify_link_to_last_call_relation_1 = require("../../queries/catalog/call-context-query/identify-link-to-last-call-relation");
6
6
  const type_1 = require("../../r-bridge/lang-4.x/ast/model/type");
7
7
  const cascade_action_1 = require("../../queries/catalog/call-context-query/cascade-action");
8
- const built_in_1 = require("./built-in");
9
8
  const unnamed_call_handling_1 = require("../internal/process/functions/call/unnamed-call-handling");
10
9
  const hooks_1 = require("../hooks");
11
10
  const identifier_1 = require("./identifier");
11
+ const built_in_proc_name_1 = require("./built-in-proc-name");
12
12
  exports.GgPlotCreate = [
13
13
  'ggplot', 'ggplotly', 'ggMarginal', 'ggcorrplot', 'ggseasonplot', 'ggdendrogram', 'qmap', 'qplot', 'quickplot', 'autoplot', 'grid.arrange',
14
14
  'fviz_pca_biplot', 'fviz_pca', 'fviz_pca_ind', 'fviz_pca_var', 'fviz_screeplot', 'fviz_mca_biplot', 'fviz_mca', 'fviz_mca_ind', 'fviz_mca_var', 'fviz_cluster', 'fviz_dend',
@@ -112,7 +112,7 @@ exports.DefaultBuiltinConfig = [
112
112
  'pdf', 'jpeg', 'png', 'windows', 'postscript', 'xfig', 'bitmap', 'pictex', 'cairo_pdf', 'svg', 'bmp', 'tiff', 'X11', 'quartz',
113
113
  'jitter'
114
114
  ],
115
- processor: built_in_1.BuiltInProcName.DefaultReadAllArgs,
115
+ processor: built_in_proc_name_1.BuiltInProcName.DefaultReadAllArgs,
116
116
  config: {},
117
117
  assumePrimitive: true
118
118
  },
@@ -121,20 +121,20 @@ exports.DefaultBuiltinConfig = [
121
121
  names: [
122
122
  't', 'aperm' /* transpose function, permutation generation */
123
123
  ],
124
- processor: built_in_1.BuiltInProcName.DefaultReadAllArgs,
124
+ processor: built_in_proc_name_1.BuiltInProcName.DefaultReadAllArgs,
125
125
  config: {},
126
126
  assumePrimitive: false
127
127
  },
128
- { type: 'function', names: ['rm'], processor: built_in_1.BuiltInProcName.Rm, config: {}, assumePrimitive: true },
129
- { type: 'function', names: ['options'], processor: built_in_1.BuiltInProcName.Default, config: { hasUnknownSideEffects: true, forceArgs: 'all' }, assumePrimitive: false },
130
- { type: 'function', names: ['mapply', 'Mapply'], processor: built_in_1.BuiltInProcName.Apply, config: { indexOfFunction: 0, nameOfFunctionArgument: 'FUN' }, assumePrimitive: false },
131
- { type: 'function', names: ['lapply', 'sapply', 'vapply'], processor: built_in_1.BuiltInProcName.Apply, config: { indexOfFunction: 1, nameOfFunctionArgument: 'FUN' }, assumePrimitive: false },
132
- { type: 'function', names: ['Lapply', 'Sapply', 'Vapply'], processor: built_in_1.BuiltInProcName.Apply, config: { indexOfFunction: 1, nameOfFunctionArgument: 'FUN' }, assumePrimitive: false }, /* functool wrappers */
133
- { type: 'function', names: ['apply', 'tapply', 'Tapply'], processor: built_in_1.BuiltInProcName.Apply, config: { indexOfFunction: 2, nameOfFunctionArgument: 'FUN' }, assumePrimitive: false },
134
- { type: 'function', names: ['print', 'message', 'warning', 'warn', 'info'], processor: built_in_1.BuiltInProcName.Default, config: { returnsNthArgument: 0, forceArgs: 'all', hasUnknownSideEffects: { type: 'link-to-last-call', callName: /^sink$/ } }, assumePrimitive: false },
128
+ { type: 'function', names: ['rm'], processor: built_in_proc_name_1.BuiltInProcName.Rm, config: {}, assumePrimitive: true },
129
+ { type: 'function', names: ['options'], processor: built_in_proc_name_1.BuiltInProcName.Default, config: { hasUnknownSideEffects: true, forceArgs: 'all' }, assumePrimitive: false },
130
+ { type: 'function', names: ['mapply', 'Mapply'], processor: built_in_proc_name_1.BuiltInProcName.Apply, config: { indexOfFunction: 0, nameOfFunctionArgument: 'FUN' }, assumePrimitive: false },
131
+ { type: 'function', names: ['lapply', 'sapply', 'vapply'], processor: built_in_proc_name_1.BuiltInProcName.Apply, config: { indexOfFunction: 1, nameOfFunctionArgument: 'FUN' }, assumePrimitive: false },
132
+ { type: 'function', names: ['Lapply', 'Sapply', 'Vapply'], processor: built_in_proc_name_1.BuiltInProcName.Apply, config: { indexOfFunction: 1, nameOfFunctionArgument: 'FUN' }, assumePrimitive: false }, /* functool wrappers */
133
+ { type: 'function', names: ['apply', 'tapply', 'Tapply'], processor: built_in_proc_name_1.BuiltInProcName.Apply, config: { indexOfFunction: 2, nameOfFunctionArgument: 'FUN' }, assumePrimitive: false },
134
+ { type: 'function', names: ['print', 'message', 'warning', 'warn', 'info'], processor: built_in_proc_name_1.BuiltInProcName.Default, config: { returnsNthArgument: 0, forceArgs: 'all', hasUnknownSideEffects: { type: 'link-to-last-call', callName: /^sink$/ } }, assumePrimitive: false },
135
135
  // graphics base
136
136
  { type: 'function', names: exports.PlotCreate,
137
- processor: built_in_1.BuiltInProcName.Default,
137
+ processor: built_in_proc_name_1.BuiltInProcName.Default,
138
138
  config: {
139
139
  forceArgs: 'all',
140
140
  hasUnknownSideEffects: {
@@ -151,7 +151,7 @@ exports.DefaultBuiltinConfig = [
151
151
  }, assumePrimitive: true },
152
152
  // graphics addons
153
153
  { type: 'function', names: PlotAddons,
154
- processor: built_in_1.BuiltInProcName.Default, config: {
154
+ processor: built_in_proc_name_1.BuiltInProcName.Default, config: {
155
155
  forceArgs: 'all',
156
156
  treatAsFnCall: {
157
157
  'facet_grid': ['labeller']
@@ -180,7 +180,7 @@ exports.DefaultBuiltinConfig = [
180
180
  {
181
181
  type: 'function',
182
182
  names: exports.GgPlotAddons,
183
- processor: built_in_1.BuiltInProcName.Default,
183
+ processor: built_in_proc_name_1.BuiltInProcName.Default,
184
184
  config: {
185
185
  libFn: true,
186
186
  forceArgs: 'all',
@@ -193,7 +193,7 @@ exports.DefaultBuiltinConfig = [
193
193
  {
194
194
  type: 'function',
195
195
  names: exports.TinyPlotAddons,
196
- processor: built_in_1.BuiltInProcName.Default,
196
+ processor: built_in_proc_name_1.BuiltInProcName.Default,
197
197
  config: {
198
198
  libFn: true,
199
199
  forceArgs: 'all',
@@ -206,7 +206,7 @@ exports.DefaultBuiltinConfig = [
206
206
  {
207
207
  type: 'function',
208
208
  names: ['image_write', 'image_capture', 'dev.capture', 'dev.off'],
209
- processor: built_in_1.BuiltInProcName.Default,
209
+ processor: built_in_proc_name_1.BuiltInProcName.Default,
210
210
  config: {
211
211
  libFn: true,
212
212
  forceArgs: 'all',
@@ -216,12 +216,12 @@ exports.DefaultBuiltinConfig = [
216
216
  }
217
217
  }, assumePrimitive: true
218
218
  },
219
- { type: 'function', names: ['('], processor: built_in_1.BuiltInProcName.Default, config: { returnsNthArgument: 0 }, assumePrimitive: true },
220
- { type: 'function', names: ['load', 'load_all', 'setwd', 'set.seed'], processor: built_in_1.BuiltInProcName.Default, config: { hasUnknownSideEffects: true, forceArgs: [true] }, assumePrimitive: false },
221
- { type: 'function', names: ['body', 'formals', 'environment'], processor: built_in_1.BuiltInProcName.Default, config: { hasUnknownSideEffects: true, forceArgs: [true] }, assumePrimitive: true },
219
+ { type: 'function', names: ['('], processor: built_in_proc_name_1.BuiltInProcName.Default, config: { returnsNthArgument: 0 }, assumePrimitive: true },
220
+ { type: 'function', names: ['load', 'load_all', 'setwd', 'set.seed'], processor: built_in_proc_name_1.BuiltInProcName.Default, config: { hasUnknownSideEffects: true, forceArgs: [true] }, assumePrimitive: false },
221
+ { type: 'function', names: ['body', 'formals', 'environment'], processor: built_in_proc_name_1.BuiltInProcName.Default, config: { hasUnknownSideEffects: true, forceArgs: [true] }, assumePrimitive: true },
222
222
  { type: 'function',
223
223
  names: ['.Call', '.External', '.C', '.Fortran'],
224
- processor: built_in_1.BuiltInProcName.Default,
224
+ processor: built_in_proc_name_1.BuiltInProcName.Default,
225
225
  config: { hasUnknownSideEffects: true, forceArgs: [true],
226
226
  treatAsFnCall: {
227
227
  '.Call': ['.NAME'],
@@ -230,64 +230,64 @@ exports.DefaultBuiltinConfig = [
230
230
  '.Fortran': ['.NAME']
231
231
  }
232
232
  }, assumePrimitive: true },
233
- { type: 'function', names: ['eval'], processor: built_in_1.BuiltInProcName.Eval, config: { includeFunctionCall: true }, assumePrimitive: true },
234
- { type: 'function', names: ['cat'], processor: built_in_1.BuiltInProcName.Default, config: { forceArgs: 'all', hasUnknownSideEffects: { type: 'link-to-last-call', callName: /^sink$/ } }, assumePrimitive: false },
235
- { type: 'function', names: ['switch'], processor: built_in_1.BuiltInProcName.Default, config: { forceArgs: [true] }, assumePrimitive: false },
236
- { type: 'function', names: ['return'], processor: built_in_1.BuiltInProcName.Default, config: { returnsNthArgument: 0, cfg: 1 /* ExitPointType.Return */, useAsProcessor: built_in_1.BuiltInProcName.Return }, assumePrimitive: true },
233
+ { type: 'function', names: ['eval'], processor: built_in_proc_name_1.BuiltInProcName.Eval, config: { includeFunctionCall: true }, assumePrimitive: true },
234
+ { type: 'function', names: ['cat'], processor: built_in_proc_name_1.BuiltInProcName.Default, config: { forceArgs: 'all', hasUnknownSideEffects: { type: 'link-to-last-call', callName: /^sink$/ } }, assumePrimitive: false },
235
+ { type: 'function', names: ['switch'], processor: built_in_proc_name_1.BuiltInProcName.Default, config: { forceArgs: [true] }, assumePrimitive: false },
236
+ { type: 'function', names: ['return'], processor: built_in_proc_name_1.BuiltInProcName.Default, config: { returnsNthArgument: 0, cfg: 1 /* ExitPointType.Return */, useAsProcessor: built_in_proc_name_1.BuiltInProcName.Return }, assumePrimitive: true },
237
237
  {
238
238
  type: 'function',
239
239
  names: ['stop', 'abort', 'cli_abort', 'throw', 'stop_bad_type', 'stop_bad_element_type', 'stop_bad_element_length'],
240
- processor: built_in_1.BuiltInProcName.Default,
241
- config: { useAsProcessor: built_in_1.BuiltInProcName.Stop, cfg: 4 /* ExitPointType.Error */, forceArgs: ['all'] },
240
+ processor: built_in_proc_name_1.BuiltInProcName.Default,
241
+ config: { useAsProcessor: built_in_proc_name_1.BuiltInProcName.Stop, cfg: 4 /* ExitPointType.Error */, forceArgs: ['all'] },
242
242
  assumePrimitive: false
243
243
  },
244
- { type: 'function', names: ['try'], processor: built_in_1.BuiltInProcName.Try, config: { block: 'expr', handlers: {} }, assumePrimitive: true },
245
- { type: 'function', names: ['tryCatch', 'tryCatchLog'], processor: built_in_1.BuiltInProcName.Try, config: { block: 'expr', handlers: { error: 'error', finally: 'finally' } }, assumePrimitive: true },
246
- { type: 'function', names: ['stopifnot', 'assert_that'], processor: built_in_1.BuiltInProcName.StopIfNot, config: {}, assumePrimitive: false },
247
- { type: 'function', names: ['break'], processor: built_in_1.BuiltInProcName.Default, config: { useAsProcessor: built_in_1.BuiltInProcName.Break, cfg: 2 /* ExitPointType.Break */ }, assumePrimitive: false },
248
- { type: 'function', names: ['next'], processor: built_in_1.BuiltInProcName.Default, config: { cfg: 3 /* ExitPointType.Next */ }, assumePrimitive: false },
249
- { type: 'function', names: ['{'], processor: built_in_1.BuiltInProcName.ExpressionList, config: {}, assumePrimitive: true },
250
- { type: 'function', names: ['source'], processor: built_in_1.BuiltInProcName.Source, config: { includeFunctionCall: true, forceFollow: false }, assumePrimitive: false },
251
- { type: 'function', names: ['[', '[['], processor: built_in_1.BuiltInProcName.Access, config: { treatIndicesAsString: false }, assumePrimitive: true },
252
- { type: 'function', names: ['$', '@'], processor: built_in_1.BuiltInProcName.Access, config: { treatIndicesAsString: true }, assumePrimitive: true },
253
- { type: 'function', names: ['if'], processor: built_in_1.BuiltInProcName.IfThenElse, config: {}, assumePrimitive: true },
254
- { type: 'function', names: ['ifelse', 'fifelse', 'IfElse'], processor: built_in_1.BuiltInProcName.IfThenElse, config: { args: { cond: 'test', yes: 'yes', no: 'no' } }, assumePrimitive: true },
255
- { type: 'function', names: ['if_else'], processor: built_in_1.BuiltInProcName.IfThenElse, config: { args: { cond: 'condition', yes: 'true', no: 'false' } }, assumePrimitive: true },
256
- { type: 'function', names: ['get'], processor: built_in_1.BuiltInProcName.Get, config: {}, assumePrimitive: false },
257
- { type: 'function', names: [identifier_1.Identifier.make('library', 'base'), identifier_1.Identifier.make('require', 'base')], processor: built_in_1.BuiltInProcName.Library, config: {}, assumePrimitive: false },
258
- { type: 'function', names: ['<-', '='], processor: built_in_1.BuiltInProcName.Assignment, config: { canBeReplacement: true }, assumePrimitive: true },
259
- { type: 'function', names: [':='], processor: built_in_1.BuiltInProcName.Assignment, config: {}, assumePrimitive: true },
260
- { type: 'function', names: ['assign', 'setValidity'], processor: built_in_1.BuiltInProcName.Assignment, config: { targetVariable: true, mayHaveMoreArgs: true }, assumePrimitive: true },
261
- { type: 'function', names: ['setMethod'], processor: built_in_1.BuiltInProcName.AssignmentLike, config: { targetVariable: true, canBeReplacement: false, target: { idx: 0, name: 'f' }, source: { idx: 2, name: 'definition' }, modesForFn: ['s4'] }, assumePrimitive: true },
262
- { type: 'function', names: ['delayedAssign'], processor: built_in_1.BuiltInProcName.Assignment, config: { quoteSource: true, targetVariable: true }, assumePrimitive: true },
263
- { type: 'function', names: ['<<-'], processor: built_in_1.BuiltInProcName.Assignment, config: { superAssignment: true, canBeReplacement: true }, assumePrimitive: true },
264
- { type: 'function', names: ['->'], processor: built_in_1.BuiltInProcName.Assignment, config: { swapSourceAndTarget: true, canBeReplacement: true }, assumePrimitive: true },
265
- { type: 'function', names: ['->>'], processor: built_in_1.BuiltInProcName.Assignment, config: { superAssignment: true, swapSourceAndTarget: true, canBeReplacement: true }, assumePrimitive: true },
266
- { type: 'function', names: ['&&', '&'], processor: built_in_1.BuiltInProcName.SpecialBinOp, config: { lazy: true, evalRhsWhen: true }, assumePrimitive: true },
267
- { type: 'function', names: ['||', '|'], processor: built_in_1.BuiltInProcName.SpecialBinOp, config: { lazy: true, evalRhsWhen: false }, assumePrimitive: true },
268
- { type: 'function', names: ['|>', '%>%'], processor: built_in_1.BuiltInProcName.Pipe, config: {}, assumePrimitive: true },
269
- { type: 'function', names: ['function', '\\'], processor: built_in_1.BuiltInProcName.FunctionDefinition, config: {}, assumePrimitive: true },
270
- { type: 'function', names: ['quote', 'substitute', 'bquote'], processor: built_in_1.BuiltInProcName.Quote, config: { quoteArgumentsWithIndex: 0 }, assumePrimitive: true },
271
- { type: 'function', names: ['local'], processor: built_in_1.BuiltInProcName.Local, config: { args: { env: 'envir', expr: 'expr' } }, assumePrimitive: false },
272
- { type: 'function', names: ['for'], processor: built_in_1.BuiltInProcName.ForLoop, config: {}, assumePrimitive: true },
273
- { type: 'function', names: ['repeat'], processor: built_in_1.BuiltInProcName.RepeatLoop, config: {}, assumePrimitive: true },
274
- { type: 'function', names: ['while'], processor: built_in_1.BuiltInProcName.WhileLoop, config: {}, assumePrimitive: true },
275
- { type: 'function', names: ['do.call'], processor: built_in_1.BuiltInProcName.Apply, config: { indexOfFunction: 0, unquoteFunction: true }, assumePrimitive: true },
276
- { type: 'function', names: ['UseMethod'], processor: built_in_1.BuiltInProcName.S3Dispatch, config: { args: { generic: 'generic', object: 'object' } }, assumePrimitive: true },
277
- { type: 'function', names: ['NextMethod'], processor: built_in_1.BuiltInProcName.S3Dispatch, config: { args: { generic: 'generic', object: 'object' }, inferFromClosure: true }, assumePrimitive: true },
278
- { type: 'function', names: ['new_generic'], processor: built_in_1.BuiltInProcName.S7NewGeneric, config: { args: { name: 'name', dispatchArg: 'dispatch_args', fun: 'fun' } }, assumePrimitive: true },
279
- { type: 'function', names: ['setGeneric'], processor: built_in_1.BuiltInProcName.S7NewGeneric, config: { args: { name: 'name', dispatchArg: undefined, fun: 'fun' } }, assumePrimitive: true },
280
- { type: 'function', names: ['S7_dispatch'], processor: built_in_1.BuiltInProcName.S7Dispatch, config: { libFn: true }, assumePrimitive: true },
281
- { type: 'function', names: ['.Primitive', '.Internal'], processor: built_in_1.BuiltInProcName.Apply, config: { indexOfFunction: 0, unquoteFunction: true, resolveInEnvironment: 'global' }, assumePrimitive: true },
282
- { type: 'function', names: ['interference'], processor: built_in_1.BuiltInProcName.Apply, config: { unquoteFunction: true, nameOfFunctionArgument: 'propensity_integrand', libFn: true }, assumePrimitive: false },
283
- { type: 'function', names: ['ddply'], processor: built_in_1.BuiltInProcName.Apply, config: { unquoteFunction: true, indexOfFunction: 2, nameOfFunctionArgument: '.fun', libFn: true }, assumePrimitive: false },
284
- { type: 'function', names: ['list'], processor: built_in_1.BuiltInProcName.List, config: {}, assumePrimitive: true },
285
- { type: 'function', names: ['Recall'], processor: built_in_1.BuiltInProcName.Recall, config: { libFn: true }, assumePrimitive: false },
286
- { type: 'function', names: ['c'], processor: built_in_1.BuiltInProcName.Vector, config: {}, assumePrimitive: true, evalHandler: 'built-in:c' },
244
+ { type: 'function', names: ['try'], processor: built_in_proc_name_1.BuiltInProcName.Try, config: { block: 'expr', handlers: {} }, assumePrimitive: true },
245
+ { type: 'function', names: ['tryCatch', 'tryCatchLog'], processor: built_in_proc_name_1.BuiltInProcName.Try, config: { block: 'expr', handlers: { error: 'error', finally: 'finally' } }, assumePrimitive: true },
246
+ { type: 'function', names: ['stopifnot', 'assert_that'], processor: built_in_proc_name_1.BuiltInProcName.StopIfNot, config: {}, assumePrimitive: false },
247
+ { type: 'function', names: ['break'], processor: built_in_proc_name_1.BuiltInProcName.Default, config: { useAsProcessor: built_in_proc_name_1.BuiltInProcName.Break, cfg: 2 /* ExitPointType.Break */ }, assumePrimitive: false },
248
+ { type: 'function', names: ['next'], processor: built_in_proc_name_1.BuiltInProcName.Default, config: { cfg: 3 /* ExitPointType.Next */ }, assumePrimitive: false },
249
+ { type: 'function', names: ['{'], processor: built_in_proc_name_1.BuiltInProcName.ExpressionList, config: {}, assumePrimitive: true },
250
+ { type: 'function', names: ['source'], processor: built_in_proc_name_1.BuiltInProcName.Source, config: { includeFunctionCall: true, forceFollow: false }, assumePrimitive: false },
251
+ { type: 'function', names: ['[', '[['], processor: built_in_proc_name_1.BuiltInProcName.Access, config: { treatIndicesAsString: false }, assumePrimitive: true },
252
+ { type: 'function', names: ['$', '@'], processor: built_in_proc_name_1.BuiltInProcName.Access, config: { treatIndicesAsString: true }, assumePrimitive: true },
253
+ { type: 'function', names: ['if'], processor: built_in_proc_name_1.BuiltInProcName.IfThenElse, config: {}, assumePrimitive: true },
254
+ { type: 'function', names: ['ifelse', 'fifelse', 'IfElse'], processor: built_in_proc_name_1.BuiltInProcName.IfThenElse, config: { args: { cond: 'test', yes: 'yes', no: 'no' } }, assumePrimitive: true },
255
+ { type: 'function', names: ['if_else'], processor: built_in_proc_name_1.BuiltInProcName.IfThenElse, config: { args: { cond: 'condition', yes: 'true', no: 'false' } }, assumePrimitive: true },
256
+ { type: 'function', names: ['get'], processor: built_in_proc_name_1.BuiltInProcName.Get, config: {}, assumePrimitive: false },
257
+ { type: 'function', names: [identifier_1.Identifier.make('library', 'base'), identifier_1.Identifier.make('require', 'base')], processor: built_in_proc_name_1.BuiltInProcName.Library, config: {}, assumePrimitive: false },
258
+ { type: 'function', names: ['<-', '='], processor: built_in_proc_name_1.BuiltInProcName.Assignment, config: { canBeReplacement: true }, assumePrimitive: true },
259
+ { type: 'function', names: [':='], processor: built_in_proc_name_1.BuiltInProcName.Assignment, config: {}, assumePrimitive: true },
260
+ { type: 'function', names: ['assign', 'setValidity'], processor: built_in_proc_name_1.BuiltInProcName.Assignment, config: { targetVariable: true, mayHaveMoreArgs: true }, assumePrimitive: true },
261
+ { type: 'function', names: ['setMethod'], processor: built_in_proc_name_1.BuiltInProcName.AssignmentLike, config: { targetVariable: true, canBeReplacement: false, target: { idx: 0, name: 'f' }, source: { idx: 2, name: 'definition' }, modesForFn: ['s4'] }, assumePrimitive: true },
262
+ { type: 'function', names: ['delayedAssign'], processor: built_in_proc_name_1.BuiltInProcName.Assignment, config: { quoteSource: true, targetVariable: true }, assumePrimitive: true },
263
+ { type: 'function', names: ['<<-'], processor: built_in_proc_name_1.BuiltInProcName.Assignment, config: { superAssignment: true, canBeReplacement: true }, assumePrimitive: true },
264
+ { type: 'function', names: ['->'], processor: built_in_proc_name_1.BuiltInProcName.Assignment, config: { swapSourceAndTarget: true, canBeReplacement: true }, assumePrimitive: true },
265
+ { type: 'function', names: ['->>'], processor: built_in_proc_name_1.BuiltInProcName.Assignment, config: { superAssignment: true, swapSourceAndTarget: true, canBeReplacement: true }, assumePrimitive: true },
266
+ { type: 'function', names: ['&&', '&'], processor: built_in_proc_name_1.BuiltInProcName.SpecialBinOp, config: { lazy: true, evalRhsWhen: true }, assumePrimitive: true },
267
+ { type: 'function', names: ['||', '|'], processor: built_in_proc_name_1.BuiltInProcName.SpecialBinOp, config: { lazy: true, evalRhsWhen: false }, assumePrimitive: true },
268
+ { type: 'function', names: ['|>', '%>%'], processor: built_in_proc_name_1.BuiltInProcName.Pipe, config: {}, assumePrimitive: true },
269
+ { type: 'function', names: ['function', '\\'], processor: built_in_proc_name_1.BuiltInProcName.FunctionDefinition, config: {}, assumePrimitive: true },
270
+ { type: 'function', names: ['quote', 'substitute', 'bquote'], processor: built_in_proc_name_1.BuiltInProcName.Quote, config: { quoteArgumentsWithIndex: 0 }, assumePrimitive: true },
271
+ { type: 'function', names: ['local'], processor: built_in_proc_name_1.BuiltInProcName.Local, config: { args: { env: 'envir', expr: 'expr' } }, assumePrimitive: false },
272
+ { type: 'function', names: ['for'], processor: built_in_proc_name_1.BuiltInProcName.ForLoop, config: {}, assumePrimitive: true },
273
+ { type: 'function', names: ['repeat'], processor: built_in_proc_name_1.BuiltInProcName.RepeatLoop, config: {}, assumePrimitive: true },
274
+ { type: 'function', names: ['while'], processor: built_in_proc_name_1.BuiltInProcName.WhileLoop, config: {}, assumePrimitive: true },
275
+ { type: 'function', names: ['do.call'], processor: built_in_proc_name_1.BuiltInProcName.Apply, config: { indexOfFunction: 0, unquoteFunction: true }, assumePrimitive: true },
276
+ { type: 'function', names: ['UseMethod'], processor: built_in_proc_name_1.BuiltInProcName.S3Dispatch, config: { args: { generic: 'generic', object: 'object' } }, assumePrimitive: true },
277
+ { type: 'function', names: ['NextMethod'], processor: built_in_proc_name_1.BuiltInProcName.S3Dispatch, config: { args: { generic: 'generic', object: 'object' }, inferFromClosure: true }, assumePrimitive: true },
278
+ { type: 'function', names: ['new_generic'], processor: built_in_proc_name_1.BuiltInProcName.S7NewGeneric, config: { args: { name: 'name', dispatchArg: 'dispatch_args', fun: 'fun' } }, assumePrimitive: true },
279
+ { type: 'function', names: ['setGeneric'], processor: built_in_proc_name_1.BuiltInProcName.S7NewGeneric, config: { args: { name: 'name', dispatchArg: undefined, fun: 'fun' } }, assumePrimitive: true },
280
+ { type: 'function', names: ['S7_dispatch'], processor: built_in_proc_name_1.BuiltInProcName.S7Dispatch, config: { libFn: true }, assumePrimitive: true },
281
+ { type: 'function', names: ['.Primitive', '.Internal'], processor: built_in_proc_name_1.BuiltInProcName.Apply, config: { indexOfFunction: 0, unquoteFunction: true, resolveInEnvironment: 'global' }, assumePrimitive: true },
282
+ { type: 'function', names: ['interference'], processor: built_in_proc_name_1.BuiltInProcName.Apply, config: { unquoteFunction: true, nameOfFunctionArgument: 'propensity_integrand', libFn: true }, assumePrimitive: false },
283
+ { type: 'function', names: ['ddply'], processor: built_in_proc_name_1.BuiltInProcName.Apply, config: { unquoteFunction: true, indexOfFunction: 2, nameOfFunctionArgument: '.fun', libFn: true }, assumePrimitive: false },
284
+ { type: 'function', names: ['list'], processor: built_in_proc_name_1.BuiltInProcName.List, config: {}, assumePrimitive: true },
285
+ { type: 'function', names: ['Recall'], processor: built_in_proc_name_1.BuiltInProcName.Recall, config: { libFn: true }, assumePrimitive: false },
286
+ { type: 'function', names: ['c'], processor: built_in_proc_name_1.BuiltInProcName.Vector, config: {}, assumePrimitive: true, evalHandler: 'built-in:c' },
287
287
  {
288
288
  type: 'function',
289
289
  names: ['setnames', 'setNames', 'setkey', 'setkeyv', 'setindex', 'setindexv', 'setattr'],
290
- processor: built_in_1.BuiltInProcName.Assignment,
290
+ processor: built_in_proc_name_1.BuiltInProcName.Assignment,
291
291
  config: {
292
292
  canBeReplacement: false,
293
293
  targetVariable: false,
@@ -306,7 +306,7 @@ exports.DefaultBuiltinConfig = [
306
306
  /* file creation/removal */
307
307
  'dir.create', 'dir_create', 'Sys.chmod', 'unlink', 'file.remove', 'file.rename', 'file.copy', 'file.link', 'file.append', 'Sys.junction'
308
308
  ],
309
- processor: built_in_1.BuiltInProcName.Default,
309
+ processor: built_in_proc_name_1.BuiltInProcName.Default,
310
310
  config: { hasUnknownSideEffects: true },
311
311
  assumePrimitive: false
312
312
  },
@@ -317,14 +317,14 @@ exports.DefaultBuiltinConfig = [
317
317
  /* downloader and installer functions (R, devtools, BiocManager) */
318
318
  'library.dynam', 'install.packages', 'install', 'install_github', 'install_gitlab', 'install_bitbucket', 'install_url', 'install_git', 'install_svn', 'install_local', 'install_version', 'update_packages',
319
319
  ],
320
- processor: built_in_1.BuiltInProcName.Default,
320
+ processor: built_in_proc_name_1.BuiltInProcName.Default,
321
321
  config: { hasUnknownSideEffects: true, libFn: true },
322
322
  assumePrimitive: false
323
323
  },
324
324
  {
325
325
  type: 'function',
326
326
  names: ['on.exit'],
327
- processor: built_in_1.BuiltInProcName.RegisterHook,
327
+ processor: built_in_proc_name_1.BuiltInProcName.RegisterHook,
328
328
  config: {
329
329
  hook: hooks_1.KnownHooks.OnFnExit,
330
330
  args: {
@@ -367,13 +367,13 @@ exports.DefaultBuiltinConfig = [
367
367
  */
368
368
  function getDefaultProcessor(name) {
369
369
  if (name.startsWith(unnamed_call_handling_1.UnnamedFunctionCallPrefix)) {
370
- return built_in_1.BuiltInProcName.Unnamed;
370
+ return built_in_proc_name_1.BuiltInProcName.Unnamed;
371
371
  }
372
372
  const fn = exports.DefaultBuiltinConfig.find(def => (def.names.includes(name) && def.type !== 'constant')
373
373
  || (def.type === 'replacement' && def.suffixes.flatMap(d => def.names.map(n => `${n}${d}`)).includes(name)));
374
374
  if (fn?.type === 'replacement') {
375
- return built_in_1.BuiltInProcName.Replacement;
375
+ return built_in_proc_name_1.BuiltInProcName.Replacement;
376
376
  }
377
- return fn?.processor === built_in_1.BuiltInProcName.DefaultReadAllArgs ? built_in_1.BuiltInProcName.Default : fn?.processor;
377
+ return fn?.processor === built_in_proc_name_1.BuiltInProcName.DefaultReadAllArgs ? built_in_proc_name_1.BuiltInProcName.Default : fn?.processor;
378
378
  }
379
379
  //# sourceMappingURL=default-builtin-config.js.map
@@ -33,6 +33,7 @@ export type Identifier = BrandedIdentifier | [id: BrandedIdentifier, namespace:
33
33
  * ```
34
34
  */
35
35
  export declare const Identifier: {
36
+ readonly name: "Identifier";
36
37
  /**
37
38
  * Create an identifier from its name and optional namespace.
38
39
  * Please note that for `internal` to count, a namespace must be provided!
@@ -17,6 +17,7 @@ const dotDotDotAccess = /^\.\.\d+$/;
17
17
  * ```
18
18
  */
19
19
  exports.Identifier = {
20
+ name: 'Identifier',
20
21
  /**
21
22
  * Create an identifier from its name and optional namespace.
22
23
  * Please note that for `internal` to count, a namespace must be provided!
@@ -34,7 +34,7 @@ function getFunctionCallAlias(sourceId, dataflow, environment) {
34
34
  return undefined;
35
35
  }
36
36
  const defs = (0, resolve_by_name_1.resolveByName)(identifier, environment, identifier_1.ReferenceType.Function);
37
- if (defs === undefined || defs.length !== 1) {
37
+ if (defs?.length !== 1) {
38
38
  return undefined;
39
39
  }
40
40
  return [sourceId];
@@ -206,7 +206,7 @@ function trackAliasInEnvironments(identifier, environment, { blocked, idMap, res
206
206
  }
207
207
  }
208
208
  }
209
- if (values.size == 0) {
209
+ if (values.size === 0) {
210
210
  return r_value_1.Top;
211
211
  }
212
212
  return (0, set_constants_1.setFrom)(...values);
@@ -246,18 +246,7 @@ function trackAliasInEnvironments(identifier, environment, { blocked, idMap, res
246
246
  }
247
247
  });
248
248
  function isNestedInLoop(node, ast) {
249
- const parent = node?.info.parent;
250
- if (node === undefined || !parent) {
251
- return false;
252
- }
253
- const parentNode = ast.get(parent);
254
- if (parentNode === undefined) {
255
- return false;
256
- }
257
- if (parentNode.type === type_1.RType.WhileLoop || parentNode.type === type_1.RType.RepeatLoop || parentNode.type === type_1.RType.ForLoop) {
258
- return true;
259
- }
260
- return isNestedInLoop(parentNode, ast);
249
+ return model_1.RNode.iterateParents(node, ast).some(model_1.RLoopConstructs.is);
261
250
  }
262
251
  /**
263
252
  * Please use {@link resolveIdToValue}
@@ -311,12 +300,14 @@ function trackAliasesInGraph(id, graph, ctx, idMap) {
311
300
  }
312
301
  const isFn = t === vertex_1.VertexType.FunctionCall;
313
302
  const outgoingEdges = graph.outgoingEdges(id) ?? [];
303
+ let foundRetuns = false;
314
304
  // travel all read and defined-by edges
315
305
  for (const [targetId, { types }] of outgoingEdges) {
316
306
  if (isFn) {
317
307
  if (types === edge_1.EdgeType.Returns || types === edge_1.EdgeType.DefinedByOnCall || types === edge_1.EdgeType.DefinedBy) {
318
308
  queue.add(targetId, baseEnvironment, cleanFingerprint, false);
319
309
  }
310
+ foundRetuns ||= edge_1.DfEdge.includesType({ types }, edge_1.EdgeType.Returns);
320
311
  continue;
321
312
  }
322
313
  // currently, they have to be exact!
@@ -324,6 +315,9 @@ function trackAliasesInGraph(id, graph, ctx, idMap) {
324
315
  queue.add(targetId, baseEnvironment, cleanFingerprint, false);
325
316
  }
326
317
  }
318
+ if (isFn && !foundRetuns) {
319
+ return r_value_1.Top;
320
+ }
327
321
  }
328
322
  if (forceTop || resultIds.length === 0) {
329
323
  return r_value_1.Top;
@@ -332,10 +326,13 @@ function trackAliasesInGraph(id, graph, ctx, idMap) {
332
326
  for (const id of resultIds) {
333
327
  const node = idMap.get(id);
334
328
  if (node !== undefined) {
329
+ if (node.info.role === "param-v" /* RoleInParent.ParameterDefaultValue */ || model_1.RNode.iterateParents(node, idMap).some(p => p.info.role === "param-v" /* RoleInParent.ParameterDefaultValue */)) {
330
+ return r_value_1.Top;
331
+ }
335
332
  values.add((0, general_1.valueFromRNodeConstant)(node));
336
333
  }
337
334
  }
338
- return (0, set_constants_1.setFrom)(...values);
335
+ return values.size === 0 ? r_value_1.Top : (0, set_constants_1.setFrom)(...values);
339
336
  }
340
337
  /**
341
338
  * Please use {@link resolveIdToValue}
@@ -9,7 +9,6 @@ const r_function_call_1 = require("../../../r-bridge/lang-4.x/ast/model/nodes/r-
9
9
  const type_1 = require("../../../r-bridge/lang-4.x/ast/model/type");
10
10
  const r_value_1 = require("../../../util/r-value");
11
11
  const built_in_1 = require("../../environments/built-in");
12
- const dfg_get_origin_1 = require("../../origin/dfg-get-origin");
13
12
  const interval_constants_1 = require("../values/intervals/interval-constants");
14
13
  const logical_constants_1 = require("../values/logical/logical-constants");
15
14
  const r_value_2 = require("../values/r-value");
@@ -19,6 +18,7 @@ const alias_tracking_1 = require("./alias-tracking");
19
18
  const scalar_constants_1 = require("../values/scalar/scalar-constants");
20
19
  const identifier_1 = require("../../environments/identifier");
21
20
  const node_id_1 = require("../../../r-bridge/lang-4.x/ast/model/processing/node-id");
21
+ const df_helper_1 = require("../../graph/df-helper");
22
22
  /**
23
23
  * Helper function used by {@link resolveIdToValue}, please use that instead, if
24
24
  * you want to resolve the value of an identifier / node
@@ -42,7 +42,7 @@ function resolveNode({ resolve, node, ctx, blocked, environment, graph, idMap })
42
42
  return { type: 'function-definition' };
43
43
  }
44
44
  else if ((nt === type_1.RType.FunctionCall || nt === type_1.RType.BinaryOp || nt === type_1.RType.UnaryOp) && graph) {
45
- const origin = (0, dfg_get_origin_1.getOriginInDfg)(graph, node.info.id)?.[0];
45
+ const origin = df_helper_1.Dataflow.origin(graph, node.info.id)?.[0];
46
46
  if (origin === undefined || origin.type !== 3 /* OriginType.BuiltInFunctionOrigin */) {
47
47
  return r_value_2.Top;
48
48
  }
@@ -1,6 +1,6 @@
1
1
  import { NodeId } from '../../r-bridge/lang-4.x/ast/model/processing/node-id';
2
- import type { CallGraph } from '../graph/call-graph';
3
2
  import type { ControlDependency } from '../info';
3
+ import type { CallGraph } from '../graph/call-graph';
4
4
  export interface ExceptionPoint {
5
5
  id: NodeId;
6
6
  cds?: readonly ControlDependency[];