@eagleoutice/flowr 2.6.0 → 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 +142 -45
- package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
- package/abstract-interpretation/data-frame/absint-visitor.d.ts +3 -4
- package/abstract-interpretation/data-frame/absint-visitor.js +16 -11
- 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/flowr.js +8 -4
- package/cli/repl/commands/repl-cfg.js +4 -4
- package/cli/repl/commands/repl-commands.d.ts +13 -0
- package/cli/repl/commands/repl-commands.js +15 -4
- package/cli/repl/commands/repl-dataflow.js +4 -4
- package/cli/repl/commands/repl-execute.d.ts +5 -1
- package/cli/repl/commands/repl-execute.js +12 -8
- package/cli/repl/commands/repl-main.d.ts +17 -14
- package/cli/repl/commands/repl-normalize.js +2 -2
- package/cli/repl/commands/repl-parse.js +4 -3
- package/cli/repl/commands/repl-query.js +18 -7
- package/cli/repl/commands/repl-quit.js +1 -1
- package/cli/repl/commands/repl-version.d.ts +1 -16
- package/cli/repl/commands/repl-version.js +2 -19
- package/cli/repl/core.d.ts +32 -14
- package/cli/repl/core.js +38 -35
- 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 +8 -2
- 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 +9 -33
- 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-hello.d.ts +1 -1
- 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/server.js +2 -2
- 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/all/core/20-dataflow.d.ts +3 -1
- package/core/steps/pipeline/create-pipeline.d.ts +1 -1
- package/core/steps/pipeline/default-pipelines.d.ts +29 -13
- 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 +12 -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 +13 -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 +3 -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 +16 -1
- package/dataflow/eval/values/r-value.js +14 -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 +5 -2
- package/dataflow/extractor.js +7 -5
- package/dataflow/fn/higher-order-function.d.ts +9 -0
- package/dataflow/fn/higher-order-function.js +75 -0
- 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 +11 -2
- 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 +7 -7
- 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 +24 -34
- package/documentation/print-readme.js +106 -1
- 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 +8 -14
- package/project/cache/flowr-analyzer-cache.js +21 -19
- package/project/cfg-kind.d.ts +17 -0
- package/project/cfg-kind.js +22 -0
- package/project/context/abstract-flowr-analyzer-context.d.ts +4 -0
- package/project/context/flowr-analyzer-context.d.ts +9 -6
- package/project/context/flowr-analyzer-context.js +11 -0
- package/project/context/flowr-analyzer-dependencies-context.d.ts +1 -1
- package/project/context/flowr-analyzer-dependencies-context.js +4 -0
- package/project/context/flowr-analyzer-files-context.d.ts +3 -4
- package/project/context/flowr-analyzer-files-context.js +4 -0
- package/project/context/flowr-analyzer-loading-order-context.d.ts +1 -0
- package/project/context/flowr-analyzer-loading-order-context.js +6 -0
- 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 +42 -32
- package/project/flowr-analyzer.js +14 -8
- 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 +5 -1
- 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 +6 -3
- 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 +5 -1
- 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 +6 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +48 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +22 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.js +32 -0
- 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 +91 -53
- package/queries/query.js +37 -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 +30 -2
- 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 +5 -1
- 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 +11 -2
- package/util/r-value.js +23 -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 +26 -0
- package/util/version.js +37 -1
- 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 -67
- 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
|
@@ -17,6 +17,9 @@ export declare const enum CfgEdgeType {
|
|
|
17
17
|
/** a control dependency */
|
|
18
18
|
Cd = 1
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Provide a string representation of the given edge type.
|
|
22
|
+
*/
|
|
20
23
|
export declare function edgeTypeToString(type: CfgEdgeType): string;
|
|
21
24
|
/**
|
|
22
25
|
* A plain vertex in the {@link ControlFlowGraph}.
|
|
@@ -60,8 +63,18 @@ export interface CfgBasicBlockVertex extends CfgBaseVertex {
|
|
|
60
63
|
* A vertex in the {@link ControlFlowGraph}.
|
|
61
64
|
*/
|
|
62
65
|
export type CfgSimpleVertex = CfgStatementVertex | CfgExpressionVertex | CfgBasicBlockVertex | CfgEndMarkerVertex;
|
|
66
|
+
/**
|
|
67
|
+
* Checks whether two vertices are equal.
|
|
68
|
+
*/
|
|
63
69
|
export declare function equalVertex(a: CfgSimpleVertex, b: CfgSimpleVertex): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Checks whether a vertex is a marker vertex (i.e., does not correspond to an actual AST node
|
|
72
|
+
* but is a marker in the control flow graph).
|
|
73
|
+
*/
|
|
64
74
|
export declare function isMarkerVertex(vertex: CfgSimpleVertex): vertex is CfgEndMarkerVertex;
|
|
75
|
+
/**
|
|
76
|
+
* Get the root id of a vertex, i.e., the id of the AST node it corresponds to.
|
|
77
|
+
*/
|
|
65
78
|
export declare function getVertexRootId(vertex: CfgSimpleVertex): NodeId;
|
|
66
79
|
interface CfgFlowDependencyEdge extends MergeableRecord {
|
|
67
80
|
label: CfgEdgeType.Fd;
|
|
@@ -83,7 +96,6 @@ export interface ReadOnlyControlFlowGraph {
|
|
|
83
96
|
* any function definition or basic block and hence part of the "top-level" control flow.
|
|
84
97
|
*
|
|
85
98
|
* This is the pendant of {@link DataflowGraph#rootIds|rootIds()} on a {@link DataflowGraph}.
|
|
86
|
-
*
|
|
87
99
|
* @see {@link ReadOnlyControlFlowGraph#vertices|vertices()} - for a way to get all vertices in the graph.
|
|
88
100
|
* @see {@link ReadOnlyControlFlowGraph#getVertex|getVertex()} - for a way to get a specific vertex by its id.
|
|
89
101
|
* @see {@link ReadOnlyControlFlowGraph#edges|edges()} - for a way to get all edges in the graph.
|
|
@@ -91,9 +103,7 @@ export interface ReadOnlyControlFlowGraph {
|
|
|
91
103
|
readonly rootIds: () => ReadonlySet<NodeId>;
|
|
92
104
|
/**
|
|
93
105
|
* Provide a view of all vertices in the graph.
|
|
94
|
-
*
|
|
95
106
|
* @param includeBasicBlockElements - if true, the elements of basic block elements are included in the result, otherwise this will only the basic blocks themselves
|
|
96
|
-
*
|
|
97
107
|
* @see {@link ReadOnlyControlFlowGraph#rootVertexIds|rootVertexIds()} - for a way to get the root vertices of the graph.
|
|
98
108
|
* @see {@link ReadOnlyControlFlowGraph#getVertex|getVertex()} - for a way to get a specific vertex by its id.
|
|
99
109
|
* @see {@link ReadOnlyControlFlowGraph#edges|edges()} - for a way to get all edges in the graph.
|
|
@@ -110,7 +120,6 @@ export interface ReadOnlyControlFlowGraph {
|
|
|
110
120
|
* Receive all outgoing edges of a given vertex.
|
|
111
121
|
*
|
|
112
122
|
* This is the pendant of {@link DataflowGraph#ingoingEdges|ingoingEdges()} on a {@link DataflowGraph}.
|
|
113
|
-
*
|
|
114
123
|
* @see {@link ReadOnlyControlFlowGraph#ingoingEdges|ingoingEdges()} - for a way to get all ingoing edges of a vertex.
|
|
115
124
|
*/
|
|
116
125
|
readonly outgoingEdges: (id: NodeId) => ReadonlyMap<NodeId, CfgEdge> | undefined;
|
|
@@ -118,13 +127,11 @@ export interface ReadOnlyControlFlowGraph {
|
|
|
118
127
|
* Receive all ingoing edges of a given vertex.
|
|
119
128
|
*
|
|
120
129
|
* This is the pendant of {@link DataflowGraph#outgoingEdges|outgoingEdges()} on a {@link DataflowGraph}.
|
|
121
|
-
*
|
|
122
130
|
* @see {@link ReadOnlyControlFlowGraph#outgoingEdges|outgoingEdges()} - for a way to get all outgoing edges of a vertex.
|
|
123
131
|
*/
|
|
124
132
|
readonly ingoingEdges: (id: NodeId) => ReadonlyMap<NodeId, CfgEdge> | undefined;
|
|
125
133
|
/**
|
|
126
134
|
* Retrieve a vertex by its id.
|
|
127
|
-
*
|
|
128
135
|
* @param id - the id of the vertex to retrieve
|
|
129
136
|
* @param includeBlocks - if true, the elements of basic block elements are included in the result, otherwise this will only the basic blocks themselves
|
|
130
137
|
*
|
|
@@ -133,7 +140,6 @@ export interface ReadOnlyControlFlowGraph {
|
|
|
133
140
|
readonly getVertex: (id: NodeId, includeBlocks?: boolean) => CfgSimpleVertex | undefined;
|
|
134
141
|
/**
|
|
135
142
|
* Check if a vertex with the given id exists in the graph.
|
|
136
|
-
*
|
|
137
143
|
* @param id - the id of the vertex to check
|
|
138
144
|
* @param includeBlocks - if true, the elements of basic block elements are included in the check, otherwise this will only check the basic blocks themselves
|
|
139
145
|
*
|
|
@@ -172,13 +178,11 @@ export declare class ControlFlowGraph<Vertex extends CfgSimpleVertex = CfgSimple
|
|
|
172
178
|
private _mayHaveBasicBlocks;
|
|
173
179
|
/**
|
|
174
180
|
* Add a new vertex to the control flow graph.
|
|
175
|
-
*
|
|
176
181
|
* @see {@link ControlFlowGraph#addEdge|addEdge()} - to add an edge
|
|
177
182
|
*/
|
|
178
183
|
addVertex(vertex: Vertex, rootVertex?: boolean): this;
|
|
179
184
|
/**
|
|
180
185
|
* Add a new edge to the control flow graph.
|
|
181
|
-
*
|
|
182
186
|
* @see {@link ControlFlowGraph#addVertex|addVertex()} - to add vertices
|
|
183
187
|
* @see {@link ControlFlowGraph#addEdges|addEdges()} - to add multiple edges at once
|
|
184
188
|
*/
|
|
@@ -202,14 +206,12 @@ export declare class ControlFlowGraph<Vertex extends CfgSimpleVertex = CfgSimple
|
|
|
202
206
|
/**
|
|
203
207
|
* This removes the vertex and all edges to and from it.
|
|
204
208
|
* @param id - the id of the vertex to remove
|
|
205
|
-
*
|
|
206
209
|
* @see {@link ControlFlowGraph#addVertex|addVertex()} - to add a vertex
|
|
207
210
|
* @see {@link ControlFlowGraph#removeEdge|removeEdge()} - to remove a specific edge
|
|
208
211
|
*/
|
|
209
212
|
removeVertex(id: NodeId): this;
|
|
210
213
|
/**
|
|
211
214
|
* Removes a all direct edges between `from` and `to` from the control flow graph.
|
|
212
|
-
*
|
|
213
215
|
* @see {@link ControlFlowGraph#addEdge|addEdge()} - to add an edge
|
|
214
216
|
* @see {@link ControlFlowGraph#removeVertex|removeVertex()} - to remove a vertex and all its edges
|
|
215
217
|
*/
|
|
@@ -225,7 +227,10 @@ export declare class ControlFlowGraph<Vertex extends CfgSimpleVertex = CfgSimple
|
|
|
225
227
|
*/
|
|
226
228
|
mergeWith(other: ControlFlowGraph<Vertex>, forceNested?: boolean): this;
|
|
227
229
|
}
|
|
228
|
-
/**
|
|
230
|
+
/**
|
|
231
|
+
* Summarizes the control information of a program
|
|
232
|
+
* @see {@link emptyControlFlowInformation} - to create an empty control flow information object
|
|
233
|
+
*/
|
|
229
234
|
export interface ControlFlowInformation<Vertex extends CfgSimpleVertex = CfgSimpleVertex> extends MergeableRecord {
|
|
230
235
|
/** all active 'return'(-like) unconditional jumps */
|
|
231
236
|
returns: NodeId[];
|
|
@@ -240,5 +245,8 @@ export interface ControlFlowInformation<Vertex extends CfgSimpleVertex = CfgSimp
|
|
|
240
245
|
/** the control flow graph summarizing the flow information */
|
|
241
246
|
graph: ControlFlowGraph<Vertex>;
|
|
242
247
|
}
|
|
248
|
+
/**
|
|
249
|
+
* Create an empty control flow information object.
|
|
250
|
+
*/
|
|
243
251
|
export declare function emptyControlFlowInformation(): ControlFlowInformation;
|
|
244
252
|
export {};
|
|
@@ -18,6 +18,9 @@ var CfgVertexType;
|
|
|
18
18
|
/** a (as far as R allows this) 'basic' block */
|
|
19
19
|
CfgVertexType["Block"] = "blk";
|
|
20
20
|
})(CfgVertexType || (exports.CfgVertexType = CfgVertexType = {}));
|
|
21
|
+
/**
|
|
22
|
+
* Provide a string representation of the given edge type.
|
|
23
|
+
*/
|
|
21
24
|
function edgeTypeToString(type) {
|
|
22
25
|
switch (type) {
|
|
23
26
|
case 0 /* CfgEdgeType.Fd */:
|
|
@@ -28,6 +31,9 @@ function edgeTypeToString(type) {
|
|
|
28
31
|
throw new Error(`Unknown edge type ${JSON.stringify(type)}`);
|
|
29
32
|
}
|
|
30
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Checks whether two vertices are equal.
|
|
36
|
+
*/
|
|
31
37
|
function equalVertex(a, b) {
|
|
32
38
|
if (a.type !== b.type || a.id !== b.id) {
|
|
33
39
|
return false;
|
|
@@ -40,9 +46,16 @@ function equalVertex(a, b) {
|
|
|
40
46
|
}
|
|
41
47
|
return true;
|
|
42
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Checks whether a vertex is a marker vertex (i.e., does not correspond to an actual AST node
|
|
51
|
+
* but is a marker in the control flow graph).
|
|
52
|
+
*/
|
|
43
53
|
function isMarkerVertex(vertex) {
|
|
44
54
|
return vertex.type === CfgVertexType.EndMarker;
|
|
45
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Get the root id of a vertex, i.e., the id of the AST node it corresponds to.
|
|
58
|
+
*/
|
|
46
59
|
function getVertexRootId(vertex) {
|
|
47
60
|
return isMarkerVertex(vertex) ? vertex.root : vertex.id;
|
|
48
61
|
}
|
|
@@ -68,7 +81,6 @@ class ControlFlowGraph {
|
|
|
68
81
|
_mayHaveBasicBlocks = false;
|
|
69
82
|
/**
|
|
70
83
|
* Add a new vertex to the control flow graph.
|
|
71
|
-
*
|
|
72
84
|
* @see {@link ControlFlowGraph#addEdge|addEdge()} - to add an edge
|
|
73
85
|
*/
|
|
74
86
|
addVertex(vertex, rootVertex = true) {
|
|
@@ -90,7 +102,6 @@ class ControlFlowGraph {
|
|
|
90
102
|
}
|
|
91
103
|
/**
|
|
92
104
|
* Add a new edge to the control flow graph.
|
|
93
|
-
*
|
|
94
105
|
* @see {@link ControlFlowGraph#addVertex|addVertex()} - to add vertices
|
|
95
106
|
* @see {@link ControlFlowGraph#addEdges|addEdges()} - to add multiple edges at once
|
|
96
107
|
*/
|
|
@@ -190,7 +201,6 @@ class ControlFlowGraph {
|
|
|
190
201
|
/**
|
|
191
202
|
* This removes the vertex and all edges to and from it.
|
|
192
203
|
* @param id - the id of the vertex to remove
|
|
193
|
-
*
|
|
194
204
|
* @see {@link ControlFlowGraph#addVertex|addVertex()} - to add a vertex
|
|
195
205
|
* @see {@link ControlFlowGraph#removeEdge|removeEdge()} - to remove a specific edge
|
|
196
206
|
*/
|
|
@@ -212,7 +222,6 @@ class ControlFlowGraph {
|
|
|
212
222
|
}
|
|
213
223
|
/**
|
|
214
224
|
* Removes a all direct edges between `from` and `to` from the control flow graph.
|
|
215
|
-
*
|
|
216
225
|
* @see {@link ControlFlowGraph#addEdge|addEdge()} - to add an edge
|
|
217
226
|
* @see {@link ControlFlowGraph#removeVertex|removeVertex()} - to remove a vertex and all its edges
|
|
218
227
|
*/
|
|
@@ -281,6 +290,9 @@ class ControlFlowGraph {
|
|
|
281
290
|
}
|
|
282
291
|
}
|
|
283
292
|
exports.ControlFlowGraph = ControlFlowGraph;
|
|
293
|
+
/**
|
|
294
|
+
* Create an empty control flow information object.
|
|
295
|
+
*/
|
|
284
296
|
function emptyControlFlowInformation() {
|
|
285
297
|
return {
|
|
286
298
|
returns: [],
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { type CfgBasicBlockVertex, type CfgEndMarkerVertex, type CfgExpressionVertex, type CfgSimpleVertex, type CfgStatementVertex, type ControlFlowInformation } from './control-flow-graph';
|
|
2
2
|
import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
5
|
-
import { BasicCfgGuidedVisitor } from './basic-cfg-guided-visitor';
|
|
3
|
+
import { type DataflowGraphVertexArgument, type DataflowGraphVertexFunctionCall, type DataflowGraphVertexFunctionDefinition, type DataflowGraphVertexUse, type DataflowGraphVertexValue, type DataflowGraphVertexVariableDefinition } from '../dataflow/graph/vertex';
|
|
4
|
+
import { type BasicCfgGuidedVisitorConfiguration, BasicCfgGuidedVisitor } from './basic-cfg-guided-visitor';
|
|
6
5
|
import type { DataflowGraph } from '../dataflow/graph/graph';
|
|
7
6
|
export interface DataflowCfgGuidedVisitorConfiguration<ControlFlow extends ControlFlowInformation = ControlFlowInformation, Dfg extends DataflowGraph = DataflowGraph> extends BasicCfgGuidedVisitorConfiguration<ControlFlow> {
|
|
8
7
|
readonly dfg: Dfg;
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import {
|
|
3
|
-
import type
|
|
4
|
-
import type { ControlFlowGraph } from './control-flow-graph';
|
|
1
|
+
import { type NamedGraph, GraphDifferenceReport } from '../util/diff-graph';
|
|
2
|
+
import { type GenericDiffConfiguration } from '../util/diff';
|
|
3
|
+
import { type ControlFlowGraph } from './control-flow-graph';
|
|
5
4
|
/**
|
|
6
5
|
* Compare two control flow graphs and return a report on the differences.
|
|
7
6
|
* If you simply want to check whether they equal, use {@link GraphDifferenceReport#isEqual|`<result>.isEqual()`}.
|
|
8
|
-
*
|
|
9
7
|
* @see {@link diffOfDataflowGraphs} - for dataflow graphs
|
|
10
8
|
*/
|
|
11
9
|
export declare function diffOfControlFlowGraphs(left: NamedGraph<ControlFlowGraph>, right: NamedGraph<ControlFlowGraph>, config?: Partial<GenericDiffConfiguration>): GraphDifferenceReport;
|
package/control-flow/diff-cfg.js
CHANGED
|
@@ -9,7 +9,6 @@ const arrays_1 = require("../util/collections/arrays");
|
|
|
9
9
|
/**
|
|
10
10
|
* Compare two control flow graphs and return a report on the differences.
|
|
11
11
|
* If you simply want to check whether they equal, use {@link GraphDifferenceReport#isEqual|`<result>.isEqual()`}.
|
|
12
|
-
*
|
|
13
12
|
* @see {@link diffOfDataflowGraphs} - for dataflow graphs
|
|
14
13
|
*/
|
|
15
14
|
function diffOfControlFlowGraphs(left, right, config) {
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type QuadSerializationConfiguration } from '../util/quads';
|
|
2
2
|
import type { NormalizedAst, ParentInformation } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
3
3
|
import type { DataflowGraph } from '../dataflow/graph/graph';
|
|
4
|
-
import type
|
|
5
|
-
import type
|
|
4
|
+
import { type ControlFlowInformation } from './control-flow-graph';
|
|
5
|
+
import { type CfgSimplificationPassName } from './cfg-simplification';
|
|
6
6
|
import type { FlowrConfigOptions } from '../config';
|
|
7
7
|
/**
|
|
8
8
|
* Given a normalized AST, this approximates the control flow graph of the program.
|
|
9
9
|
* This view is different from the computation of the dataflow graph and may differ,
|
|
10
10
|
* especially because it focuses on intra-procedural analysis.
|
|
11
|
-
*
|
|
12
11
|
* @param ast - the normalized AST
|
|
13
12
|
* @param config - the flowR config
|
|
14
13
|
* @param graph - additional dataflow facts to consider by the control flow extraction
|
|
15
14
|
* @param simplifications - a list of simplification passes to apply to the control flow graph
|
|
16
|
-
*
|
|
17
15
|
* @see {@link extractCfgQuick} - for a simplified version of this function
|
|
18
16
|
*/
|
|
19
17
|
export declare function extractCfg<Info = ParentInformation>(ast: NormalizedAst<Info & ParentInformation>, config: FlowrConfigOptions, graph?: DataflowGraph, simplifications?: readonly CfgSimplificationPassName[]): ControlFlowInformation;
|
|
@@ -24,7 +22,6 @@ export declare function extractCfgQuick<Info = ParentInformation>(ast: Normalize
|
|
|
24
22
|
export declare const ResolvedCallSuffix = "-resolved-call-exit";
|
|
25
23
|
/**
|
|
26
24
|
* Convert a cfg to RDF quads.
|
|
27
|
-
*
|
|
28
25
|
* @see {@link df2quads}
|
|
29
26
|
* @see {@link serialize2quads}
|
|
30
27
|
* @see {@link graph2quads}
|
|
@@ -55,12 +55,10 @@ function dataflowCfgFolds(dataflowGraph) {
|
|
|
55
55
|
* Given a normalized AST, this approximates the control flow graph of the program.
|
|
56
56
|
* This view is different from the computation of the dataflow graph and may differ,
|
|
57
57
|
* especially because it focuses on intra-procedural analysis.
|
|
58
|
-
*
|
|
59
58
|
* @param ast - the normalized AST
|
|
60
59
|
* @param config - the flowR config
|
|
61
60
|
* @param graph - additional dataflow facts to consider by the control flow extraction
|
|
62
61
|
* @param simplifications - a list of simplification passes to apply to the control flow graph
|
|
63
|
-
*
|
|
64
62
|
* @see {@link extractCfgQuick} - for a simplified version of this function
|
|
65
63
|
*/
|
|
66
64
|
function extractCfg(ast, config, graph, simplifications) {
|
|
@@ -439,7 +437,6 @@ function cfgExprList(node, _grouping, expressions) {
|
|
|
439
437
|
}
|
|
440
438
|
/**
|
|
441
439
|
* Convert a cfg to RDF quads.
|
|
442
|
-
*
|
|
443
440
|
* @see {@link df2quads}
|
|
444
441
|
* @see {@link serialize2quads}
|
|
445
442
|
* @see {@link graph2quads}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
2
2
|
import { Ternary } from '../util/logic';
|
|
3
|
-
import type
|
|
3
|
+
import { type ControlFlowGraph } from './control-flow-graph';
|
|
4
4
|
/**
|
|
5
5
|
* Determines if node `a` happens before node `b` in the control flow graph.
|
|
6
6
|
*/
|
|
@@ -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: {
|