@eagleoutice/flowr 2.6.1 → 2.6.2
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.
- package/README.md +131 -30
- package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
- package/abstract-interpretation/data-frame/absint-visitor.d.ts +2 -3
- package/abstract-interpretation/data-frame/absint-visitor.js +15 -10
- package/abstract-interpretation/data-frame/dataframe-domain.d.ts +18 -12
- package/abstract-interpretation/data-frame/dataframe-domain.js +25 -13
- package/abstract-interpretation/data-frame/mappers/access-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/access-mapper.js +0 -1
- package/abstract-interpretation/data-frame/mappers/arguments.d.ts +1 -10
- package/abstract-interpretation/data-frame/mappers/arguments.js +0 -7
- package/abstract-interpretation/data-frame/mappers/assignment-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/assignment-mapper.js +0 -1
- package/abstract-interpretation/data-frame/mappers/function-mapper.d.ts +4 -5
- package/abstract-interpretation/data-frame/mappers/function-mapper.js +3 -4
- package/abstract-interpretation/data-frame/mappers/replacement-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/replacement-mapper.js +0 -1
- package/abstract-interpretation/data-frame/resolve-args.d.ts +1 -1
- package/abstract-interpretation/data-frame/semantics.d.ts +3 -4
- package/abstract-interpretation/data-frame/semantics.js +171 -162
- package/abstract-interpretation/data-frame/shape-inference.d.ts +1 -4
- package/abstract-interpretation/data-frame/shape-inference.js +7 -9
- package/abstract-interpretation/domains/abstract-domain.d.ts +59 -18
- package/abstract-interpretation/domains/abstract-domain.js +74 -1
- package/abstract-interpretation/domains/bounded-set-domain.d.ts +37 -24
- package/abstract-interpretation/domains/bounded-set-domain.js +70 -47
- package/abstract-interpretation/domains/interval-domain.d.ts +33 -25
- package/abstract-interpretation/domains/interval-domain.js +109 -50
- package/abstract-interpretation/domains/lattice.d.ts +19 -11
- package/abstract-interpretation/domains/mapped-abstract-domain.d.ts +34 -0
- package/abstract-interpretation/domains/mapped-abstract-domain.js +189 -0
- package/abstract-interpretation/domains/positive-interval-domain.d.ts +16 -12
- package/abstract-interpretation/domains/positive-interval-domain.js +20 -11
- package/abstract-interpretation/domains/product-domain.d.ts +18 -23
- package/abstract-interpretation/domains/product-domain.js +11 -19
- package/abstract-interpretation/domains/satisfiable-domain.d.ts +29 -0
- package/abstract-interpretation/domains/satisfiable-domain.js +24 -0
- package/abstract-interpretation/domains/set-upper-bound-domain.d.ts +54 -0
- package/abstract-interpretation/domains/set-upper-bound-domain.js +197 -0
- package/abstract-interpretation/domains/singleton-domain.d.ts +24 -19
- package/abstract-interpretation/domains/singleton-domain.js +52 -37
- package/abstract-interpretation/domains/state-abstract-domain.d.ts +8 -24
- package/abstract-interpretation/domains/state-abstract-domain.js +2 -167
- package/abstract-interpretation/normalized-ast-fold.d.ts +1 -7
- package/abstract-interpretation/normalized-ast-fold.js +0 -5
- package/benchmark/slicer.d.ts +3 -7
- package/benchmark/slicer.js +14 -19
- package/benchmark/stats/print.d.ts +6 -0
- package/benchmark/stats/print.js +6 -0
- package/benchmark/stats/size-of.d.ts +0 -1
- package/benchmark/stats/size-of.js +0 -1
- package/benchmark/stats/stats.d.ts +2 -2
- package/benchmark/stopwatch.d.ts +11 -13
- package/benchmark/stopwatch.js +11 -13
- package/benchmark/summarizer/first-phase/input.d.ts +6 -0
- package/benchmark/summarizer/first-phase/input.js +6 -0
- package/benchmark/summarizer/first-phase/process.d.ts +13 -1
- package/benchmark/summarizer/first-phase/process.js +12 -0
- package/benchmark/summarizer/second-phase/graph.d.ts +3 -0
- package/benchmark/summarizer/second-phase/graph.js +3 -0
- package/benchmark/summarizer/second-phase/process.d.ts +12 -0
- package/benchmark/summarizer/second-phase/process.js +12 -0
- package/benchmark/summarizer/summarizer.d.ts +1 -2
- package/cli/benchmark-app.js +0 -2
- package/cli/common/features.d.ts +7 -1
- package/cli/common/features.js +6 -0
- package/cli/common/script.d.ts +3 -1
- package/cli/common/script.js +3 -1
- package/cli/common/scripts-info.d.ts +3 -1
- package/cli/common/scripts-info.js +3 -0
- package/cli/flowr-main-options.d.ts +3 -0
- package/cli/flowr-main-options.js +3 -0
- package/cli/repl/commands/repl-commands.d.ts +13 -0
- package/cli/repl/commands/repl-commands.js +13 -2
- package/cli/repl/commands/repl-execute.d.ts +4 -0
- package/cli/repl/commands/repl-execute.js +6 -2
- package/cli/repl/commands/repl-main.d.ts +15 -9
- package/cli/repl/commands/repl-parse.js +2 -2
- package/cli/repl/commands/repl-query.js +16 -5
- package/cli/repl/core.d.ts +24 -6
- package/cli/repl/core.js +28 -19
- package/cli/repl/execute.d.ts +0 -2
- package/cli/repl/execute.js +0 -2
- package/cli/repl/parser/slice-query-parser.d.ts +14 -0
- package/cli/repl/parser/slice-query-parser.js +34 -0
- package/cli/repl/print-version.d.ts +6 -0
- package/cli/repl/print-version.js +6 -0
- package/cli/repl/server/compact.d.ts +8 -0
- package/cli/repl/server/compact.js +8 -0
- package/cli/repl/server/connection.d.ts +4 -3
- package/cli/repl/server/connection.js +3 -31
- package/cli/repl/server/messages/all-messages.d.ts +1 -3
- package/cli/repl/server/messages/all-messages.js +0 -1
- package/cli/repl/server/messages/message-analysis.d.ts +0 -2
- package/cli/repl/server/messages/message-query.d.ts +1 -1
- package/cli/repl/server/messages/message-repl.d.ts +0 -1
- package/cli/repl/server/send.d.ts +6 -0
- package/cli/repl/server/send.js +6 -0
- package/cli/repl/server/server.d.ts +1 -1
- package/cli/repl/server/validate.d.ts +10 -1
- package/cli/repl/server/validate.js +9 -0
- package/cli/run-script.d.ts +1 -2
- package/cli/run-script.js +0 -1
- package/cli/script-core/statistics-core.d.ts +3 -0
- package/cli/script-core/statistics-core.js +3 -0
- package/cli/script-core/statistics-helper-core.d.ts +4 -1
- package/cli/script-core/statistics-helper-core.js +3 -0
- package/cli/script-core/summarizer-core.d.ts +3 -0
- package/cli/script-core/summarizer-core.js +3 -0
- package/cli/summarizer-app.d.ts +2 -3
- package/cli/summarizer-app.js +2 -3
- package/config.d.ts +17 -3
- package/config.js +15 -0
- package/control-flow/basic-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/basic-cfg-guided-visitor.js +0 -1
- package/control-flow/cfg-to-basic-blocks.d.ts +1 -1
- package/control-flow/control-flow-graph.d.ts +20 -12
- package/control-flow/control-flow-graph.js +16 -4
- package/control-flow/dfg-cfg-guided-visitor.d.ts +2 -3
- package/control-flow/diff-cfg.d.ts +3 -5
- package/control-flow/diff-cfg.js +0 -1
- package/control-flow/extract-cfg.d.ts +3 -6
- package/control-flow/extract-cfg.js +0 -3
- package/control-flow/happens-before.d.ts +1 -1
- package/control-flow/semantic-cfg-guided-visitor.d.ts +2 -31
- package/control-flow/semantic-cfg-guided-visitor.js +0 -28
- package/control-flow/simple-visitor.d.ts +1 -3
- package/control-flow/simple-visitor.js +0 -2
- package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/useless-loop.d.ts +0 -3
- package/control-flow/useless-loop.js +2 -5
- package/core/pipeline-executor.d.ts +8 -16
- package/core/pipeline-executor.js +9 -18
- package/core/print/dataflow-printer.d.ts +19 -0
- package/core/print/dataflow-printer.js +19 -0
- package/core/print/normalize-printer.d.ts +21 -1
- package/core/print/normalize-printer.js +20 -0
- package/core/print/parse-printer.d.ts +6 -1
- package/core/print/parse-printer.js +5 -0
- package/core/print/print.d.ts +0 -1
- package/core/print/print.js +0 -1
- package/core/print/slice-diff-ansi.d.ts +3 -0
- package/core/print/slice-diff-ansi.js +3 -0
- package/core/steps/all/core/00-parse.d.ts +1 -1
- package/core/steps/all/core/01-parse-tree-sitter.d.ts +1 -11
- package/core/steps/all/core/10-normalize.d.ts +3 -0
- package/core/steps/all/core/10-normalize.js +3 -0
- package/core/steps/all/core/11-normalize-tree-sitter.d.ts +4 -3
- package/core/steps/pipeline/create-pipeline.d.ts +1 -1
- package/core/steps/pipeline/default-pipelines.d.ts +47 -47
- package/core/steps/pipeline/default-pipelines.js +0 -4
- package/core/steps/pipeline/pipeline.d.ts +1 -8
- package/core/steps/pipeline/pipeline.js +1 -3
- package/core/steps/pipeline-step.d.ts +0 -1
- package/core/steps/pipeline-step.js +0 -1
- package/dataflow/cluster.d.ts +3 -0
- package/dataflow/cluster.js +3 -0
- package/dataflow/environments/append.d.ts +1 -1
- package/dataflow/environments/built-in-config.d.ts +1 -5
- package/dataflow/environments/built-in-config.js +0 -1
- package/dataflow/environments/built-in.d.ts +10 -5
- package/dataflow/environments/built-in.js +6 -1
- package/dataflow/environments/clone.d.ts +1 -1
- package/dataflow/environments/default-builtin-config.d.ts +3 -0
- package/dataflow/environments/default-builtin-config.js +4 -1
- package/dataflow/environments/diff.d.ts +11 -2
- package/dataflow/environments/diff.js +9 -0
- package/dataflow/environments/environment.d.ts +3 -3
- package/dataflow/environments/environment.js +8 -6
- package/dataflow/environments/identifier.d.ts +0 -4
- package/dataflow/environments/identifier.js +0 -1
- package/dataflow/environments/overwrite.d.ts +4 -1
- package/dataflow/environments/overwrite.js +3 -0
- package/dataflow/environments/resolve-by-name.d.ts +4 -4
- package/dataflow/environments/resolve-by-name.js +3 -2
- package/dataflow/environments/scoping.d.ts +4 -1
- package/dataflow/environments/scoping.js +3 -0
- package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
- package/dataflow/eval/resolve/alias-tracking.js +11 -14
- package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
- package/dataflow/eval/resolve/resolve.d.ts +1 -7
- package/dataflow/eval/resolve/resolve.js +0 -5
- package/dataflow/eval/values/general.d.ts +1 -3
- package/dataflow/eval/values/general.js +0 -1
- package/dataflow/eval/values/intervals/interval-constants.d.ts +7 -1
- package/dataflow/eval/values/intervals/interval-constants.js +6 -0
- package/dataflow/eval/values/logical/logical-constants.d.ts +4 -1
- package/dataflow/eval/values/logical/logical-constants.js +3 -0
- package/dataflow/eval/values/r-value.d.ts +12 -0
- package/dataflow/eval/values/r-value.js +12 -0
- package/dataflow/eval/values/scalar/scalar-consatnts.d.ts +7 -1
- package/dataflow/eval/values/scalar/scalar-consatnts.js +6 -0
- package/dataflow/eval/values/sets/set-constants.d.ts +7 -2
- package/dataflow/eval/values/sets/set-constants.js +6 -0
- package/dataflow/eval/values/string/string-constants.d.ts +10 -1
- package/dataflow/eval/values/string/string-constants.js +9 -0
- package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
- package/dataflow/extractor.d.ts +1 -1
- package/dataflow/graph/dataflowgraph-builder.d.ts +20 -38
- package/dataflow/graph/dataflowgraph-builder.js +6 -23
- package/dataflow/graph/diff-dataflow-graph.d.ts +16 -6
- package/dataflow/graph/diff-dataflow-graph.js +12 -1
- package/dataflow/graph/edge.d.ts +9 -0
- package/dataflow/graph/edge.js +9 -0
- package/dataflow/graph/graph.d.ts +6 -19
- package/dataflow/graph/graph.js +4 -15
- package/dataflow/graph/invert-dfg.d.ts +3 -0
- package/dataflow/graph/invert-dfg.js +3 -0
- package/dataflow/graph/quads.d.ts +1 -1
- package/dataflow/graph/unknown-replacement.d.ts +6 -0
- package/dataflow/graph/unknown-replacement.js +6 -0
- package/dataflow/graph/unknown-side-effect.d.ts +8 -0
- package/dataflow/graph/unknown-side-effect.js +8 -0
- package/dataflow/graph/vertex.d.ts +9 -9
- package/dataflow/graph/vertex.js +9 -1
- package/dataflow/info.d.ts +9 -10
- package/dataflow/info.js +6 -1
- package/dataflow/internal/linker.d.ts +25 -9
- package/dataflow/internal/linker.js +23 -7
- package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
- package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -0
- package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-access.js +3 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-apply.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +2 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +10 -4
- package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +6 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-get.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +4 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-library.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-list.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +3 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-rm.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +23 -6
- package/dataflow/internal/process/functions/call/built-in/built-in-source.js +20 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-vector.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +3 -0
- package/dataflow/internal/process/functions/call/common.d.ts +11 -5
- package/dataflow/internal/process/functions/call/common.js +6 -0
- package/dataflow/internal/process/functions/call/default-call-handling.d.ts +3 -0
- package/dataflow/internal/process/functions/call/default-call-handling.js +3 -0
- package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
- package/dataflow/internal/process/functions/call/known-call-handling.js +7 -0
- package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
- package/dataflow/internal/process/functions/call/named-call-handling.js +6 -0
- package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +4 -1
- package/dataflow/internal/process/functions/call/unnamed-call-handling.js +3 -0
- package/dataflow/internal/process/functions/process-argument.d.ts +8 -2
- package/dataflow/internal/process/functions/process-argument.js +6 -0
- package/dataflow/internal/process/functions/process-parameter.d.ts +5 -2
- package/dataflow/internal/process/functions/process-parameter.js +3 -0
- package/dataflow/internal/process/process-symbol.d.ts +3 -0
- package/dataflow/internal/process/process-symbol.js +3 -0
- package/dataflow/internal/process/process-uninteresting-leaf.d.ts +3 -0
- package/dataflow/internal/process/process-uninteresting-leaf.js +3 -0
- package/dataflow/internal/process/process-value.d.ts +3 -0
- package/dataflow/internal/process/process-value.js +3 -0
- package/dataflow/origin/dfg-get-origin.d.ts +0 -2
- package/dataflow/origin/dfg-get-symbol-refs.d.ts +5 -7
- package/dataflow/origin/dfg-get-symbol-refs.js +6 -8
- package/dataflow/processor.d.ts +0 -1
- package/dataflow/processor.js +0 -1
- package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -0
- package/documentation/data/dfg/doc-data-dfg-util.js +6 -0
- package/documentation/data/faq/faqs.d.ts +5 -0
- package/documentation/data/faq/faqs.js +78 -0
- package/documentation/data/faq/wiki-faq-store.d.ts +18 -0
- package/documentation/data/faq/wiki-faq-store.js +75 -0
- package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
- package/documentation/data/server/doc-data-server-messages.js +4 -63
- package/documentation/doc-util/doc-auto-gen.d.ts +6 -0
- package/documentation/doc-util/doc-auto-gen.js +6 -0
- package/documentation/doc-util/doc-benchmarks.d.ts +12 -0
- package/documentation/doc-util/doc-benchmarks.js +12 -0
- package/documentation/doc-util/doc-cfg.d.ts +7 -1
- package/documentation/doc-util/doc-cfg.js +9 -0
- package/documentation/doc-util/doc-cli-option.d.ts +9 -0
- package/documentation/doc-util/doc-cli-option.js +9 -0
- package/documentation/doc-util/doc-code.d.ts +24 -0
- package/documentation/doc-util/doc-code.js +24 -0
- package/documentation/doc-util/doc-dfg.d.ts +7 -1
- package/documentation/doc-util/doc-dfg.js +9 -0
- package/documentation/doc-util/doc-env.d.ts +3 -0
- package/documentation/doc-util/doc-env.js +3 -0
- package/documentation/doc-util/doc-escape.d.ts +0 -1
- package/documentation/doc-util/doc-escape.js +0 -1
- package/documentation/doc-util/doc-files.d.ts +11 -0
- package/documentation/doc-util/doc-files.js +15 -4
- package/documentation/doc-util/doc-general.d.ts +6 -0
- package/documentation/doc-util/doc-general.js +6 -0
- package/documentation/doc-util/doc-normalized-ast.d.ts +7 -1
- package/documentation/doc-util/doc-normalized-ast.js +6 -0
- package/documentation/doc-util/doc-query.d.ts +15 -0
- package/documentation/doc-util/doc-query.js +17 -2
- package/documentation/doc-util/doc-repl.d.ts +6 -0
- package/documentation/doc-util/doc-repl.js +6 -0
- package/documentation/doc-util/doc-search.d.ts +15 -0
- package/documentation/doc-util/doc-search.js +17 -2
- package/documentation/doc-util/doc-server-message.d.ts +13 -1
- package/documentation/doc-util/doc-server-message.js +13 -1
- package/documentation/doc-util/doc-structure.d.ts +9 -0
- package/documentation/doc-util/doc-structure.js +10 -1
- package/documentation/doc-util/doc-types.d.ts +42 -0
- package/documentation/doc-util/doc-types.js +42 -0
- package/documentation/print-analyzer-wiki.js +4 -0
- package/documentation/print-core-wiki.d.ts +3 -0
- package/documentation/print-core-wiki.js +5 -2
- package/documentation/print-dataflow-graph-wiki.js +5 -5
- package/documentation/print-faq-wiki.js +3 -75
- package/documentation/print-interface-wiki.js +1 -1
- package/documentation/print-onboarding-wiki.js +1 -1
- package/documentation/print-query-wiki.js +4 -34
- package/documentation/print-readme.js +105 -0
- package/engines.d.ts +1 -1
- package/linter/linter-executor.d.ts +6 -3
- package/linter/linter-executor.js +3 -0
- package/linter/linter-format.d.ts +8 -0
- package/linter/linter-format.js +8 -0
- package/linter/rules/absolute-path.d.ts +3 -4
- package/linter/rules/dataframe-access-validation.d.ts +3 -4
- package/linter/rules/dataframe-access-validation.js +9 -11
- package/linter/rules/dead-code.d.ts +1 -1
- package/linter/rules/deprecated-functions.d.ts +1 -1
- package/linter/rules/file-path-validity.d.ts +1 -2
- package/linter/rules/function-finder-util.d.ts +1 -2
- package/linter/rules/naming-convention.d.ts +13 -2
- package/linter/rules/naming-convention.js +13 -1
- package/linter/rules/network-functions.d.ts +1 -1
- package/linter/rules/seeded-randomness.d.ts +1 -2
- package/linter/rules/unused-definition.d.ts +2 -3
- package/linter/rules/useless-loop.d.ts +1 -2
- package/package.json +2 -2
- package/project/cache/flowr-analyzer-cache.d.ts +2 -9
- package/project/cache/flowr-analyzer-cache.js +0 -6
- package/project/context/flowr-analyzer-context.d.ts +3 -6
- package/project/context/flowr-analyzer-dependencies-context.d.ts +0 -1
- package/project/context/flowr-analyzer-files-context.d.ts +2 -4
- package/project/context/flowr-file.d.ts +0 -1
- package/project/flowr-analyzer-builder.d.ts +1 -3
- package/project/flowr-analyzer-builder.js +5 -6
- package/project/flowr-analyzer.d.ts +34 -25
- package/project/flowr-analyzer.js +10 -11
- package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +1 -1
- package/project/plugins/file-plugins/flowr-description-file.d.ts +1 -3
- package/project/plugins/file-plugins/flowr-description-file.js +0 -1
- package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
- package/queries/base-query-format.d.ts +2 -2
- package/queries/catalog/call-context-query/call-context-query-executor.d.ts +3 -0
- package/queries/catalog/call-context-query/call-context-query-executor.js +3 -0
- package/queries/catalog/call-context-query/call-context-query-format.d.ts +3 -3
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +11 -2
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +9 -0
- package/queries/catalog/cluster-query/cluster-query-executor.d.ts +3 -0
- package/queries/catalog/cluster-query/cluster-query-executor.js +3 -0
- package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
- package/queries/catalog/config-query/config-query-executor.d.ts +3 -0
- package/queries/catalog/config-query/config-query-executor.js +3 -0
- package/queries/catalog/config-query/config-query-format.d.ts +5 -2
- package/queries/catalog/config-query/config-query-format.js +13 -16
- package/queries/catalog/control-flow-query/control-flow-query-executor.d.ts +3 -0
- package/queries/catalog/control-flow-query/control-flow-query-executor.js +3 -0
- package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +3 -3
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.d.ts +3 -0
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +3 -0
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
- package/queries/catalog/dataflow-query/dataflow-query-executor.d.ts +3 -0
- package/queries/catalog/dataflow-query/dataflow-query-executor.js +3 -0
- package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
- package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +4 -1
- package/queries/catalog/dependencies-query/dependencies-query-executor.js +7 -4
- package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +4 -1
- package/queries/catalog/dependencies-query/dependencies-query-format.js +4 -1
- package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +4 -1
- package/queries/catalog/df-shape-query/df-shape-query-executor.js +8 -4
- package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +10 -3
- package/queries/catalog/df-shape-query/df-shape-query-format.js +24 -5
- package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +3 -0
- package/queries/catalog/happens-before-query/happens-before-query-executor.js +3 -0
- package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
- package/queries/catalog/id-map-query/id-map-query-executor.d.ts +3 -0
- package/queries/catalog/id-map-query/id-map-query-executor.js +3 -0
- package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +3 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +3 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +2 -2
- package/queries/catalog/linter-query/linter-query-executor.d.ts +4 -0
- package/queries/catalog/linter-query/linter-query-executor.js +4 -0
- package/queries/catalog/linter-query/linter-query-format.d.ts +12 -3
- package/queries/catalog/linter-query/linter-query-format.js +67 -0
- package/queries/catalog/location-map-query/location-map-query-executor.d.ts +4 -0
- package/queries/catalog/location-map-query/location-map-query-executor.js +5 -1
- package/queries/catalog/location-map-query/location-map-query-format.d.ts +7 -1
- package/queries/catalog/location-map-query/location-map-query-format.js +12 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.d.ts +3 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.js +3 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
- package/queries/catalog/origin-query/origin-query-executor.d.ts +7 -1
- package/queries/catalog/origin-query/origin-query-executor.js +6 -0
- package/queries/catalog/origin-query/origin-query-format.d.ts +7 -1
- package/queries/catalog/origin-query/origin-query-format.js +17 -1
- package/queries/catalog/project-query/project-query-executor.d.ts +3 -0
- package/queries/catalog/project-query/project-query-executor.js +3 -0
- package/queries/catalog/project-query/project-query-format.d.ts +1 -1
- package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +6 -0
- package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +6 -0
- package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +7 -1
- package/queries/catalog/resolve-value-query/resolve-value-query-format.js +19 -1
- package/queries/catalog/search-query/search-query-executor.d.ts +3 -0
- package/queries/catalog/search-query/search-query-executor.js +3 -0
- package/queries/catalog/search-query/search-query-format.d.ts +1 -1
- package/queries/catalog/static-slice-query/static-slice-query-executor.d.ts +9 -0
- package/queries/catalog/static-slice-query/static-slice-query-executor.js +9 -0
- package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +7 -1
- package/queries/catalog/static-slice-query/static-slice-query-format.js +17 -0
- package/queries/query-print.d.ts +20 -4
- package/queries/query-print.js +18 -2
- package/queries/query.d.ts +85 -55
- package/queries/query.js +35 -23
- package/queries/virtual-query/virtual-queries.d.ts +1 -2
- package/r-bridge/data/get.d.ts +6 -0
- package/r-bridge/data/get.js +6 -0
- package/r-bridge/lang-4.x/ast/model/collect.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/collect.js +0 -1
- package/r-bridge/lang-4.x/ast/model/model.d.ts +8 -11
- package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +3 -0
- package/r-bridge/lang-4.x/ast/model/operators.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +6 -7
- package/r-bridge/lang-4.x/ast/model/processing/decorate.js +6 -6
- package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/node-id.js +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +1 -2
- package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/visitor.js +0 -1
- package/r-bridge/lang-4.x/ast/model/type.d.ts +4 -5
- package/r-bridge/lang-4.x/ast/model/type.js +4 -5
- package/r-bridge/lang-4.x/ast/model/versions.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/versions.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +4 -5
- package/r-bridge/lang-4.x/ast/parser/json/parser.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/control/normalize-if-then.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.d.ts +1 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.d.ts +4 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.d.ts +4 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-binary.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.d.ts +9 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.js +9 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.d.ts +1 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.d.ts +1 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.d.ts +14 -5
- package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.js +13 -6
- package/r-bridge/lang-4.x/convert-values.d.ts +12 -1
- package/r-bridge/lang-4.x/convert-values.js +12 -1
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +7 -2
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +17 -0
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +13 -1
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +48 -19
- package/r-bridge/parser.d.ts +28 -7
- package/r-bridge/retriever.d.ts +16 -1
- package/r-bridge/retriever.js +15 -0
- package/r-bridge/shell-executor.d.ts +3 -3
- package/r-bridge/shell-executor.js +6 -1
- package/r-bridge/shell.d.ts +24 -23
- package/r-bridge/shell.js +37 -31
- package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -1
- package/reconstruct/auto-select/magic-comments.d.ts +1 -2
- package/reconstruct/auto-select/magic-comments.js +1 -2
- package/reconstruct/reconstruct.d.ts +1 -3
- package/reconstruct/reconstruct.js +0 -2
- package/search/flowr-search-builder.d.ts +12 -5
- package/search/flowr-search-builder.js +7 -2
- package/search/flowr-search-executor.d.ts +3 -3
- package/search/flowr-search-filters.d.ts +14 -1
- package/search/flowr-search-filters.js +13 -0
- package/search/flowr-search-printer.d.ts +6 -0
- package/search/flowr-search-printer.js +6 -0
- package/search/flowr-search-traverse.d.ts +1 -1
- package/search/flowr-search.d.ts +3 -3
- package/search/search-executor/search-enrichers.d.ts +9 -6
- package/search/search-executor/search-enrichers.js +3 -0
- package/search/search-executor/search-generators.d.ts +19 -10
- package/search/search-executor/search-generators.js +49 -2
- package/search/search-executor/search-mappers.d.ts +8 -5
- package/search/search-executor/search-mappers.js +3 -0
- package/search/search-executor/search-transformer.d.ts +19 -16
- package/search/search-executor/search-transformer.js +3 -0
- package/slicing/criterion/collect-all.d.ts +10 -10
- package/slicing/criterion/parse.d.ts +4 -2
- package/slicing/criterion/parse.js +4 -2
- package/slicing/static/fingerprint.d.ts +9 -1
- package/slicing/static/fingerprint.js +8 -0
- package/slicing/static/slice-call.d.ts +2 -2
- package/slicing/static/static-slicer.d.ts +8 -4
- package/slicing/static/static-slicer.js +5 -1
- package/slicing/static/visiting-queue.d.ts +1 -1
- package/statistics/features/common-syntax-probability.d.ts +10 -1
- package/statistics/features/common-syntax-probability.js +9 -0
- package/statistics/features/feature.d.ts +0 -4
- package/statistics/features/feature.js +0 -1
- package/statistics/features/post-processing.d.ts +6 -0
- package/statistics/features/post-processing.js +6 -0
- package/statistics/features/supported/assignments/post-process.d.ts +3 -0
- package/statistics/features/supported/assignments/post-process.js +3 -0
- package/statistics/features/supported/comments/post-process.d.ts +3 -0
- package/statistics/features/supported/comments/post-process.js +3 -0
- package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
- package/statistics/features/supported/control-flow/post-process.js +3 -0
- package/statistics/features/supported/data-access/data-access.d.ts +1 -1
- package/statistics/features/supported/data-access/post-process.d.ts +3 -0
- package/statistics/features/supported/data-access/post-process.js +3 -0
- package/statistics/features/supported/defined-functions/defined-functions.d.ts +1 -1
- package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
- package/statistics/features/supported/expression-list/post-process.js +3 -0
- package/statistics/features/supported/loops/post-process.d.ts +3 -0
- package/statistics/features/supported/loops/post-process.js +3 -0
- package/statistics/features/supported/used-functions/used-functions.d.ts +1 -1
- package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
- package/statistics/features/supported/used-packages/post-process.js +3 -0
- package/statistics/features/supported/values/post-process.d.ts +3 -0
- package/statistics/features/supported/values/post-process.js +3 -0
- package/statistics/features/supported/variables/post-process.d.ts +7 -1
- package/statistics/features/supported/variables/post-process.js +6 -0
- package/statistics/meta-statistics.d.ts +8 -9
- package/statistics/output/file-provider.d.ts +5 -6
- package/statistics/output/file-provider.js +5 -6
- package/statistics/output/print-stats.d.ts +13 -1
- package/statistics/output/print-stats.js +12 -0
- package/statistics/output/statistics-file.d.ts +1 -2
- package/statistics/output/statistics-file.js +0 -1
- package/statistics/statistics.d.ts +3 -4
- package/statistics/statistics.js +1 -2
- package/statistics/summarizer/auto-detect.d.ts +3 -0
- package/statistics/summarizer/auto-detect.js +3 -0
- package/statistics/summarizer/post-process/clusterer.d.ts +3 -4
- package/statistics/summarizer/post-process/clusterer.js +0 -2
- package/statistics/summarizer/post-process/file-based-count.d.ts +0 -1
- package/statistics/summarizer/post-process/file-based-count.js +0 -1
- package/statistics/summarizer/post-process/histogram.d.ts +0 -2
- package/statistics/summarizer/post-process/histogram.js +0 -2
- package/statistics/summarizer/post-process/post-process-output.d.ts +2 -4
- package/statistics/summarizer/post-process/post-process-output.js +0 -3
- package/statistics/summarizer/second-phase/process.d.ts +5 -3
- package/statistics/summarizer/second-phase/process.js +3 -1
- package/statistics/summarizer/summarizer.d.ts +1 -2
- package/util/assert.d.ts +52 -2
- package/util/assert.js +52 -2
- package/util/collections/arrays.d.ts +10 -5
- package/util/collections/arrays.js +10 -5
- package/util/collections/defaultmap.d.ts +11 -11
- package/util/collections/defaultmap.js +11 -11
- package/util/containers.d.ts +2 -7
- package/util/containers.js +0 -5
- package/util/diff-graph.d.ts +0 -1
- package/util/diff-graph.js +0 -1
- package/util/diff.d.ts +3 -1
- package/util/diff.js +3 -1
- package/util/files.d.ts +11 -11
- package/util/files.js +10 -10
- package/util/formats/adapter.d.ts +9 -0
- package/util/formats/adapter.js +9 -0
- package/util/formats/adapters/rmd-adapter.d.ts +10 -1
- package/util/formats/adapters/rmd-adapter.js +10 -1
- package/util/html-hover-over.d.ts +5 -0
- package/util/html-hover-over.js +5 -0
- package/util/json.d.ts +13 -0
- package/util/json.js +13 -0
- package/util/log.d.ts +2 -2
- package/util/log.js +2 -2
- package/util/mermaid/ast.d.ts +3 -0
- package/util/mermaid/ast.js +3 -0
- package/util/mermaid/cfg.d.ts +1 -1
- package/util/mermaid/dfg.d.ts +12 -4
- package/util/mermaid/dfg.js +9 -1
- package/util/mermaid/mermaid.d.ts +6 -1
- package/util/mermaid/mermaid.js +6 -1
- package/util/numbers.d.ts +7 -0
- package/util/numbers.js +7 -0
- package/util/objects.d.ts +0 -2
- package/util/os.d.ts +3 -0
- package/util/os.js +3 -0
- package/util/parallel.d.ts +4 -4
- package/util/parallel.js +4 -4
- package/util/prefix.d.ts +0 -1
- package/util/prefix.js +0 -1
- package/util/quads.d.ts +14 -17
- package/util/quads.js +3 -5
- package/util/r-value.d.ts +10 -1
- package/util/r-value.js +21 -0
- package/util/random.d.ts +3 -0
- package/util/random.js +3 -0
- package/util/range.d.ts +9 -3
- package/util/range.js +15 -2
- package/util/schema.d.ts +14 -1
- package/util/schema.js +15 -2
- package/util/simple-df/dfg-view.d.ts +4 -1
- package/util/simple-df/dfg-view.js +4 -1
- package/util/summarizer.d.ts +9 -1
- package/util/summarizer.js +9 -0
- package/util/text/ansi.d.ts +3 -0
- package/util/text/ansi.js +3 -0
- package/util/text/args.d.ts +2 -4
- package/util/text/args.js +7 -5
- package/util/text/text.d.ts +4 -0
- package/util/text/text.js +4 -0
- package/util/text/time.d.ts +0 -1
- package/util/text/time.js +0 -1
- package/util/version.d.ts +12 -3
- package/util/version.js +12 -3
- package/abstract-interpretation/data-frame/domain.d.ts +0 -107
- package/abstract-interpretation/data-frame/domain.js +0 -315
- package/abstract-interpretation/domains/set-bounded-set-domain.d.ts +0 -43
- package/abstract-interpretation/domains/set-bounded-set-domain.js +0 -164
- package/cli/repl/commands/repl-lineage.d.ts +0 -15
- package/cli/repl/commands/repl-lineage.js +0 -66
- package/cli/repl/server/messages/message-lineage.d.ts +0 -17
- package/cli/repl/server/messages/message-lineage.js +0 -25
- package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
- package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import type { CfgExpressionVertex, CfgStatementVertex, ControlFlowInformation } from './control-flow-graph';
|
|
2
|
-
import type
|
|
3
|
-
import { DataflowAwareCfgGuidedVisitor } from './dfg-cfg-guided-visitor';
|
|
2
|
+
import { type DataflowCfgGuidedVisitorConfiguration, DataflowAwareCfgGuidedVisitor } from './dfg-cfg-guided-visitor';
|
|
4
3
|
import type { NormalizedAst, ParentInformation } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
5
4
|
import type { SyntaxCfgGuidedVisitorConfiguration } from './syntax-cfg-guided-visitor';
|
|
6
5
|
import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
7
|
-
import type
|
|
6
|
+
import { type Origin } from '../dataflow/origin/dfg-get-origin';
|
|
8
7
|
import type { DataflowGraphVertexFunctionCall, DataflowGraphVertexFunctionDefinition, DataflowGraphVertexUse, DataflowGraphVertexValue, DataflowGraphVertexVariableDefinition } from '../dataflow/graph/vertex';
|
|
9
8
|
import type { RString } from '../r-bridge/lang-4.x/ast/model/nodes/r-string';
|
|
10
9
|
import type { RNumber } from '../r-bridge/lang-4.x/ast/model/nodes/r-number';
|
|
@@ -56,7 +55,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
56
55
|
*
|
|
57
56
|
* This function is called for every use of a variable in the program and dispatches the appropriate event.
|
|
58
57
|
* You probably do not have to overwrite it and just use {@link SemanticCfgGuidedVisitor#onVariableUse|`onVariableUse`} instead.
|
|
59
|
-
*
|
|
60
58
|
* @protected
|
|
61
59
|
*/
|
|
62
60
|
protected visitVariableUse(vertex: DataflowGraphVertexUse): void;
|
|
@@ -65,7 +63,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
65
63
|
*
|
|
66
64
|
* This function is called for every variable definition in the program and dispatches the appropriate event.
|
|
67
65
|
* You probably do not have to overwrite it and just use {@link SemanticCfgGuidedVisitor#onVariableDefinition|`onVariableDefinition`} instead.
|
|
68
|
-
*
|
|
69
66
|
* @protected
|
|
70
67
|
*/
|
|
71
68
|
protected visitVariableDefinition(vertex: DataflowGraphVertexVariableDefinition): void;
|
|
@@ -74,7 +71,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
74
71
|
*
|
|
75
72
|
* This function is called for every function definition in the program and dispatches the appropriate event.
|
|
76
73
|
* You probably do not have to overwrite it and just use {@link SemanticCfgGuidedVisitor#onFunctionDefinition|`onFunctionDefinition`} instead.
|
|
77
|
-
*
|
|
78
74
|
* @protected
|
|
79
75
|
*/
|
|
80
76
|
protected visitFunctionDefinition(vertex: DataflowGraphVertexFunctionDefinition): void;
|
|
@@ -85,7 +81,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
85
81
|
* You probably do not have to overwrite it and just use {@link SemanticCfgGuidedVisitor#onUnnamedCall|`onUnnamedCall`} for anonymous calls,
|
|
86
82
|
* or {@link SemanticCfgGuidedVisitor#onDispatchFunctionCallOrigins|`onDispatchFunctionCallOrigins`} for named calls (or just overwrite
|
|
87
83
|
* the events you are interested in directly).
|
|
88
|
-
*
|
|
89
84
|
* @protected
|
|
90
85
|
*/
|
|
91
86
|
protected visitFunctionCall(vertex: DataflowGraphVertexFunctionCall): void;
|
|
@@ -94,7 +89,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
94
89
|
* This function is called for every unknown vertex in the program.
|
|
95
90
|
* It dispatches the appropriate event based on the type of the vertex.
|
|
96
91
|
* In case you have to overwrite this function please make sure to still call this implementation to get a correctly working {@link SemanticCfgGuidedVisitor#onProgram|`onProgram`}.
|
|
97
|
-
*
|
|
98
92
|
* @protected
|
|
99
93
|
*/
|
|
100
94
|
protected visitUnknown(vertex: CfgStatementVertex | CfgExpressionVertex): void;
|
|
@@ -104,7 +98,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
104
98
|
* and aggregating their results (which is just additive by default).
|
|
105
99
|
* If you want to change the behavior in case of multiple potential function definition targets, simply overwrite this function
|
|
106
100
|
* with the logic you desire.
|
|
107
|
-
*
|
|
108
101
|
* @protected
|
|
109
102
|
*/
|
|
110
103
|
protected onDispatchFunctionCallOrigins(call: DataflowGraphVertexFunctionCall, origins: readonly string[]): void;
|
|
@@ -112,15 +105,12 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
112
105
|
* This function is responsible for dispatching the appropriate event
|
|
113
106
|
* based on a given dataflow vertex. The default serves as a backend
|
|
114
107
|
* for the event functions, but you may overwrite and extend this function at will.
|
|
115
|
-
*
|
|
116
108
|
* @see {@link onDispatchFunctionCallOrigins} for the aggregation in case the function call target is ambiguous.
|
|
117
|
-
*
|
|
118
109
|
* @protected
|
|
119
110
|
*/
|
|
120
111
|
protected onDispatchFunctionCallOrigin(call: DataflowGraphVertexFunctionCall, origin: keyof typeof BuiltInProcessorMapper | string): void;
|
|
121
112
|
/**
|
|
122
113
|
* This event is called for the root program node, i.e., the program that is being analyzed.
|
|
123
|
-
*
|
|
124
114
|
* @protected
|
|
125
115
|
*/
|
|
126
116
|
protected onProgram(_data: RExpressionList<OtherInfo>): void;
|
|
@@ -212,7 +202,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
212
202
|
* This is separate from {@link SemanticCfgGuidedVisitor#onDefaultFunctionCall|`onDefaultFunctionCall`} which is used for named function calls that do not trigger any of these events.
|
|
213
203
|
* The main differentiation for these calls is that you may not infer their semantics from any name alone and probably _have_
|
|
214
204
|
* to rely on {@link SemanticCfgGuidedVisitor#getOrigins|`getOrigins`} to get more information.
|
|
215
|
-
*
|
|
216
205
|
* @protected
|
|
217
206
|
*/
|
|
218
207
|
protected onUnnamedCall(_data: {
|
|
@@ -235,7 +224,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
235
224
|
* This explicitly will not trigger for scenarios in which the function has no name (i.e., if it is anonymous).
|
|
236
225
|
* For such cases, you may rely on the {@link SemanticCfgGuidedVisitor#onUnnamedCall|`onUnnamedCall`} event.
|
|
237
226
|
* The main reason for this separation is part of flowR's handling of these functions, as anonymous calls cannot be resolved using the active environment.
|
|
238
|
-
*
|
|
239
227
|
* @protected
|
|
240
228
|
*/
|
|
241
229
|
protected onDefaultFunctionCall(_data: {
|
|
@@ -247,7 +235,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
247
235
|
* For example, `eval` in `eval(parse(text = "x + 1"))`.
|
|
248
236
|
*
|
|
249
237
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
250
|
-
*
|
|
251
238
|
* @protected
|
|
252
239
|
*/
|
|
253
240
|
protected onEvalFunctionCall(_data: {
|
|
@@ -259,7 +246,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
259
246
|
* For example, `lapply` in `lapply(1:10, function(x) { x + 1 })`.
|
|
260
247
|
*
|
|
261
248
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
262
|
-
*
|
|
263
249
|
* @protected
|
|
264
250
|
*/
|
|
265
251
|
protected onApplyFunctionCall(_data: {
|
|
@@ -270,7 +256,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
270
256
|
*
|
|
271
257
|
* For example, this triggers for the expression list created by `{` and `}` in `ìf (TRUE) { x <- 1; y <- 2; }`. But also for the implicit
|
|
272
258
|
* expression list `x <- x + 1` in `for(x in 1:10) x <- x + 1`.
|
|
273
|
-
*
|
|
274
259
|
* @protected
|
|
275
260
|
*/
|
|
276
261
|
protected onExpressionList(_data: {
|
|
@@ -284,7 +269,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
284
269
|
* By default, this does not provide the resolved source file. Yet you can access the {@link DataflowGraph} to ask for sourced files.
|
|
285
270
|
*
|
|
286
271
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
287
|
-
*
|
|
288
272
|
* @protected
|
|
289
273
|
*/
|
|
290
274
|
protected onSourceCall(_data: {
|
|
@@ -292,7 +276,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
292
276
|
}): void;
|
|
293
277
|
/**
|
|
294
278
|
* This event triggers for every subsetting call, i.e., for every call to `[[`, `[`, or `$`.
|
|
295
|
-
*
|
|
296
279
|
* @protected
|
|
297
280
|
*/
|
|
298
281
|
protected onAccessCall(_data: {
|
|
@@ -300,7 +283,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
300
283
|
}): void;
|
|
301
284
|
/**
|
|
302
285
|
* This event triggers for every call to the `if` function, which is used to implement the `if-then-else` control flow.
|
|
303
|
-
*
|
|
304
286
|
* @protected
|
|
305
287
|
*/
|
|
306
288
|
protected onIfThenElseCall(_data: {
|
|
@@ -316,7 +298,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
316
298
|
*
|
|
317
299
|
* Please be aware, that with flowR resolving the `get` during the dataflow analysis,
|
|
318
300
|
* this may very well trigger a {@link SemanticCfgGuidedVisitor#onVariableUse|`onVariableUse`} event as well.
|
|
319
|
-
*
|
|
320
301
|
* @protected
|
|
321
302
|
*/
|
|
322
303
|
protected onGetCall(_data: {
|
|
@@ -326,7 +307,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
326
307
|
* This event triggers for every call to the `rm` function, which is used to remove variables from the environment.
|
|
327
308
|
*
|
|
328
309
|
* For example, `rm` in `rm(x)`.
|
|
329
|
-
*
|
|
330
310
|
* @protected
|
|
331
311
|
*/
|
|
332
312
|
protected onRmCall(_data: {
|
|
@@ -338,7 +318,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
338
318
|
* For example, `library` in `library(dplyr)`.
|
|
339
319
|
*
|
|
340
320
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
341
|
-
*
|
|
342
321
|
* @protected
|
|
343
322
|
*/
|
|
344
323
|
protected onLibraryCall(_data: {
|
|
@@ -364,7 +343,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
364
343
|
* For example, this triggers for`%in%` in `x %in% y`.
|
|
365
344
|
*
|
|
366
345
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
367
|
-
*
|
|
368
346
|
* @protected
|
|
369
347
|
*/
|
|
370
348
|
protected onSpecialBinaryOpCall(_data: {
|
|
@@ -374,7 +352,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
374
352
|
}): void;
|
|
375
353
|
/**
|
|
376
354
|
* This event triggers for every call to R's pipe operator, i.e., for every call to `|>`.
|
|
377
|
-
*
|
|
378
355
|
* @protected
|
|
379
356
|
*/
|
|
380
357
|
protected onPipeCall(_data: {
|
|
@@ -388,7 +365,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
388
365
|
* For example, `quote` in `quote(x + 1)`.
|
|
389
366
|
*
|
|
390
367
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
391
|
-
*
|
|
392
368
|
* @protected
|
|
393
369
|
*/
|
|
394
370
|
protected onQuoteCall(_data: {
|
|
@@ -400,7 +376,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
400
376
|
* For example, this triggers for `for` in `for(i in 1:10) { print(i) }`.
|
|
401
377
|
*
|
|
402
378
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
403
|
-
*
|
|
404
379
|
* @protected
|
|
405
380
|
*/
|
|
406
381
|
protected onForLoopCall(_data: {
|
|
@@ -415,7 +390,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
415
390
|
* For example, this triggers for `while` in `while(i < 10) { i <- i + 1 }`.
|
|
416
391
|
*
|
|
417
392
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
418
|
-
*
|
|
419
393
|
* @protected
|
|
420
394
|
*/
|
|
421
395
|
protected onWhileLoopCall(_data: {
|
|
@@ -429,7 +403,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
429
403
|
* For example, this triggers for `repeat` in `repeat { i <- i + 1; if(i >= 10) break }`.
|
|
430
404
|
*
|
|
431
405
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
432
|
-
*
|
|
433
406
|
* @protected
|
|
434
407
|
*/
|
|
435
408
|
protected onRepeatLoopCall(_data: {
|
|
@@ -458,7 +431,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
458
431
|
* For example, this triggers for `list` in `list(1, 2, 3)`.
|
|
459
432
|
*
|
|
460
433
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
461
|
-
*
|
|
462
434
|
* @protected
|
|
463
435
|
*/
|
|
464
436
|
protected onListCall(_data: {
|
|
@@ -470,7 +442,6 @@ export declare class SemanticCfgGuidedVisitor<OtherInfo = NoInfo, ControlFlow ex
|
|
|
470
442
|
* For example, this triggers for `c` in `c(1, 2, 3)`.
|
|
471
443
|
*
|
|
472
444
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
473
|
-
*
|
|
474
445
|
* @protected
|
|
475
446
|
*/
|
|
476
447
|
protected onVectorCall(_data: {
|
|
@@ -69,7 +69,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
69
69
|
*
|
|
70
70
|
* This function is called for every use of a variable in the program and dispatches the appropriate event.
|
|
71
71
|
* You probably do not have to overwrite it and just use {@link SemanticCfgGuidedVisitor#onVariableUse|`onVariableUse`} instead.
|
|
72
|
-
*
|
|
73
72
|
* @protected
|
|
74
73
|
*/
|
|
75
74
|
visitVariableUse(vertex) {
|
|
@@ -81,7 +80,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
81
80
|
*
|
|
82
81
|
* This function is called for every variable definition in the program and dispatches the appropriate event.
|
|
83
82
|
* You probably do not have to overwrite it and just use {@link SemanticCfgGuidedVisitor#onVariableDefinition|`onVariableDefinition`} instead.
|
|
84
|
-
*
|
|
85
83
|
* @protected
|
|
86
84
|
*/
|
|
87
85
|
visitVariableDefinition(vertex) {
|
|
@@ -93,7 +91,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
93
91
|
*
|
|
94
92
|
* This function is called for every function definition in the program and dispatches the appropriate event.
|
|
95
93
|
* You probably do not have to overwrite it and just use {@link SemanticCfgGuidedVisitor#onFunctionDefinition|`onFunctionDefinition`} instead.
|
|
96
|
-
*
|
|
97
94
|
* @protected
|
|
98
95
|
*/
|
|
99
96
|
visitFunctionDefinition(vertex) {
|
|
@@ -113,7 +110,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
113
110
|
* You probably do not have to overwrite it and just use {@link SemanticCfgGuidedVisitor#onUnnamedCall|`onUnnamedCall`} for anonymous calls,
|
|
114
111
|
* or {@link SemanticCfgGuidedVisitor#onDispatchFunctionCallOrigins|`onDispatchFunctionCallOrigins`} for named calls (or just overwrite
|
|
115
112
|
* the events you are interested in directly).
|
|
116
|
-
*
|
|
117
113
|
* @protected
|
|
118
114
|
*/
|
|
119
115
|
visitFunctionCall(vertex) {
|
|
@@ -130,7 +126,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
130
126
|
* This function is called for every unknown vertex in the program.
|
|
131
127
|
* It dispatches the appropriate event based on the type of the vertex.
|
|
132
128
|
* In case you have to overwrite this function please make sure to still call this implementation to get a correctly working {@link SemanticCfgGuidedVisitor#onProgram|`onProgram`}.
|
|
133
|
-
*
|
|
134
129
|
* @protected
|
|
135
130
|
*/
|
|
136
131
|
visitUnknown(vertex) {
|
|
@@ -146,7 +141,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
146
141
|
* and aggregating their results (which is just additive by default).
|
|
147
142
|
* If you want to change the behavior in case of multiple potential function definition targets, simply overwrite this function
|
|
148
143
|
* with the logic you desire.
|
|
149
|
-
*
|
|
150
144
|
* @protected
|
|
151
145
|
*/
|
|
152
146
|
onDispatchFunctionCallOrigins(call, origins) {
|
|
@@ -158,9 +152,7 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
158
152
|
* This function is responsible for dispatching the appropriate event
|
|
159
153
|
* based on a given dataflow vertex. The default serves as a backend
|
|
160
154
|
* for the event functions, but you may overwrite and extend this function at will.
|
|
161
|
-
*
|
|
162
155
|
* @see {@link onDispatchFunctionCallOrigins} for the aggregation in case the function call target is ambiguous.
|
|
163
|
-
*
|
|
164
156
|
* @protected
|
|
165
157
|
*/
|
|
166
158
|
onDispatchFunctionCallOrigin(call, origin) {
|
|
@@ -263,7 +255,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
263
255
|
}
|
|
264
256
|
/**
|
|
265
257
|
* This event is called for the root program node, i.e., the program that is being analyzed.
|
|
266
|
-
*
|
|
267
258
|
* @protected
|
|
268
259
|
*/
|
|
269
260
|
onProgram(_data) { }
|
|
@@ -335,7 +326,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
335
326
|
* This is separate from {@link SemanticCfgGuidedVisitor#onDefaultFunctionCall|`onDefaultFunctionCall`} which is used for named function calls that do not trigger any of these events.
|
|
336
327
|
* The main differentiation for these calls is that you may not infer their semantics from any name alone and probably _have_
|
|
337
328
|
* to rely on {@link SemanticCfgGuidedVisitor#getOrigins|`getOrigins`} to get more information.
|
|
338
|
-
*
|
|
339
329
|
* @protected
|
|
340
330
|
*/
|
|
341
331
|
onUnnamedCall(_data) { }
|
|
@@ -356,7 +346,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
356
346
|
* This explicitly will not trigger for scenarios in which the function has no name (i.e., if it is anonymous).
|
|
357
347
|
* For such cases, you may rely on the {@link SemanticCfgGuidedVisitor#onUnnamedCall|`onUnnamedCall`} event.
|
|
358
348
|
* The main reason for this separation is part of flowR's handling of these functions, as anonymous calls cannot be resolved using the active environment.
|
|
359
|
-
*
|
|
360
349
|
* @protected
|
|
361
350
|
*/
|
|
362
351
|
onDefaultFunctionCall(_data) { }
|
|
@@ -366,7 +355,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
366
355
|
* For example, `eval` in `eval(parse(text = "x + 1"))`.
|
|
367
356
|
*
|
|
368
357
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
369
|
-
*
|
|
370
358
|
* @protected
|
|
371
359
|
*/
|
|
372
360
|
onEvalFunctionCall(_data) { }
|
|
@@ -376,7 +364,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
376
364
|
* For example, `lapply` in `lapply(1:10, function(x) { x + 1 })`.
|
|
377
365
|
*
|
|
378
366
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
379
|
-
*
|
|
380
367
|
* @protected
|
|
381
368
|
*/
|
|
382
369
|
onApplyFunctionCall(_data) { }
|
|
@@ -385,7 +372,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
385
372
|
*
|
|
386
373
|
* For example, this triggers for the expression list created by `{` and `}` in `ìf (TRUE) { x <- 1; y <- 2; }`. But also for the implicit
|
|
387
374
|
* expression list `x <- x + 1` in `for(x in 1:10) x <- x + 1`.
|
|
388
|
-
*
|
|
389
375
|
* @protected
|
|
390
376
|
*/
|
|
391
377
|
onExpressionList(_data) { }
|
|
@@ -397,19 +383,16 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
397
383
|
* By default, this does not provide the resolved source file. Yet you can access the {@link DataflowGraph} to ask for sourced files.
|
|
398
384
|
*
|
|
399
385
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
400
|
-
*
|
|
401
386
|
* @protected
|
|
402
387
|
*/
|
|
403
388
|
onSourceCall(_data) { }
|
|
404
389
|
/**
|
|
405
390
|
* This event triggers for every subsetting call, i.e., for every call to `[[`, `[`, or `$`.
|
|
406
|
-
*
|
|
407
391
|
* @protected
|
|
408
392
|
*/
|
|
409
393
|
onAccessCall(_data) { }
|
|
410
394
|
/**
|
|
411
395
|
* This event triggers for every call to the `if` function, which is used to implement the `if-then-else` control flow.
|
|
412
|
-
*
|
|
413
396
|
* @protected
|
|
414
397
|
*/
|
|
415
398
|
onIfThenElseCall(_data) { }
|
|
@@ -420,7 +403,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
420
403
|
*
|
|
421
404
|
* Please be aware, that with flowR resolving the `get` during the dataflow analysis,
|
|
422
405
|
* this may very well trigger a {@link SemanticCfgGuidedVisitor#onVariableUse|`onVariableUse`} event as well.
|
|
423
|
-
*
|
|
424
406
|
* @protected
|
|
425
407
|
*/
|
|
426
408
|
onGetCall(_data) { }
|
|
@@ -428,7 +410,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
428
410
|
* This event triggers for every call to the `rm` function, which is used to remove variables from the environment.
|
|
429
411
|
*
|
|
430
412
|
* For example, `rm` in `rm(x)`.
|
|
431
|
-
*
|
|
432
413
|
* @protected
|
|
433
414
|
*/
|
|
434
415
|
onRmCall(_data) { }
|
|
@@ -438,7 +419,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
438
419
|
* For example, `library` in `library(dplyr)`.
|
|
439
420
|
*
|
|
440
421
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
441
|
-
*
|
|
442
422
|
* @protected
|
|
443
423
|
*/
|
|
444
424
|
onLibraryCall(_data) { }
|
|
@@ -458,13 +438,11 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
458
438
|
* For example, this triggers for`%in%` in `x %in% y`.
|
|
459
439
|
*
|
|
460
440
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
461
|
-
*
|
|
462
441
|
* @protected
|
|
463
442
|
*/
|
|
464
443
|
onSpecialBinaryOpCall(_data) { }
|
|
465
444
|
/**
|
|
466
445
|
* This event triggers for every call to R's pipe operator, i.e., for every call to `|>`.
|
|
467
|
-
*
|
|
468
446
|
* @protected
|
|
469
447
|
*/
|
|
470
448
|
onPipeCall(_data) { }
|
|
@@ -474,7 +452,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
474
452
|
* For example, `quote` in `quote(x + 1)`.
|
|
475
453
|
*
|
|
476
454
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
477
|
-
*
|
|
478
455
|
* @protected
|
|
479
456
|
*/
|
|
480
457
|
onQuoteCall(_data) { }
|
|
@@ -484,7 +461,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
484
461
|
* For example, this triggers for `for` in `for(i in 1:10) { print(i) }`.
|
|
485
462
|
*
|
|
486
463
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
487
|
-
*
|
|
488
464
|
* @protected
|
|
489
465
|
*/
|
|
490
466
|
onForLoopCall(_data) { }
|
|
@@ -494,7 +470,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
494
470
|
* For example, this triggers for `while` in `while(i < 10) { i <- i + 1 }`.
|
|
495
471
|
*
|
|
496
472
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
497
|
-
*
|
|
498
473
|
* @protected
|
|
499
474
|
*/
|
|
500
475
|
onWhileLoopCall(_data) { }
|
|
@@ -504,7 +479,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
504
479
|
* For example, this triggers for `repeat` in `repeat { i <- i + 1; if(i >= 10) break }`.
|
|
505
480
|
*
|
|
506
481
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
507
|
-
*
|
|
508
482
|
* @protected
|
|
509
483
|
*/
|
|
510
484
|
onRepeatLoopCall(_data) { }
|
|
@@ -526,7 +500,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
526
500
|
* For example, this triggers for `list` in `list(1, 2, 3)`.
|
|
527
501
|
*
|
|
528
502
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
529
|
-
*
|
|
530
503
|
* @protected
|
|
531
504
|
*/
|
|
532
505
|
onListCall(_data) { }
|
|
@@ -536,7 +509,6 @@ class SemanticCfgGuidedVisitor extends dfg_cfg_guided_visitor_1.DataflowAwareCfg
|
|
|
536
509
|
* For example, this triggers for `c` in `c(1, 2, 3)`.
|
|
537
510
|
*
|
|
538
511
|
* More specifically, this relates to the corresponding {@link BuiltInProcessorMapper} handler.
|
|
539
|
-
*
|
|
540
512
|
* @protected
|
|
541
513
|
*/
|
|
542
514
|
onVectorCall(_data) { }
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type ControlFlowGraph } from './control-flow-graph';
|
|
2
2
|
import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
3
3
|
export type SimpleCfgVisitor = (graph: ControlFlowGraph, nodes: readonly NodeId[], visitor: (node: NodeId) => boolean | void) => void;
|
|
4
4
|
/**
|
|
@@ -8,7 +8,6 @@ export type SimpleCfgVisitor = (graph: ControlFlowGraph, nodes: readonly NodeId[
|
|
|
8
8
|
* @param visitor - The visitor function to call for each node, if you return true the traversal from this node will be stopped.
|
|
9
9
|
*
|
|
10
10
|
* This function is of type {@link SimpleCfgVisitor}.
|
|
11
|
-
*
|
|
12
11
|
* @see {@link visitCfgInOrder} for a traversal in order
|
|
13
12
|
*/
|
|
14
13
|
export declare function visitCfgInReverseOrder(graph: ControlFlowGraph, startNodes: readonly NodeId[], visitor: (node: NodeId) => boolean | void): void;
|
|
@@ -19,7 +18,6 @@ export declare function visitCfgInReverseOrder(graph: ControlFlowGraph, startNod
|
|
|
19
18
|
* @param visitor - The visitor function to call for each node, if you return true the traversal from this node will be stopped.
|
|
20
19
|
*
|
|
21
20
|
* This function is of type {@link SimpleCfgVisitor}.
|
|
22
|
-
*
|
|
23
21
|
* @see {@link visitCfgInReverseOrder} for a traversal in reversed order
|
|
24
22
|
*/
|
|
25
23
|
export declare function visitCfgInOrder(graph: ControlFlowGraph, startNodes: readonly NodeId[], visitor: (node: NodeId) => boolean | void): void;
|
|
@@ -11,7 +11,6 @@ const control_flow_graph_1 = require("./control-flow-graph");
|
|
|
11
11
|
* @param visitor - The visitor function to call for each node, if you return true the traversal from this node will be stopped.
|
|
12
12
|
*
|
|
13
13
|
* This function is of type {@link SimpleCfgVisitor}.
|
|
14
|
-
*
|
|
15
14
|
* @see {@link visitCfgInOrder} for a traversal in order
|
|
16
15
|
*/
|
|
17
16
|
function visitCfgInReverseOrder(graph, startNodes,
|
|
@@ -48,7 +47,6 @@ visitor) {
|
|
|
48
47
|
* @param visitor - The visitor function to call for each node, if you return true the traversal from this node will be stopped.
|
|
49
48
|
*
|
|
50
49
|
* This function is of type {@link SimpleCfgVisitor}.
|
|
51
|
-
*
|
|
52
50
|
* @see {@link visitCfgInReverseOrder} for a traversal in reversed order
|
|
53
51
|
*/
|
|
54
52
|
function visitCfgInOrder(graph, startNodes,
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { CfgExpressionVertex, CfgStatementVertex, ControlFlowInformation } from './control-flow-graph';
|
|
2
2
|
import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
3
3
|
import type { NormalizedAst, ParentInformation } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
4
|
-
import type
|
|
5
|
-
import { BasicCfgGuidedVisitor } from './basic-cfg-guided-visitor';
|
|
4
|
+
import { type BasicCfgGuidedVisitorConfiguration, BasicCfgGuidedVisitor } from './basic-cfg-guided-visitor';
|
|
6
5
|
import type { RAccess } from '../r-bridge/lang-4.x/ast/model/nodes/r-access';
|
|
7
6
|
import type { RArgument } from '../r-bridge/lang-4.x/ast/model/nodes/r-argument';
|
|
8
7
|
import type { RBinaryOp } from '../r-bridge/lang-4.x/ast/model/nodes/r-binary-op';
|
|
@@ -6,9 +6,6 @@ import type { ControlFlowInformation } from './control-flow-graph';
|
|
|
6
6
|
export declare const loopyFunctions: Set<"builtin:default" | "builtin:eval" | "builtin:apply" | "builtin:expression-list" | "builtin:source" | "builtin:access" | "builtin:if-then-else" | "builtin:get" | "builtin:rm" | "builtin:library" | "builtin:assignment" | "builtin:special-bin-op" | "builtin:pipe" | "builtin:function-definition" | "builtin:quote" | "builtin:for-loop" | "builtin:repeat-loop" | "builtin:while-loop" | "builtin:replacement" | "builtin:list" | "builtin:vector">;
|
|
7
7
|
/**
|
|
8
8
|
* Checks whether a loop only loops once
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
9
|
* @param loop - nodeid of the loop to analyse
|
|
13
10
|
* @param dataflow - dataflow graph
|
|
14
11
|
* @param controlflow - control flow graph
|
|
@@ -13,9 +13,6 @@ const semantic_cfg_guided_visitor_1 = require("./semantic-cfg-guided-visitor");
|
|
|
13
13
|
exports.loopyFunctions = new Set(['builtin:for-loop', 'builtin:while-loop', 'builtin:repeat-loop']);
|
|
14
14
|
/**
|
|
15
15
|
* Checks whether a loop only loops once
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
16
|
* @param loop - nodeid of the loop to analyse
|
|
20
17
|
* @param dataflow - dataflow graph
|
|
21
18
|
* @param controlflow - control flow graph
|
|
@@ -93,9 +90,9 @@ class CfgSingleIterationLoopDetector extends semantic_cfg_guided_visitor_1.Seman
|
|
|
93
90
|
stack.unshift(to);
|
|
94
91
|
}
|
|
95
92
|
}
|
|
96
|
-
this.onlyLoopyOnce ||= this.encounteredLoopBreaker && (0, info_1.happensInEveryBranch)(this.loopCds);
|
|
93
|
+
this.onlyLoopyOnce ||= this.encounteredLoopBreaker && (0, info_1.happensInEveryBranch)(this.loopCds?.filter(c => !c.byIteration));
|
|
97
94
|
}
|
|
98
|
-
this.onlyLoopyOnce ||= this.encounteredLoopBreaker && (0, info_1.happensInEveryBranch)(this.loopCds);
|
|
95
|
+
this.onlyLoopyOnce ||= this.encounteredLoopBreaker && (0, info_1.happensInEveryBranch)(this.loopCds?.filter(c => !c.byIteration));
|
|
99
96
|
}
|
|
100
97
|
app(cds) {
|
|
101
98
|
if (cds === undefined) {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { PipelineStepStage } from './steps/pipeline-step';
|
|
1
|
+
import { type PipelineStepName, PipelineStepStage } from './steps/pipeline-step';
|
|
3
2
|
import type { Pipeline, PipelineInput, PipelineOutput, PipelinePerRequestInput, PipelineStepOutputWithName } from './steps/pipeline/pipeline';
|
|
4
3
|
import type { FlowrConfigOptions } from '../config';
|
|
5
4
|
/**
|
|
@@ -22,13 +21,13 @@ import type { FlowrConfigOptions } from '../config';
|
|
|
22
21
|
* ```ts
|
|
23
22
|
* const stepper = new PipelineExecutor( ... )
|
|
24
23
|
* while(stepper.hasNextStep()) {
|
|
25
|
-
*
|
|
24
|
+
* await stepper.nextStep()
|
|
26
25
|
* }
|
|
27
26
|
*
|
|
28
27
|
* stepper.switchToRequestStage()
|
|
29
28
|
*
|
|
30
29
|
* while(stepper.hasNextStep()) {
|
|
31
|
-
*
|
|
30
|
+
* await stepper.nextStep()
|
|
32
31
|
* }
|
|
33
32
|
*
|
|
34
33
|
* const result = stepper.getResults()
|
|
@@ -66,10 +65,10 @@ import type { FlowrConfigOptions } from '../config';
|
|
|
66
65
|
*
|
|
67
66
|
* ```ts
|
|
68
67
|
* const slicer = new PipelineExecutor(DEFAULT_SLICING_PIPELINE, {
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
68
|
+
* parser: new RShell(),
|
|
69
|
+
* // of course, the criterion and request given here are just examples, you can use whatever you want to slice!
|
|
70
|
+
* criterion: ['2@b'],
|
|
71
|
+
* request: requestFromInput('b <- 3; x <- 5\ncat(b)'),
|
|
73
72
|
* })
|
|
74
73
|
* const result = await slicer.allRemainingSteps()
|
|
75
74
|
* ```
|
|
@@ -80,12 +79,10 @@ import type { FlowrConfigOptions } from '../config';
|
|
|
80
79
|
* stepper.updateRequest({ criterion: ['1@x'] })
|
|
81
80
|
* const result2 = await stepper.allRemainingSteps()
|
|
82
81
|
* ```
|
|
83
|
-
*
|
|
84
82
|
* @note Even though using the pipeline executor introduces a small performance overhead, we consider
|
|
85
83
|
* it to be the baseline for performance benchmarking. It may very well be possible to squeeze out a little bit more by
|
|
86
84
|
* directly constructing the steps in the right order. However, we consider this to be negligible when compared with the time required
|
|
87
85
|
* for, for example, the dataflow analysis of larger files.
|
|
88
|
-
*
|
|
89
86
|
* @see PipelineExecutor#allRemainingSteps
|
|
90
87
|
* @see PipelineExecutor#nextStep
|
|
91
88
|
*/
|
|
@@ -103,7 +100,6 @@ export declare class PipelineExecutor<P extends Pipeline> {
|
|
|
103
100
|
*
|
|
104
101
|
* Please see {@link createDataflowPipeline} and friends for engine agnostic shortcuts to create a pipeline executor.
|
|
105
102
|
* And in general, please prefer using the {@link FlowrAnalyzer} and its {@link FlowrAnalyzerBuilder|builder} to create and use an analyzer instance.
|
|
106
|
-
*
|
|
107
103
|
* @param pipeline - The {@link Pipeline} to execute, probably created with {@link createPipeline}.
|
|
108
104
|
* @param input - External {@link PipelineInput|configuration and input} required to execute the given pipeline.
|
|
109
105
|
* @param flowrConfig - The flowr config containing the built-in definitions
|
|
@@ -115,7 +111,6 @@ export declare class PipelineExecutor<P extends Pipeline> {
|
|
|
115
111
|
getPipeline(): P;
|
|
116
112
|
/**
|
|
117
113
|
* Retrieve the current {@link PipelineStepStage|stage} the pipeline executor is in.
|
|
118
|
-
*
|
|
119
114
|
* @see currentExecutionStage
|
|
120
115
|
* @see switchToRequestStage
|
|
121
116
|
* @see PipelineStepStage
|
|
@@ -126,7 +121,6 @@ export declare class PipelineExecutor<P extends Pipeline> {
|
|
|
126
121
|
*
|
|
127
122
|
* This will fail if either a step change is currently not valid (as not all steps have been executed),
|
|
128
123
|
* or if there is no next stage (i.e., the pipeline is already completed or in the last stage).
|
|
129
|
-
*
|
|
130
124
|
* @see PipelineExecutor
|
|
131
125
|
* @see getCurrentStage
|
|
132
126
|
*/
|
|
@@ -144,9 +138,8 @@ export declare class PipelineExecutor<P extends Pipeline> {
|
|
|
144
138
|
* Execute the next {@link IPipelineStep|step} and return the name of the {@link IPipelineStep|step} that was executed,
|
|
145
139
|
* so you can guard if the {@link IPipelineStep|step} differs from what you are interested in.
|
|
146
140
|
* Furthermore, it returns the {@link IPipelineStep|step's} result.
|
|
147
|
-
*
|
|
148
141
|
* @param expectedStepName - A safeguard if you want to retrieve the result.
|
|
149
|
-
*
|
|
142
|
+
* If given, it causes the execution to fail if the next step is not the one you expect.
|
|
150
143
|
*
|
|
151
144
|
* _Without `expectedStepName`, please refrain from accessing the result, as you have no safeguards if the pipeline changes._
|
|
152
145
|
*/
|
|
@@ -158,7 +151,6 @@ export declare class PipelineExecutor<P extends Pipeline> {
|
|
|
158
151
|
/**
|
|
159
152
|
* This only makes sense if you have already run a request and want to re-use the per-file results for a new one.
|
|
160
153
|
* (or if for whatever reason, you did not pass information for the pipeline with the constructor).
|
|
161
|
-
*
|
|
162
154
|
* @param newRequestData - Data for the new request
|
|
163
155
|
*/
|
|
164
156
|
updateRequest(newRequestData: PipelinePerRequestInput<P>): void;
|