@eagleoutice/flowr 2.6.1 → 2.6.3
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 -39
- 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 +17 -12
- 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 +9 -10
- package/abstract-interpretation/data-frame/mappers/function-mapper.js +21 -18
- 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 +179 -162
- package/abstract-interpretation/data-frame/shape-inference.d.ts +4 -7
- package/abstract-interpretation/data-frame/shape-inference.js +10 -12
- 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 +2 -8
- package/abstract-interpretation/normalized-ast-fold.js +0 -5
- package/benchmark/slicer.d.ts +4 -7
- package/benchmark/slicer.js +27 -31
- 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 +13 -1
- package/benchmark/summarizer/second-phase/graph.d.ts +5 -0
- package/benchmark/summarizer/second-phase/graph.js +5 -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/export-quads-app.js +1 -1
- 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-dataflow.js +2 -1
- 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 +18 -6
- package/cli/repl/commands/repl-query.js +16 -5
- package/cli/repl/core.d.ts +24 -6
- package/cli/repl/core.js +42 -30
- 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 +5 -32
- 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 +5 -1
- package/cli/script-core/summarizer-core.d.ts +3 -0
- package/cli/script-core/summarizer-core.js +3 -0
- package/cli/slicer-app.js +3 -4
- package/cli/summarizer-app.d.ts +2 -3
- package/cli/summarizer-app.js +2 -3
- package/cli/wiki.d.ts +4 -0
- package/cli/wiki.js +165 -0
- package/config.d.ts +21 -3
- package/config.js +21 -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-dead-code.js +13 -3
- package/control-flow/cfg-simplification.d.ts +5 -2
- package/control-flow/cfg-simplification.js +3 -0
- 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 +12 -9
- package/control-flow/extract-cfg.js +44 -7
- package/control-flow/happens-before.d.ts +1 -1
- package/control-flow/semantic-cfg-guided-visitor.d.ts +4 -33
- 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 +2 -4
- package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/useless-loop.d.ts +3 -6
- package/control-flow/useless-loop.js +16 -10
- package/core/pipeline-executor.d.ts +11 -22
- package/core/pipeline-executor.js +13 -25
- 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 +21 -1
- 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 +2 -2
- package/core/steps/all/core/00-parse.js +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 -6
- package/core/steps/all/core/10-normalize.js +1 -13
- package/core/steps/all/core/11-normalize-tree-sitter.d.ts +5 -5
- package/core/steps/all/core/11-normalize-tree-sitter.js +2 -3
- package/core/steps/all/core/20-dataflow.d.ts +3 -4
- package/core/steps/all/core/20-dataflow.js +2 -2
- package/core/steps/all/static-slicing/00-slice.d.ts +1 -2
- package/core/steps/all/static-slicing/00-slice.js +1 -1
- package/core/steps/all/static-slicing/10-reconstruct.d.ts +8 -0
- package/core/steps/all/static-slicing/10-reconstruct.js +4 -1
- package/core/steps/pipeline/create-pipeline.d.ts +1 -1
- package/core/steps/pipeline/default-pipelines.d.ts +94 -95
- package/core/steps/pipeline/default-pipelines.js +8 -12
- 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 -2
- package/dataflow/environments/clone.js +12 -2
- 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 +11 -2
- 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 +1 -2
- package/dataflow/environments/overwrite.js +3 -16
- 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 +9 -2
- package/dataflow/environments/scoping.js +8 -1
- 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-argument.js +2 -2
- 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 +16 -1
- package/dataflow/eval/values/string/string-constants.js +15 -0
- package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
- package/dataflow/extractor.d.ts +3 -4
- package/dataflow/extractor.js +25 -22
- 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 +9 -28
- package/dataflow/graph/graph.js +4 -28
- 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 +8 -0
- package/dataflow/graph/unknown-replacement.js +8 -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 +16 -10
- package/dataflow/info.js +27 -1
- package/dataflow/internal/linker.d.ts +25 -9
- package/dataflow/internal/linker.js +30 -11
- package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
- package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -1
- 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 +6 -4
- 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 +4 -1
- 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-assignment.js +4 -4
- 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 +9 -6
- 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 +4 -1
- 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 +4 -1
- 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 +7 -1
- 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 +5 -1
- 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-list.js +2 -2
- 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 +6 -3
- 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 +10 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +8 -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 +5 -3
- 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 +34 -12
- package/dataflow/internal/process/functions/call/built-in/built-in-source.js +90 -68
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +5 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +5 -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-vector.js +2 -2
- 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 +4 -1
- package/dataflow/internal/process/functions/call/common.d.ts +11 -5
- package/dataflow/internal/process/functions/call/common.js +9 -3
- package/dataflow/internal/process/functions/call/default-call-handling.d.ts +5 -0
- package/dataflow/internal/process/functions/call/default-call-handling.js +5 -0
- package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
- package/dataflow/internal/process/functions/call/known-call-handling.js +10 -3
- package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
- package/dataflow/internal/process/functions/call/named-call-handling.js +10 -4
- 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 +7 -4
- 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 +6 -8
- package/dataflow/origin/dfg-get-symbol-refs.js +7 -9
- package/dataflow/processor.d.ts +6 -12
- package/dataflow/processor.js +0 -1
- package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -2
- 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 +87 -0
- package/documentation/data/faq/recommended-configs.d.ts +36 -0
- package/documentation/data/faq/recommended-configs.js +40 -0
- package/documentation/data/faq/wiki-faq-store.d.ts +19 -0
- package/documentation/data/faq/wiki-faq-store.js +83 -0
- package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
- package/documentation/data/server/doc-data-server-messages.js +5 -64
- package/documentation/doc-capabilities.d.ts +9 -0
- package/documentation/{print-capabilities-markdown.js → doc-capabilities.js} +18 -21
- package/documentation/doc-readme.d.ts +9 -0
- package/documentation/{print-readme.js → doc-readme.js} +136 -35
- 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 +14 -0
- package/documentation/doc-util/doc-benchmarks.js +14 -0
- package/documentation/doc-util/doc-cfg.d.ts +7 -1
- package/documentation/doc-util/doc-cfg.js +14 -8
- 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 +12 -6
- package/documentation/doc-util/doc-dfg.js +19 -10
- 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 +6 -1
- package/documentation/doc-util/doc-escape.js +11 -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 +26 -0
- package/documentation/doc-util/doc-general.js +26 -0
- package/documentation/doc-util/doc-normalized-ast.d.ts +14 -3
- package/documentation/doc-util/doc-normalized-ast.js +16 -7
- package/documentation/doc-util/doc-query.d.ts +26 -3
- package/documentation/doc-util/doc-query.js +34 -12
- 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 +3 -18
- package/documentation/doc-util/doc-search.js +6 -62
- package/documentation/doc-util/doc-server-message.d.ts +18 -6
- package/documentation/doc-util/doc-server-message.js +17 -5
- 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 +90 -11
- package/documentation/doc-util/doc-types.js +128 -39
- package/documentation/index.d.ts +9 -9
- package/documentation/index.js +9 -9
- package/documentation/issue-linting-rule.d.ts +9 -0
- package/documentation/{print-linter-issue.js → issue-linting-rule.js} +20 -23
- package/documentation/wiki-analyzer.d.ts +9 -0
- package/documentation/wiki-analyzer.js +412 -0
- package/documentation/wiki-cfg.d.ts +9 -0
- package/documentation/{print-cfg-wiki.js → wiki-cfg.js} +144 -160
- package/documentation/wiki-core.d.ts +14 -0
- package/documentation/{print-core-wiki.js → wiki-core.js} +167 -175
- package/documentation/wiki-dataflow-graph.d.ts +9 -0
- package/documentation/{print-dataflow-graph-wiki.js → wiki-dataflow-graph.js} +145 -175
- package/documentation/wiki-engine.d.ts +9 -0
- package/documentation/{print-engines-wiki.js → wiki-engine.js} +27 -42
- package/documentation/wiki-faq.d.ts +8 -0
- package/documentation/wiki-faq.js +22 -0
- package/documentation/wiki-interface.d.ts +9 -0
- package/documentation/{print-interface-wiki.js → wiki-interface.js} +60 -57
- package/documentation/wiki-linter.d.ts +9 -0
- package/documentation/{print-linter-wiki.js → wiki-linter.js} +52 -48
- package/documentation/wiki-linting-and-testing.d.ts +9 -0
- package/documentation/{print-linting-and-testing-wiki.js → wiki-linting-and-testing.js} +25 -32
- package/documentation/wiki-mk/doc-context.d.ts +186 -0
- package/documentation/wiki-mk/doc-context.js +84 -0
- package/documentation/wiki-mk/doc-maker.d.ts +95 -0
- package/documentation/wiki-mk/doc-maker.js +133 -0
- package/documentation/wiki-normalized-ast.d.ts +9 -0
- package/documentation/{print-normalized-ast-wiki.js → wiki-normalized-ast.js} +64 -47
- package/documentation/wiki-onboarding.d.ts +8 -0
- package/documentation/{print-onboarding-wiki.js → wiki-onboarding.js} +18 -15
- package/documentation/wiki-query.d.ts +9 -0
- package/documentation/{print-query-wiki.js → wiki-query.js} +65 -80
- package/documentation/wiki-search.d.ts +9 -0
- package/documentation/wiki-search.js +61 -0
- package/engines.d.ts +1 -1
- package/linter/linter-executor.d.ts +6 -3
- package/linter/linter-executor.js +6 -2
- package/linter/linter-format.d.ts +10 -2
- package/linter/linter-format.js +8 -0
- package/linter/linter-rules.d.ts +13 -17
- package/linter/rules/absolute-path.d.ts +4 -6
- package/linter/rules/absolute-path.js +2 -2
- package/linter/rules/dataframe-access-validation.d.ts +4 -5
- package/linter/rules/dataframe-access-validation.js +21 -19
- package/linter/rules/dead-code.d.ts +2 -2
- package/linter/rules/deprecated-functions.d.ts +2 -6
- package/linter/rules/file-path-validity.d.ts +2 -3
- package/linter/rules/file-path-validity.js +4 -4
- package/linter/rules/function-finder-util.d.ts +2 -7
- package/linter/rules/naming-convention.d.ts +15 -4
- package/linter/rules/naming-convention.js +14 -2
- package/linter/rules/network-functions.d.ts +2 -2
- package/linter/rules/network-functions.js +1 -1
- package/linter/rules/seeded-randomness.d.ts +4 -4
- package/linter/rules/seeded-randomness.js +33 -13
- package/linter/rules/unused-definition.d.ts +3 -4
- package/linter/rules/useless-loop.d.ts +3 -4
- package/linter/rules/useless-loop.js +2 -2
- package/package.json +7 -18
- package/project/cache/flowr-analyzer-cache.d.ts +9 -19
- package/project/cache/flowr-analyzer-cache.js +17 -44
- package/project/cache/flowr-analyzer-controlflow-cache.d.ts +34 -0
- package/project/cache/flowr-analyzer-controlflow-cache.js +79 -0
- package/project/context/flowr-analyzer-context.d.ts +31 -9
- package/project/context/flowr-analyzer-context.js +48 -4
- package/project/context/flowr-analyzer-dependencies-context.d.ts +0 -1
- package/project/context/flowr-analyzer-files-context.d.ts +63 -15
- package/project/context/flowr-analyzer-files-context.js +110 -39
- package/project/context/flowr-file.d.ts +32 -11
- package/project/context/flowr-file.js +30 -9
- package/project/flowr-analyzer-builder.d.ts +23 -31
- package/project/flowr-analyzer-builder.js +35 -74
- package/project/flowr-analyzer.d.ts +79 -29
- package/project/flowr-analyzer.js +59 -15
- package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +8 -2
- package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.js +13 -5
- package/project/plugins/file-plugins/flowr-analyzer-file-plugin.d.ts +3 -3
- package/project/plugins/file-plugins/flowr-analyzer-file-plugin.js +11 -5
- package/project/plugins/file-plugins/flowr-description-file.d.ts +3 -5
- package/project/plugins/file-plugins/flowr-description-file.js +0 -1
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.d.ts +22 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.js +33 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.d.ts +22 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.js +33 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.d.ts +22 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.js +33 -0
- package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.d.ts +20 -0
- package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.js +42 -0
- package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.d.ts +59 -0
- package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.js +132 -0
- package/project/plugins/file-plugins/notebooks/notebook.d.ts +0 -0
- package/project/plugins/file-plugins/notebooks/notebook.js +2 -0
- package/project/plugins/flowr-analyzer-plugin-defaults.d.ts +5 -0
- package/project/plugins/flowr-analyzer-plugin-defaults.js +23 -0
- package/project/plugins/flowr-analyzer-plugin.d.ts +2 -0
- package/project/plugins/flowr-analyzer-plugin.js +2 -0
- package/project/plugins/loading-order-plugins/flowr-analyzer-loading-order-description-file-plugin.js +1 -1
- package/project/plugins/package-version-plugins/flowr-analyzer-package-versions-description-file-plugin.js +1 -1
- package/project/plugins/plugin-registry.d.ts +34 -0
- package/project/plugins/plugin-registry.js +62 -0
- package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
- package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.js +7 -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 +7 -2
- 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 +16 -4
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +34 -18
- 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 +5 -2
- 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 +25 -5
- package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +4 -0
- package/queries/catalog/happens-before-query/happens-before-query-executor.js +4 -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 +80 -2
- 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 +7 -2
- 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 +6 -1
- 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 +10 -1
- 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 +30 -1
- package/queries/query-print.d.ts +20 -4
- package/queries/query-print.js +18 -2
- package/queries/query.d.ts +93 -55
- package/queries/query.js +55 -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 +2 -2
- package/r-bridge/lang-4.x/ast/model/collect.js +4 -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-project.d.ts +29 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-project.js +15 -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 +11 -14
- package/r-bridge/lang-4.x/ast/model/processing/decorate.js +30 -17
- 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 +6 -5
- package/r-bridge/lang-4.x/ast/model/type.js +6 -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/format.js +1 -1
- package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +12 -12
- package/r-bridge/lang-4.x/ast/parser/json/parser.js +11 -11
- 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-root.d.ts +4 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-root.js +20 -11
- 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 +18 -0
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +15 -2
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +62 -24
- package/r-bridge/parser.d.ts +43 -12
- package/r-bridge/parser.js +27 -13
- package/r-bridge/retriever.d.ts +25 -16
- package/r-bridge/retriever.js +29 -5
- 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 -2
- package/reconstruct/auto-select/magic-comments.d.ts +1 -2
- package/reconstruct/auto-select/magic-comments.js +2 -3
- package/reconstruct/reconstruct.d.ts +18 -12
- package/reconstruct/reconstruct.js +19 -10
- 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 +15 -3
- package/search/search-executor/search-enrichers.d.ts +16 -6
- package/search/search-executor/search-enrichers.js +4 -3
- package/search/search-executor/search-generators.d.ts +19 -10
- package/search/search-executor/search-generators.js +57 -5
- 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 +13 -12
- package/slicing/criterion/collect-all.js +1 -1
- package/slicing/criterion/parse.d.ts +4 -2
- package/slicing/criterion/parse.js +8 -6
- 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/assignments.js +1 -1
- 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/control-flow.js +1 -1
- 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/data-access.js +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/defined-functions/defined-functions.js +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/expression-list/statistics-expression-list.js +1 -1
- package/statistics/features/supported/loops/loops.js +1 -1
- 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-functions/used-functions.js +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/features/supported/variables/variables.js +1 -1
- 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 +4 -4
- 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 +56 -2
- package/util/assert.js +56 -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 +12 -12
- package/util/files.js +11 -11
- 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 +7 -3
- package/util/mermaid/ast.js +39 -8
- package/util/mermaid/cfg.d.ts +1 -1
- package/util/mermaid/cfg.js +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/documentation/print-analyzer-wiki.d.ts +0 -1
- package/documentation/print-analyzer-wiki.js +0 -137
- package/documentation/print-capabilities-markdown.d.ts +0 -1
- package/documentation/print-cfg-wiki.d.ts +0 -1
- package/documentation/print-core-wiki.d.ts +0 -2
- package/documentation/print-dataflow-graph-wiki.d.ts +0 -1
- package/documentation/print-engines-wiki.d.ts +0 -1
- package/documentation/print-faq-wiki.d.ts +0 -1
- package/documentation/print-faq-wiki.js +0 -90
- package/documentation/print-interface-wiki.d.ts +0 -1
- package/documentation/print-linter-issue.d.ts +0 -1
- package/documentation/print-linter-wiki.d.ts +0 -1
- package/documentation/print-linting-and-testing-wiki.d.ts +0 -1
- package/documentation/print-normalized-ast-wiki.d.ts +0 -1
- package/documentation/print-onboarding-wiki.d.ts +0 -1
- package/documentation/print-query-wiki.d.ts +0 -1
- package/documentation/print-readme.d.ts +0 -1
- package/documentation/print-search-wiki.d.ts +0 -1
- package/documentation/print-search-wiki.js +0 -74
- 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
- package/util/formats/adapter-format.d.ts +0 -6
- package/util/formats/adapter-format.js +0 -3
- package/util/formats/adapter.d.ts +0 -18
- package/util/formats/adapter.js +0 -49
- package/util/formats/adapters/r-adapter.d.ts +0 -4
- package/util/formats/adapters/r-adapter.js +0 -7
- package/util/formats/adapters/rmd-adapter.d.ts +0 -26
- package/util/formats/adapters/rmd-adapter.js +0 -91
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
import type { KnownParser } from '../../r-bridge/parser';
|
|
2
|
-
import type
|
|
3
|
-
import {
|
|
4
|
-
import type { DEFAULT_DATAFLOW_PIPELINE, TREE_SITTER_DATAFLOW_PIPELINE } from '../../core/steps/pipeline/default-pipelines';
|
|
5
|
-
import type { FlowrConfigOptions } from '../../config';
|
|
6
|
-
import type { RParseRequests } from '../../r-bridge/retriever';
|
|
2
|
+
import { type CacheInvalidationEvent, FlowrCache } from './flowr-cache';
|
|
3
|
+
import { type DEFAULT_DATAFLOW_PIPELINE, type TREE_SITTER_DATAFLOW_PIPELINE } from '../../core/steps/pipeline/default-pipelines';
|
|
7
4
|
import type { IdGenerator } from '../../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
8
5
|
import type { NoInfo } from '../../r-bridge/lang-4.x/ast/model/model';
|
|
9
6
|
import type { TreeSitterExecutor } from '../../r-bridge/lang-4.x/tree-sitter/tree-sitter-executor';
|
|
10
7
|
import type { PipelineOutput } from '../../core/steps/pipeline/pipeline';
|
|
11
8
|
import type { CfgSimplificationPassName } from '../../control-flow/cfg-simplification';
|
|
12
9
|
import type { ControlFlowInformation } from '../../control-flow/control-flow-graph';
|
|
13
|
-
import { CfgKind } from '../cfg-kind';
|
|
10
|
+
import type { CfgKind } from '../cfg-kind';
|
|
11
|
+
import type { FlowrAnalyzerContext } from '../context/flowr-analyzer-context';
|
|
14
12
|
interface FlowrAnalyzerCacheOptions<Parser extends KnownParser> {
|
|
15
13
|
parser: Parser;
|
|
16
|
-
|
|
17
|
-
request: RParseRequests;
|
|
14
|
+
context: FlowrAnalyzerContext;
|
|
18
15
|
getId?: IdGenerator<NoInfo>;
|
|
19
|
-
overwriteFilePath?: string;
|
|
20
16
|
}
|
|
21
17
|
export type AnalyzerCacheType<Parser extends KnownParser> = Parser extends TreeSitterExecutor ? Partial<PipelineOutput<typeof TREE_SITTER_DATAFLOW_PIPELINE>> : Partial<PipelineOutput<typeof DEFAULT_DATAFLOW_PIPELINE>>;
|
|
22
18
|
/**
|
|
@@ -37,14 +33,12 @@ export declare class FlowrAnalyzerCache<Parser extends KnownParser> extends Flow
|
|
|
37
33
|
/**
|
|
38
34
|
* Get the parse output for the request, parsing if necessary.
|
|
39
35
|
* @param force - Do not use the cache, instead force a new parse.
|
|
40
|
-
*
|
|
41
36
|
* @see {@link FlowrAnalyzerCache#peekParse} - to get the parse output if already available without triggering a new parse.
|
|
42
37
|
*/
|
|
43
38
|
parse(force?: boolean): Promise<NonNullable<AnalyzerCacheType<Parser>['parse']>>;
|
|
44
39
|
/**
|
|
45
40
|
* Get the parse output for the request if already available, otherwise return `undefined`.
|
|
46
41
|
* This will not trigger a new parse.
|
|
47
|
-
*
|
|
48
42
|
* @see {@link FlowrAnalyzerCache#parse} - to get the parse output, parsing if necessary.
|
|
49
43
|
*/
|
|
50
44
|
peekParse(): NonNullable<AnalyzerCacheType<Parser>['parse']> | undefined;
|
|
@@ -57,36 +51,32 @@ export declare class FlowrAnalyzerCache<Parser extends KnownParser> extends Flow
|
|
|
57
51
|
/**
|
|
58
52
|
* Get the normalized abstract syntax tree for the request if already available, otherwise return `undefined`.
|
|
59
53
|
* This will not trigger a new normalization.
|
|
60
|
-
*
|
|
61
54
|
* @see {@link FlowrAnalyzerCache#normalize} - to get the normalized AST, normalizing if necessary.
|
|
62
55
|
*/
|
|
63
56
|
peekNormalize(): NonNullable<AnalyzerCacheType<Parser>['normalize']> | undefined;
|
|
64
57
|
/**
|
|
65
58
|
* Get the dataflow graph for the request, computing if necessary.
|
|
66
59
|
* @param force - Do not use the cache, instead force new analyses.
|
|
67
|
-
*
|
|
68
60
|
* @see {@link FlowrAnalyzerCache#peekDataflow} - to get the dataflow graph if already available without triggering a new computation.
|
|
69
61
|
*/
|
|
70
62
|
dataflow(force?: boolean): Promise<NonNullable<AnalyzerCacheType<Parser>['dataflow']>>;
|
|
71
63
|
/**
|
|
72
64
|
* Get the dataflow graph for the request if already available, otherwise return `undefined`.
|
|
73
65
|
* This will not trigger a new computation.
|
|
74
|
-
*
|
|
75
66
|
* @see {@link FlowrAnalyzerCache#dataflow} - to get the dataflow graph, computing if necessary.
|
|
76
67
|
*/
|
|
77
68
|
peekDataflow(): NonNullable<AnalyzerCacheType<Parser>['dataflow']> | undefined;
|
|
78
69
|
/**
|
|
79
70
|
* Get the control flow graph (CFG) for the request, computing if necessary.
|
|
80
|
-
* @param force
|
|
81
|
-
* @param kind
|
|
71
|
+
* @param force - Do not use the cache, instead force new analyses.
|
|
72
|
+
* @param kind - The kind of CFG that is requested.
|
|
82
73
|
* @param simplifications - Simplification passes to be applied to the CFG.
|
|
83
74
|
*/
|
|
84
|
-
controlflow(force: boolean | undefined, kind: CfgKind, simplifications
|
|
75
|
+
controlflow(force: boolean | undefined, kind: CfgKind, simplifications?: readonly CfgSimplificationPassName[]): Promise<ControlFlowInformation>;
|
|
85
76
|
/**
|
|
86
77
|
* Get the control flow graph (CFG) for the request if already available, otherwise return `undefined`.
|
|
87
|
-
* @param kind
|
|
78
|
+
* @param kind - The kind of CFG that is requested.
|
|
88
79
|
* @param simplifications - Simplification passes to be applied to the CFG.
|
|
89
|
-
*
|
|
90
80
|
* @see {@link FlowrAnalyzerCache#controlflow} - to get the control flow graph, computing if necessary.
|
|
91
81
|
*/
|
|
92
82
|
peekControlflow(kind: CfgKind, simplifications: readonly CfgSimplificationPassName[] | undefined): ControlFlowInformation | undefined;
|
|
@@ -4,9 +4,7 @@ exports.FlowrAnalyzerCache = void 0;
|
|
|
4
4
|
const flowr_cache_1 = require("./flowr-cache");
|
|
5
5
|
const default_pipelines_1 = require("../../core/steps/pipeline/default-pipelines");
|
|
6
6
|
const assert_1 = require("../../util/assert");
|
|
7
|
-
const
|
|
8
|
-
const extract_cfg_1 = require("../../control-flow/extract-cfg");
|
|
9
|
-
const cfg_kind_1 = require("../cfg-kind");
|
|
7
|
+
const flowr_analyzer_controlflow_cache_1 = require("./flowr-analyzer-controlflow-cache");
|
|
10
8
|
/**
|
|
11
9
|
* This provides the full analyzer caching layer, please avoid using this directly
|
|
12
10
|
* and prefer the {@link FlowrAnalyzer}.
|
|
@@ -22,13 +20,10 @@ class FlowrAnalyzerCache extends flowr_cache_1.FlowrCache {
|
|
|
22
20
|
}
|
|
23
21
|
initCacheProviders() {
|
|
24
22
|
this.pipeline = (0, default_pipelines_1.createDataflowPipeline)(this.args.parser, {
|
|
25
|
-
|
|
26
|
-
getId: this.args.getId
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
this.controlFlowCache = {
|
|
30
|
-
simplified: new objectmap_1.ObjectMap(),
|
|
31
|
-
};
|
|
23
|
+
context: this.args.context,
|
|
24
|
+
getId: this.args.getId
|
|
25
|
+
});
|
|
26
|
+
this.controlFlowCache = new flowr_analyzer_controlflow_cache_1.FlowrAnalyzerControlFlowCache();
|
|
32
27
|
}
|
|
33
28
|
static create(data) {
|
|
34
29
|
return new FlowrAnalyzerCache(data);
|
|
@@ -51,7 +46,7 @@ class FlowrAnalyzerCache extends flowr_cache_1.FlowrCache {
|
|
|
51
46
|
this.receive({ type: "full" /* CacheInvalidationEventType.Full */ });
|
|
52
47
|
}
|
|
53
48
|
async runTapeUntil(force, until) {
|
|
54
|
-
(0, assert_1.guard)(this.args.
|
|
49
|
+
(0, assert_1.guard)(this.args.context.files.loadingOrder.getUnorderedRequests().length > 0, 'At least one request must be set to run the analysis pipeline');
|
|
55
50
|
if (force) {
|
|
56
51
|
this.reset();
|
|
57
52
|
}
|
|
@@ -65,7 +60,6 @@ class FlowrAnalyzerCache extends flowr_cache_1.FlowrCache {
|
|
|
65
60
|
/**
|
|
66
61
|
* Get the parse output for the request, parsing if necessary.
|
|
67
62
|
* @param force - Do not use the cache, instead force a new parse.
|
|
68
|
-
*
|
|
69
63
|
* @see {@link FlowrAnalyzerCache#peekParse} - to get the parse output if already available without triggering a new parse.
|
|
70
64
|
*/
|
|
71
65
|
async parse(force) {
|
|
@@ -75,7 +69,6 @@ class FlowrAnalyzerCache extends flowr_cache_1.FlowrCache {
|
|
|
75
69
|
/**
|
|
76
70
|
* Get the parse output for the request if already available, otherwise return `undefined`.
|
|
77
71
|
* This will not trigger a new parse.
|
|
78
|
-
*
|
|
79
72
|
* @see {@link FlowrAnalyzerCache#parse} - to get the parse output, parsing if necessary.
|
|
80
73
|
*/
|
|
81
74
|
peekParse() {
|
|
@@ -93,7 +86,6 @@ class FlowrAnalyzerCache extends flowr_cache_1.FlowrCache {
|
|
|
93
86
|
/**
|
|
94
87
|
* Get the normalized abstract syntax tree for the request if already available, otherwise return `undefined`.
|
|
95
88
|
* This will not trigger a new normalization.
|
|
96
|
-
*
|
|
97
89
|
* @see {@link FlowrAnalyzerCache#normalize} - to get the normalized AST, normalizing if necessary.
|
|
98
90
|
*/
|
|
99
91
|
peekNormalize() {
|
|
@@ -102,7 +94,6 @@ class FlowrAnalyzerCache extends flowr_cache_1.FlowrCache {
|
|
|
102
94
|
/**
|
|
103
95
|
* Get the dataflow graph for the request, computing if necessary.
|
|
104
96
|
* @param force - Do not use the cache, instead force new analyses.
|
|
105
|
-
*
|
|
106
97
|
* @see {@link FlowrAnalyzerCache#peekDataflow} - to get the dataflow graph if already available without triggering a new computation.
|
|
107
98
|
*/
|
|
108
99
|
async dataflow(force) {
|
|
@@ -112,7 +103,6 @@ class FlowrAnalyzerCache extends flowr_cache_1.FlowrCache {
|
|
|
112
103
|
/**
|
|
113
104
|
* Get the dataflow graph for the request if already available, otherwise return `undefined`.
|
|
114
105
|
* This will not trigger a new computation.
|
|
115
|
-
*
|
|
116
106
|
* @see {@link FlowrAnalyzerCache#dataflow} - to get the dataflow graph, computing if necessary.
|
|
117
107
|
*/
|
|
118
108
|
peekDataflow() {
|
|
@@ -120,44 +110,27 @@ class FlowrAnalyzerCache extends flowr_cache_1.FlowrCache {
|
|
|
120
110
|
}
|
|
121
111
|
/**
|
|
122
112
|
* Get the control flow graph (CFG) for the request, computing if necessary.
|
|
123
|
-
* @param force
|
|
124
|
-
* @param kind
|
|
113
|
+
* @param force - Do not use the cache, instead force new analyses.
|
|
114
|
+
* @param kind - The kind of CFG that is requested.
|
|
125
115
|
* @param simplifications - Simplification passes to be applied to the CFG.
|
|
126
116
|
*/
|
|
127
117
|
async controlflow(force, kind, simplifications) {
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
}
|
|
136
|
-
const normalized = await this.normalize(force);
|
|
137
|
-
let result;
|
|
138
|
-
switch (kind) {
|
|
139
|
-
case cfg_kind_1.CfgKind.WithDataflow:
|
|
140
|
-
result = (0, extract_cfg_1.extractCfg)(normalized, this.args.config, (await this.dataflow()).graph, simplifications);
|
|
141
|
-
break;
|
|
142
|
-
case cfg_kind_1.CfgKind.NoDataflow:
|
|
143
|
-
result = (0, extract_cfg_1.extractCfg)(normalized, this.args.config, undefined, simplifications);
|
|
144
|
-
break;
|
|
145
|
-
case cfg_kind_1.CfgKind.Quick:
|
|
146
|
-
result = this.peekDataflow()?.cfgQuick ?? (0, extract_cfg_1.extractCfgQuick)(normalized);
|
|
147
|
-
break;
|
|
148
|
-
}
|
|
149
|
-
this.controlFlowCache.simplified.set([simplifications, kind], result);
|
|
150
|
-
return result;
|
|
118
|
+
const cfgInfo = {
|
|
119
|
+
ctx: this.args.context,
|
|
120
|
+
cfgQuick: this.peekDataflow()?.cfgQuick,
|
|
121
|
+
ast: async () => await this.normalize(),
|
|
122
|
+
dfg: async () => await this.dataflow()
|
|
123
|
+
};
|
|
124
|
+
return this.controlFlowCache.get(force, kind, cfgInfo, simplifications);
|
|
151
125
|
}
|
|
152
126
|
/**
|
|
153
127
|
* Get the control flow graph (CFG) for the request if already available, otherwise return `undefined`.
|
|
154
|
-
* @param kind
|
|
128
|
+
* @param kind - The kind of CFG that is requested.
|
|
155
129
|
* @param simplifications - Simplification passes to be applied to the CFG.
|
|
156
|
-
*
|
|
157
130
|
* @see {@link FlowrAnalyzerCache#controlflow} - to get the control flow graph, computing if necessary.
|
|
158
131
|
*/
|
|
159
132
|
peekControlflow(kind, simplifications) {
|
|
160
|
-
return this.controlFlowCache.
|
|
133
|
+
return this.controlFlowCache.peek(kind, simplifications);
|
|
161
134
|
}
|
|
162
135
|
}
|
|
163
136
|
exports.FlowrAnalyzerCache = FlowrAnalyzerCache;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { CfgSimplificationPassName } from '../../control-flow/cfg-simplification';
|
|
2
|
+
import { CfgKind } from '../cfg-kind';
|
|
3
|
+
import type { ControlFlowInformation } from '../../control-flow/control-flow-graph';
|
|
4
|
+
import type { NormalizedAst } from '../../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
5
|
+
import type { DataflowInformation } from '../../dataflow/info';
|
|
6
|
+
import type { FlowrAnalyzerContext } from '../context/flowr-analyzer-context';
|
|
7
|
+
interface CfgInfo {
|
|
8
|
+
ctx: FlowrAnalyzerContext;
|
|
9
|
+
cfgQuick: ControlFlowInformation | undefined;
|
|
10
|
+
dfg: () => Promise<DataflowInformation>;
|
|
11
|
+
ast: () => Promise<NormalizedAst>;
|
|
12
|
+
}
|
|
13
|
+
export declare class FlowrAnalyzerControlFlowCache {
|
|
14
|
+
private readonly cache;
|
|
15
|
+
peek(kind: CfgKind, simplifications: readonly CfgSimplificationPassName[] | undefined): ControlFlowInformation | undefined;
|
|
16
|
+
get(force: boolean | undefined, kind: CfgKind, cfgCacheInfo: CfgInfo, simplifications?: readonly CfgSimplificationPassName[]): Promise<ControlFlowInformation>;
|
|
17
|
+
/**
|
|
18
|
+
* Create and cache the base CFG without simplifications.
|
|
19
|
+
*/
|
|
20
|
+
private createAndCacheBaseCfg;
|
|
21
|
+
/**
|
|
22
|
+
* Try to get a cached CFG with some of the requested simplifications already applied.
|
|
23
|
+
* Matches the longest prefix of simplifications available.
|
|
24
|
+
* @returns The cached CFG and the missing simplifications to be applied, or `undefined` if no cached CFG is available.
|
|
25
|
+
*/
|
|
26
|
+
private tryGetCachedCfg;
|
|
27
|
+
/**
|
|
28
|
+
* Normalize the order of simplification passes.
|
|
29
|
+
* Is currently an identity function, but may be extended in the future to enforce a specific order using heuristics.
|
|
30
|
+
* @param simplifications - the requested simplification passes.
|
|
31
|
+
*/
|
|
32
|
+
private normalizeSimplificationOrder;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FlowrAnalyzerControlFlowCache = void 0;
|
|
4
|
+
const objectmap_1 = require("../../util/collections/objectmap");
|
|
5
|
+
const cfg_simplification_1 = require("../../control-flow/cfg-simplification");
|
|
6
|
+
const cfg_kind_1 = require("../cfg-kind");
|
|
7
|
+
const assert_1 = require("../../util/assert");
|
|
8
|
+
const extract_cfg_1 = require("../../control-flow/extract-cfg");
|
|
9
|
+
class FlowrAnalyzerControlFlowCache {
|
|
10
|
+
cache = new objectmap_1.ObjectMap();
|
|
11
|
+
peek(kind, simplifications) {
|
|
12
|
+
return this.cache.get([simplifications ?? [], kind]);
|
|
13
|
+
}
|
|
14
|
+
async get(force, kind, cfgCacheInfo, simplifications) {
|
|
15
|
+
(0, assert_1.guard)(kind === cfg_kind_1.CfgKind.Quick ? simplifications === undefined : true, 'Cannot apply simplifications to quick CFG');
|
|
16
|
+
simplifications ??= [];
|
|
17
|
+
const orderedSimplifications = this.normalizeSimplificationOrder(simplifications);
|
|
18
|
+
const cached = force ?
|
|
19
|
+
{ cfg: undefined, missingSimplifications: orderedSimplifications }
|
|
20
|
+
: this.tryGetCachedCfg(orderedSimplifications, kind);
|
|
21
|
+
let cfg = cached.cfg;
|
|
22
|
+
if (!cfg) {
|
|
23
|
+
cfg = await this.createAndCacheBaseCfg(kind, cfgCacheInfo);
|
|
24
|
+
}
|
|
25
|
+
if (cached.missingSimplifications.length > 0) {
|
|
26
|
+
const cfgPassInfo = { dfg: (await cfgCacheInfo.dfg()).graph, ctx: cfgCacheInfo.ctx, ast: await cfgCacheInfo.ast() };
|
|
27
|
+
cfg = (0, cfg_simplification_1.simplifyControlFlowInformation)(cfg, cfgPassInfo, cached.missingSimplifications);
|
|
28
|
+
}
|
|
29
|
+
this.cache.set([orderedSimplifications, kind], cfg);
|
|
30
|
+
return cfg;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create and cache the base CFG without simplifications.
|
|
34
|
+
*/
|
|
35
|
+
async createAndCacheBaseCfg(kind, { cfgQuick, dfg, ctx, ast }) {
|
|
36
|
+
let result;
|
|
37
|
+
switch (kind) {
|
|
38
|
+
case cfg_kind_1.CfgKind.WithDataflow:
|
|
39
|
+
result = (0, extract_cfg_1.extractCfg)(await ast(), ctx, (await dfg()).graph);
|
|
40
|
+
break;
|
|
41
|
+
case cfg_kind_1.CfgKind.NoDataflow:
|
|
42
|
+
result = (0, extract_cfg_1.extractCfg)(await ast(), ctx);
|
|
43
|
+
break;
|
|
44
|
+
case cfg_kind_1.CfgKind.Quick:
|
|
45
|
+
result = cfgQuick ?? (0, extract_cfg_1.extractCfgQuick)(await ast());
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
this.cache.set([[], kind], result);
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Try to get a cached CFG with some of the requested simplifications already applied.
|
|
53
|
+
* Matches the longest prefix of simplifications available.
|
|
54
|
+
* @returns The cached CFG and the missing simplifications to be applied, or `undefined` if no cached CFG is available.
|
|
55
|
+
*/
|
|
56
|
+
tryGetCachedCfg(simplifications, kind) {
|
|
57
|
+
for (let prefixLen = simplifications.length; prefixLen >= 0; prefixLen--) {
|
|
58
|
+
const prefix = simplifications.slice(0, prefixLen);
|
|
59
|
+
const cached = this.cache.get([prefix, kind]);
|
|
60
|
+
if (cached !== undefined) {
|
|
61
|
+
return {
|
|
62
|
+
cfg: cached,
|
|
63
|
+
missingSimplifications: simplifications.slice(prefixLen)
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return { cfg: undefined, missingSimplifications: simplifications };
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Normalize the order of simplification passes.
|
|
71
|
+
* Is currently an identity function, but may be extended in the future to enforce a specific order using heuristics.
|
|
72
|
+
* @param simplifications - the requested simplification passes.
|
|
73
|
+
*/
|
|
74
|
+
normalizeSimplificationOrder(simplifications) {
|
|
75
|
+
return simplifications;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.FlowrAnalyzerControlFlowCache = FlowrAnalyzerControlFlowCache;
|
|
79
|
+
//# sourceMappingURL=flowr-analyzer-controlflow-cache.js.map
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import {
|
|
3
|
-
import type
|
|
4
|
-
import {
|
|
5
|
-
import type {
|
|
6
|
-
import {
|
|
1
|
+
import { FlowrAnalyzerFilesContext, type RAnalysisRequest, type ReadOnlyFlowrAnalyzerFilesContext } from './flowr-analyzer-files-context';
|
|
2
|
+
import { FlowrAnalyzerDependenciesContext, type ReadOnlyFlowrAnalyzerDependenciesContext } from './flowr-analyzer-dependencies-context';
|
|
3
|
+
import { type FlowrAnalyzerPlugin, PluginType } from '../plugins/flowr-analyzer-plugin';
|
|
4
|
+
import type { fileProtocol, RParseRequestFromFile, RParseRequests } from '../../r-bridge/retriever';
|
|
5
|
+
import type { FlowrConfigOptions } from '../../config';
|
|
6
|
+
import type { FlowrFileProvider } from './flowr-file';
|
|
7
7
|
/**
|
|
8
8
|
* This is a read-only interface to the {@link FlowrAnalyzerContext}.
|
|
9
9
|
* It prevents you from modifying the context, but allows you to inspect it (which is probably what you want when using the {@link FlowrAnalyzer}).
|
|
@@ -18,6 +18,10 @@ export interface ReadOnlyFlowrAnalyzerContext {
|
|
|
18
18
|
* The dependencies context provides access to the identified dependencies and their versions.
|
|
19
19
|
*/
|
|
20
20
|
readonly deps: ReadOnlyFlowrAnalyzerDependenciesContext;
|
|
21
|
+
/**
|
|
22
|
+
* The configuration options used by the analyzer.
|
|
23
|
+
*/
|
|
24
|
+
readonly config: FlowrConfigOptions;
|
|
21
25
|
}
|
|
22
26
|
/**
|
|
23
27
|
* This summarizes the other context layers used by the {@link FlowrAnalyzer}.
|
|
@@ -34,11 +38,12 @@ export interface ReadOnlyFlowrAnalyzerContext {
|
|
|
34
38
|
export declare class FlowrAnalyzerContext implements ReadOnlyFlowrAnalyzerContext {
|
|
35
39
|
readonly files: FlowrAnalyzerFilesContext;
|
|
36
40
|
readonly deps: FlowrAnalyzerDependenciesContext;
|
|
37
|
-
|
|
41
|
+
readonly config: FlowrConfigOptions;
|
|
42
|
+
constructor(config: FlowrConfigOptions, plugins: ReadonlyMap<PluginType, readonly FlowrAnalyzerPlugin[]>);
|
|
38
43
|
/** delegate request addition */
|
|
39
44
|
addRequests(requests: readonly RAnalysisRequest[]): void;
|
|
40
|
-
|
|
41
|
-
|
|
45
|
+
addFile(f: string | FlowrFileProvider | RParseRequestFromFile): void;
|
|
46
|
+
addFiles(f: (string | FlowrFileProvider | RParseRequestFromFile)[]): void;
|
|
42
47
|
/** this conducts all the step that can be done before the main analysis run */
|
|
43
48
|
resolvePreAnalysis(): void;
|
|
44
49
|
/**
|
|
@@ -52,3 +57,20 @@ export declare class FlowrAnalyzerContext implements ReadOnlyFlowrAnalyzerContex
|
|
|
52
57
|
*/
|
|
53
58
|
reset(): void;
|
|
54
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Lifting {@link requestFromInput} to create a full {@link FlowrAnalyzerContext} from input requests.
|
|
62
|
+
* Please use this only for a "quick" setup, or to have compatibility with the pre-project flowR era.
|
|
63
|
+
* Otherwise, refer to a {@link FlowrAnalyzerBuilder} to create a fully customized {@link FlowrAnalyzer} instance.
|
|
64
|
+
* @see {@link requestFromInput} - for details on how inputs are processed into requests.
|
|
65
|
+
* @see {@link contextFromSources} - to create a context from source code strings directly.
|
|
66
|
+
*/
|
|
67
|
+
export declare function contextFromInput(input: `${typeof fileProtocol}${string}` | string | readonly string[] | RParseRequests, config?: FlowrConfigOptions, plugins?: FlowrAnalyzerPlugin[]): FlowrAnalyzerContext;
|
|
68
|
+
/**
|
|
69
|
+
* Create a {@link FlowrAnalyzerContext} from a set of source code strings.
|
|
70
|
+
* @param sources - A record mapping file paths to their source code content.
|
|
71
|
+
* @param config - Configuration options for the analyzer.
|
|
72
|
+
* @param plugins - Optional plugins to extend the analyzer's functionality.
|
|
73
|
+
* @see {@link contextFromInput} - to create a context from input requests.
|
|
74
|
+
* @see {@link FlowrInlineTextFile} - to create inline text files for the sources.
|
|
75
|
+
*/
|
|
76
|
+
export declare function contextFromSources(sources: Record<string, string>, config?: FlowrConfigOptions, plugins?: FlowrAnalyzerPlugin[]): FlowrAnalyzerContext;
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FlowrAnalyzerContext = void 0;
|
|
4
|
+
exports.contextFromInput = contextFromInput;
|
|
5
|
+
exports.contextFromSources = contextFromSources;
|
|
4
6
|
const flowr_analyzer_files_context_1 = require("./flowr-analyzer-files-context");
|
|
5
7
|
const flowr_analyzer_dependencies_context_1 = require("./flowr-analyzer-dependencies-context");
|
|
6
8
|
const flowr_analyzer_plugin_1 = require("../plugins/flowr-analyzer-plugin");
|
|
7
9
|
const flowr_analyzer_loading_order_context_1 = require("./flowr-analyzer-loading-order-context");
|
|
10
|
+
const arrays_1 = require("../../util/collections/arrays");
|
|
11
|
+
const retriever_1 = require("../../r-bridge/retriever");
|
|
12
|
+
const config_1 = require("../../config");
|
|
13
|
+
const flowr_file_1 = require("./flowr-file");
|
|
8
14
|
/**
|
|
9
15
|
* This summarizes the other context layers used by the {@link FlowrAnalyzer}.
|
|
10
16
|
* Have a look at the attributes and layers listed below (e.g., {@link files} and {@link deps})
|
|
@@ -20,7 +26,9 @@ const flowr_analyzer_loading_order_context_1 = require("./flowr-analyzer-loading
|
|
|
20
26
|
class FlowrAnalyzerContext {
|
|
21
27
|
files;
|
|
22
28
|
deps;
|
|
23
|
-
|
|
29
|
+
config;
|
|
30
|
+
constructor(config, plugins) {
|
|
31
|
+
this.config = config;
|
|
24
32
|
const loadingOrder = new flowr_analyzer_loading_order_context_1.FlowrAnalyzerLoadingOrderContext(this, plugins.get(flowr_analyzer_plugin_1.PluginType.LoadingOrder));
|
|
25
33
|
this.files = new flowr_analyzer_files_context_1.FlowrAnalyzerFilesContext(loadingOrder, (plugins.get(flowr_analyzer_plugin_1.PluginType.ProjectDiscovery) ?? []), (plugins.get(flowr_analyzer_plugin_1.PluginType.FileLoad) ?? []));
|
|
26
34
|
this.deps = new flowr_analyzer_dependencies_context_1.FlowrAnalyzerDependenciesContext(this, (plugins.get(flowr_analyzer_plugin_1.PluginType.DependencyIdentification) ?? []));
|
|
@@ -29,9 +37,11 @@ class FlowrAnalyzerContext {
|
|
|
29
37
|
addRequests(requests) {
|
|
30
38
|
this.files.addRequests(requests);
|
|
31
39
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
addFile(f) {
|
|
41
|
+
this.files.addFile(f);
|
|
42
|
+
}
|
|
43
|
+
addFiles(f) {
|
|
44
|
+
this.files.addFiles(f);
|
|
35
45
|
}
|
|
36
46
|
/** this conducts all the step that can be done before the main analysis run */
|
|
37
47
|
resolvePreAnalysis() {
|
|
@@ -55,4 +65,38 @@ class FlowrAnalyzerContext {
|
|
|
55
65
|
}
|
|
56
66
|
}
|
|
57
67
|
exports.FlowrAnalyzerContext = FlowrAnalyzerContext;
|
|
68
|
+
/**
|
|
69
|
+
* Lifting {@link requestFromInput} to create a full {@link FlowrAnalyzerContext} from input requests.
|
|
70
|
+
* Please use this only for a "quick" setup, or to have compatibility with the pre-project flowR era.
|
|
71
|
+
* Otherwise, refer to a {@link FlowrAnalyzerBuilder} to create a fully customized {@link FlowrAnalyzer} instance.
|
|
72
|
+
* @see {@link requestFromInput} - for details on how inputs are processed into requests.
|
|
73
|
+
* @see {@link contextFromSources} - to create a context from source code strings directly.
|
|
74
|
+
*/
|
|
75
|
+
function contextFromInput(input, config = config_1.defaultConfigOptions, plugins) {
|
|
76
|
+
const context = new FlowrAnalyzerContext(config, (0, arrays_1.arraysGroupBy)(plugins ?? [], (p) => p.type));
|
|
77
|
+
if (typeof input === 'string' || Array.isArray(input) && input.every(i => typeof i === 'string')) {
|
|
78
|
+
const requests = (0, retriever_1.requestFromInput)(input);
|
|
79
|
+
context.addRequests(Array.isArray(requests) ? requests : [requests]);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
const requests = Array.isArray(input) ? input : [input];
|
|
83
|
+
context.addRequests(requests);
|
|
84
|
+
}
|
|
85
|
+
return context;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Create a {@link FlowrAnalyzerContext} from a set of source code strings.
|
|
89
|
+
* @param sources - A record mapping file paths to their source code content.
|
|
90
|
+
* @param config - Configuration options for the analyzer.
|
|
91
|
+
* @param plugins - Optional plugins to extend the analyzer's functionality.
|
|
92
|
+
* @see {@link contextFromInput} - to create a context from input requests.
|
|
93
|
+
* @see {@link FlowrInlineTextFile} - to create inline text files for the sources.
|
|
94
|
+
*/
|
|
95
|
+
function contextFromSources(sources, config = config_1.defaultConfigOptions, plugins) {
|
|
96
|
+
const context = new FlowrAnalyzerContext(config, (0, arrays_1.arraysGroupBy)(plugins ?? [], (p) => p.type));
|
|
97
|
+
for (const [p, c] of Object.entries(sources)) {
|
|
98
|
+
context.addFile(new flowr_file_1.FlowrInlineTextFile(p, c));
|
|
99
|
+
}
|
|
100
|
+
return context;
|
|
101
|
+
}
|
|
58
102
|
//# sourceMappingURL=flowr-analyzer-context.js.map
|
|
@@ -16,7 +16,6 @@ export interface ReadOnlyFlowrAnalyzerDependenciesContext {
|
|
|
16
16
|
* Get the dependency with the given name, if it exists.
|
|
17
17
|
*
|
|
18
18
|
* If the static dependencies have not yet been loaded, this may trigger a resolution step.
|
|
19
|
-
*
|
|
20
19
|
* @param name - The name of the dependency to get.
|
|
21
20
|
* @returns The dependency with the given name, or undefined if it does not exist.
|
|
22
21
|
*/
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { AbstractFlowrAnalyzerContext } from './abstract-flowr-analyzer-context';
|
|
2
|
-
import type { RParseRequest, RParseRequestFromFile } from '../../r-bridge/retriever';
|
|
2
|
+
import type { RParseRequestFromText, RParseRequest, RParseRequestFromFile } from '../../r-bridge/retriever';
|
|
3
3
|
import type { FlowrAnalyzerLoadingOrderContext, ReadOnlyFlowrAnalyzerLoadingOrderContext } from './flowr-analyzer-loading-order-context';
|
|
4
4
|
import { FlowrAnalyzerProjectDiscoveryPlugin } from '../plugins/project-discovery/flowr-analyzer-project-discovery-plugin';
|
|
5
5
|
import { FlowrAnalyzerFilePlugin } from '../plugins/file-plugins/flowr-analyzer-file-plugin';
|
|
6
|
-
import
|
|
7
|
-
import { SpecialFileRole } from './flowr-file';
|
|
6
|
+
import { FlowrFile, type FlowrFileProvider, FileRole } from './flowr-file';
|
|
8
7
|
import type { FlowrDescriptionFile } from '../plugins/file-plugins/flowr-description-file';
|
|
9
8
|
/**
|
|
10
9
|
* This is a request to process a folder as a project, which will be expanded by the registered {@link FlowrAnalyzerProjectDiscoveryPlugin}s.
|
|
@@ -17,11 +16,12 @@ export interface RProjectAnalysisRequest {
|
|
|
17
16
|
readonly content: string;
|
|
18
17
|
}
|
|
19
18
|
export type RAnalysisRequest = RParseRequest | RProjectAnalysisRequest;
|
|
20
|
-
export type
|
|
21
|
-
[
|
|
22
|
-
[
|
|
23
|
-
[
|
|
24
|
-
[
|
|
19
|
+
export type RoleBasedFiles = {
|
|
20
|
+
[FileRole.Description]: FlowrDescriptionFile[];
|
|
21
|
+
[FileRole.Namespace]: FlowrFileProvider[];
|
|
22
|
+
[FileRole.Source]: FlowrFileProvider[];
|
|
23
|
+
[FileRole.Data]: FlowrFileProvider[];
|
|
24
|
+
[FileRole.Other]: FlowrFileProvider[];
|
|
25
25
|
};
|
|
26
26
|
/**
|
|
27
27
|
* This is the read-only interface for the files context, which is used to manage all files known to the {@link FlowrAnalyzer}.
|
|
@@ -39,13 +39,42 @@ export interface ReadOnlyFlowrAnalyzerFilesContext {
|
|
|
39
39
|
readonly loadingOrder: ReadOnlyFlowrAnalyzerLoadingOrderContext;
|
|
40
40
|
/**
|
|
41
41
|
* Get all requests that have been added to this context.
|
|
42
|
-
*
|
|
43
42
|
* @example If you want to obtain all description files, use
|
|
44
43
|
* ```ts
|
|
45
44
|
* getFilesByRole(SpecialFileRole.Description)
|
|
46
45
|
* ```
|
|
47
46
|
*/
|
|
48
|
-
getFilesByRole<Role extends
|
|
47
|
+
getFilesByRole<Role extends FileRole>(role: Role): RoleBasedFiles[Role];
|
|
48
|
+
/**
|
|
49
|
+
* Check if the context has a file with the given path.
|
|
50
|
+
* Please note, that this may also check the file system, depending on the configuration
|
|
51
|
+
* (see {@link FlowrConfigOptions.project.resolveUnknownPathsOnDisk}).
|
|
52
|
+
* @param path - The path to the file.
|
|
53
|
+
*
|
|
54
|
+
* If you do not know the exact path or, e.g., casing of the file, use {@link exists} instead.
|
|
55
|
+
*/
|
|
56
|
+
hasFile(path: string): boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Check if a file exists at the given path, optionally ignoring case.
|
|
59
|
+
* @param path - The path to the file.
|
|
60
|
+
* @param ignoreCase - Whether to ignore case when checking for the file.
|
|
61
|
+
*
|
|
62
|
+
* Please note that this method checks the file system based on the configuration (see {@link FlowrConfigOptions.project.resolveUnknownPathsOnDisk}).
|
|
63
|
+
* @returns The actual path of the file if it exists, otherwise `undefined`.
|
|
64
|
+
*/
|
|
65
|
+
exists(path: string, ignoreCase: boolean): string | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Until parsers support multiple request types from the virtual context system,
|
|
68
|
+
* we resolve their contents.
|
|
69
|
+
*/
|
|
70
|
+
resolveRequest(r: RParseRequest): {
|
|
71
|
+
r: RParseRequestFromText;
|
|
72
|
+
path?: string;
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Get all files that have been considered during dataflow analysis.
|
|
76
|
+
*/
|
|
77
|
+
consideredFilesList(): readonly string[];
|
|
49
78
|
}
|
|
50
79
|
/**
|
|
51
80
|
* This is the analyzer file context to be modified by all plugins that affect the files.
|
|
@@ -56,10 +85,21 @@ export declare class FlowrAnalyzerFilesContext extends AbstractFlowrAnalyzerCont
|
|
|
56
85
|
readonly name = "flowr-analyzer-files-context";
|
|
57
86
|
readonly loadingOrder: FlowrAnalyzerLoadingOrderContext;
|
|
58
87
|
private files;
|
|
88
|
+
private inlineFiles;
|
|
59
89
|
private readonly fileLoaders;
|
|
60
|
-
|
|
90
|
+
/** these are all the paths of files that have been considered by the dataflow graph (even if not added) */
|
|
91
|
+
private readonly consideredFiles;
|
|
92
|
+
private byRole;
|
|
61
93
|
constructor(loadingOrder: FlowrAnalyzerLoadingOrderContext, plugins: readonly FlowrAnalyzerProjectDiscoveryPlugin[], fileLoaders: readonly FlowrAnalyzerFilePlugin[]);
|
|
62
94
|
reset(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Record that a file has been considered during dataflow analysis.
|
|
97
|
+
*/
|
|
98
|
+
addConsideredFile(path: string): void;
|
|
99
|
+
/**
|
|
100
|
+
* Get all files that have been considered during dataflow analysis.
|
|
101
|
+
*/
|
|
102
|
+
consideredFilesList(): readonly string[];
|
|
63
103
|
/**
|
|
64
104
|
* Add multiple requests to the context. This is just a convenience method that calls {@link addRequest} for each request.
|
|
65
105
|
*/
|
|
@@ -67,21 +107,29 @@ export declare class FlowrAnalyzerFilesContext extends AbstractFlowrAnalyzerCont
|
|
|
67
107
|
/**
|
|
68
108
|
* Add a request to the context. If the request is of type `project`, it will be expanded using the registered {@link FlowrAnalyzerProjectDiscoveryPlugin}s.
|
|
69
109
|
*/
|
|
70
|
-
addRequest
|
|
110
|
+
private addRequest;
|
|
71
111
|
/**
|
|
72
112
|
* Add multiple files to the context. This is just a convenience method that calls {@link addFile} for each file.
|
|
73
113
|
*/
|
|
74
|
-
addFiles(
|
|
114
|
+
addFiles(files: (string | FlowrFileProvider | RParseRequestFromFile)[]): void;
|
|
75
115
|
/**
|
|
76
116
|
* Add a file to the context. If the file has a special role, it will be added to the corresponding list of special files.
|
|
77
117
|
* This method also applies any registered {@link FlowrAnalyzerFilePlugin}s to the file before adding it to the context.
|
|
78
118
|
*/
|
|
79
|
-
addFile(file: string | FlowrFileProvider
|
|
119
|
+
addFile(file: string | FlowrFileProvider | RParseRequestFromFile, role?: FileRole): FlowrFileProvider<{
|
|
120
|
+
toString(): string;
|
|
121
|
+
}>;
|
|
122
|
+
hasFile(path: string): boolean;
|
|
123
|
+
exists(p: string, ignoreCase: boolean): string | undefined;
|
|
80
124
|
private fileLoadPlugins;
|
|
125
|
+
resolveRequest(r: RParseRequest): {
|
|
126
|
+
r: RParseRequestFromText;
|
|
127
|
+
path?: string;
|
|
128
|
+
};
|
|
81
129
|
/**
|
|
82
130
|
* Get all requests that have been added to this context.
|
|
83
131
|
* This is a convenience method that calls {@link FlowrAnalyzerLoadingOrderContext.getLoadingOrder}.
|
|
84
132
|
*/
|
|
85
133
|
computeLoadingOrder(): readonly RParseRequest[];
|
|
86
|
-
getFilesByRole<Role extends
|
|
134
|
+
getFilesByRole<Role extends FileRole>(role: Role): RoleBasedFiles[Role];
|
|
87
135
|
}
|