@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
|
@@ -2,26 +2,26 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FlowrAnalyzerBuilder = void 0;
|
|
4
4
|
const config_1 = require("../config");
|
|
5
|
-
const retriever_1 = require("../r-bridge/retriever");
|
|
6
5
|
const flowr_analyzer_1 = require("./flowr-analyzer");
|
|
7
6
|
const engines_1 = require("../engines");
|
|
8
7
|
const assert_1 = require("../util/assert");
|
|
9
|
-
const files_1 = require("../util/files");
|
|
10
8
|
const flowr_analyzer_context_1 = require("./context/flowr-analyzer-context");
|
|
11
9
|
const flowr_analyzer_cache_1 = require("./cache/flowr-analyzer-cache");
|
|
10
|
+
const flowr_analyzer_plugin_defaults_1 = require("./plugins/flowr-analyzer-plugin-defaults");
|
|
11
|
+
const plugin_registry_1 = require("./plugins/plugin-registry");
|
|
12
12
|
/**
|
|
13
13
|
* Builder for the {@link FlowrAnalyzer}, use it to configure all analysis aspects before creating the analyzer instance
|
|
14
14
|
* with {@link FlowrAnalyzerBuilder#build|`.build()`} or {@link FlowrAnalyzerBuilder#buildSync|`.buildSync()`}.
|
|
15
15
|
*
|
|
16
|
-
* You can add new files and folders to analyze using the
|
|
17
|
-
*
|
|
16
|
+
* You can add new files and folders to analyze using the {@link FlowrAnalyzer#addRequest|`.addRequest()`} method on the resulting analyzer.
|
|
18
17
|
* @example Let's create an analyzer for a single R script file:
|
|
19
18
|
*
|
|
20
19
|
* ```ts
|
|
21
20
|
* const analyzer = new FlowrAnalyzerBuilder()
|
|
22
|
-
* .add('file:///path/to/script.R')
|
|
23
21
|
* .setParser(new TreeSitterExecutor())
|
|
24
|
-
* .buildSync()
|
|
22
|
+
* .buildSync()
|
|
23
|
+
* .addRequest('file:///path/to/script.R')
|
|
24
|
+
*
|
|
25
25
|
* ```
|
|
26
26
|
*
|
|
27
27
|
* If you now want to get the dataflow information for the file, you can do this:
|
|
@@ -30,63 +30,25 @@ const flowr_analyzer_cache_1 = require("./cache/flowr-analyzer-cache");
|
|
|
30
30
|
* const dfInfo = await analyzer.dataflow();
|
|
31
31
|
* console.log(dfInfo);
|
|
32
32
|
* ```
|
|
33
|
+
* @see https://github.com/flowr-analysis/flowr/wiki/Analyzer
|
|
33
34
|
*/
|
|
34
35
|
class FlowrAnalyzerBuilder {
|
|
35
36
|
flowrConfig = (0, config_1.cloneConfig)(config_1.defaultConfigOptions);
|
|
36
37
|
parser;
|
|
37
|
-
request;
|
|
38
38
|
input;
|
|
39
39
|
plugins = new Map();
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Add one or multiple requests to analyze.
|
|
49
|
-
* This is a convenience method that uses {@link addRequest} and {@link addRequestFromInput} internally.
|
|
50
|
-
* @param request - One or multiple requests or a file path (with the `file://` protocol). If you just enter a string, it will be interpreted as R code.
|
|
51
|
-
*/
|
|
52
|
-
add(request) {
|
|
53
|
-
if (Array.isArray(request) || (0, retriever_1.isParseRequest)(request)) {
|
|
54
|
-
this.addRequest(request);
|
|
55
|
-
}
|
|
56
|
-
else if (typeof request === 'string') {
|
|
57
|
-
const trimmed = request.substring(retriever_1.fileProtocol.length);
|
|
58
|
-
if (request.startsWith(retriever_1.fileProtocol) && !(0, files_1.isFilePath)(trimmed)) {
|
|
59
|
-
this.addRequest({ request: 'project', content: trimmed });
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
this.addRequestFromInput(request);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
this.addRequest(request);
|
|
67
|
-
}
|
|
68
|
-
return this;
|
|
69
|
-
}
|
|
70
|
-
/**
|
|
71
|
-
* Add one or multiple requests to analyze the builder.
|
|
41
|
+
* Creates a new builder for the {@link FlowrAnalyzer}.
|
|
42
|
+
* By default, the standard set of plugins as returned by {@link FlowrAnalyzerPluginDefaults} are registered.
|
|
43
|
+
* @param withDefaultPlugins - Whether to register the default plugins upon creation. Default is `true`.
|
|
44
|
+
* @see {@link FlowrAnalyzerPluginDefaults} - for the default plugin set.
|
|
45
|
+
* @see {@link FlowrAnalyzerBuilder#registerPlugins} - to add more plugins.
|
|
46
|
+
* @see {@link FlowrAnalyzerBuilder#unregisterPlugins} - to remove plugins.
|
|
72
47
|
*/
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
this.request = this.request.concat(request);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
this.request = r;
|
|
48
|
+
constructor(withDefaultPlugins = true) {
|
|
49
|
+
if (withDefaultPlugins) {
|
|
50
|
+
this.registerPlugins(...(0, flowr_analyzer_plugin_defaults_1.FlowrAnalyzerPluginDefaults)());
|
|
80
51
|
}
|
|
81
|
-
return this;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Add a request created from the given input.
|
|
85
|
-
* This is a convenience method that uses {@link requestFromInput} internally.
|
|
86
|
-
*/
|
|
87
|
-
addRequestFromInput(input) {
|
|
88
|
-
this.addRequest((0, retriever_1.requestFromInput)(input));
|
|
89
|
-
return this;
|
|
90
52
|
}
|
|
91
53
|
/**
|
|
92
54
|
* Apply an amendment to the configuration the builder currently holds.
|
|
@@ -133,29 +95,29 @@ class FlowrAnalyzerBuilder {
|
|
|
133
95
|
}
|
|
134
96
|
/**
|
|
135
97
|
* Register one or multiple additional plugins.
|
|
136
|
-
*
|
|
98
|
+
* For the default plugin set, please refer to {@link FlowrAnalyzerPluginDefaults}, they can be registered
|
|
99
|
+
* by passing `true` to the {@link FlowrAnalyzerBuilder} constructor.
|
|
100
|
+
* @param plugin - One or multiple plugins to register.
|
|
137
101
|
* @see {@link FlowrAnalyzerBuilder#unregisterPlugins} to remove plugins.
|
|
138
102
|
*/
|
|
139
103
|
registerPlugins(...plugin) {
|
|
140
104
|
for (const p of plugin) {
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
else {
|
|
146
|
-
g.push(p);
|
|
147
|
-
}
|
|
105
|
+
const s = (0, plugin_registry_1.makePlugin)(p);
|
|
106
|
+
const g = this.plugins.get(s.type) ?? [];
|
|
107
|
+
g.push(s);
|
|
108
|
+
this.plugins.set(s.type, g);
|
|
148
109
|
}
|
|
149
110
|
return this;
|
|
150
111
|
}
|
|
151
112
|
/**
|
|
152
113
|
* Remove one or multiple plugins.
|
|
114
|
+
* @see {@link FlowrAnalyzerBuilder#registerPlugins} to add plugins.
|
|
153
115
|
*/
|
|
154
116
|
unregisterPlugins(...plugin) {
|
|
155
117
|
for (const p of plugin) {
|
|
156
|
-
const
|
|
157
|
-
|
|
158
|
-
this.plugins.set(
|
|
118
|
+
const name = typeof p === 'string' ? p : p.name;
|
|
119
|
+
for (const [type, plugins] of this.plugins) {
|
|
120
|
+
this.plugins.set(type, plugins.filter((pl) => pl.name !== name));
|
|
159
121
|
}
|
|
160
122
|
}
|
|
161
123
|
return this;
|
|
@@ -164,7 +126,8 @@ class FlowrAnalyzerBuilder {
|
|
|
164
126
|
* Create the {@link FlowrAnalyzer} instance using the given information.
|
|
165
127
|
* Please note that the only reason this is `async` is that if no parser is set,
|
|
166
128
|
* we need to retrieve the default engine instance which is an async operation.
|
|
167
|
-
* If you
|
|
129
|
+
* If you have already initialized the engine (e.g., with {@link TreeSitterExecutor#initTreeSitter}),
|
|
130
|
+
* you can use the synchronous version {@link FlowrAnalyzerBuilder#buildSync} instead.
|
|
168
131
|
*/
|
|
169
132
|
async build() {
|
|
170
133
|
if (!this.parser) {
|
|
@@ -179,18 +142,16 @@ class FlowrAnalyzerBuilder {
|
|
|
179
142
|
*/
|
|
180
143
|
buildSync() {
|
|
181
144
|
(0, assert_1.guard)(this.parser !== undefined, 'No parser set, please use the setParser or setEngine method to set a parser before building the analyzer');
|
|
182
|
-
|
|
183
|
-
const context = new flowr_analyzer_context_1.FlowrAnalyzerContext(this.plugins);
|
|
184
|
-
context.addRequests(this.request);
|
|
185
|
-
// we do it here to save time later if the analyzer is to be duplicated
|
|
186
|
-
context.resolvePreAnalysis();
|
|
145
|
+
const context = new flowr_analyzer_context_1.FlowrAnalyzerContext(this.flowrConfig, this.plugins);
|
|
187
146
|
const cache = flowr_analyzer_cache_1.FlowrAnalyzerCache.create({
|
|
188
147
|
parser: this.parser,
|
|
189
|
-
|
|
190
|
-
request: context.files.computeLoadingOrder(),
|
|
148
|
+
context,
|
|
191
149
|
...(this.input ?? {})
|
|
192
150
|
});
|
|
193
|
-
|
|
151
|
+
const analyzer = new flowr_analyzer_1.FlowrAnalyzer(this.parser, context, cache);
|
|
152
|
+
// we do it here to save time later if the analyzer is to be duplicated
|
|
153
|
+
context.resolvePreAnalysis();
|
|
154
|
+
return analyzer;
|
|
194
155
|
}
|
|
195
156
|
}
|
|
196
157
|
exports.FlowrAnalyzerBuilder = FlowrAnalyzerBuilder;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { FlowrConfigOptions } from '../config';
|
|
2
|
-
import type { KnownParser,
|
|
3
|
-
import type
|
|
2
|
+
import type { KnownParser, KnownParserInformation } from '../r-bridge/parser';
|
|
3
|
+
import { type Queries, type QueryResults, type SupportedQueryTypes } from '../queries/query';
|
|
4
4
|
import type { ControlFlowInformation } from '../control-flow/control-flow-graph';
|
|
5
5
|
import type { NormalizedAst } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
6
6
|
import type { DataflowInformation } from '../dataflow/info';
|
|
@@ -8,31 +8,51 @@ import type { CfgSimplificationPassName } from '../control-flow/cfg-simplificati
|
|
|
8
8
|
import type { PipelinePerStepMetaInformation } from '../core/steps/pipeline/pipeline';
|
|
9
9
|
import type { AnalyzerCacheType, FlowrAnalyzerCache } from './cache/flowr-analyzer-cache';
|
|
10
10
|
import type { FlowrSearchLike, SearchOutput } from '../search/flowr-search-builder';
|
|
11
|
-
import type
|
|
11
|
+
import { type GetSearchElements } from '../search/flowr-search-executor';
|
|
12
12
|
import type { FlowrAnalyzerContext, ReadOnlyFlowrAnalyzerContext } from './context/flowr-analyzer-context';
|
|
13
13
|
import { CfgKind } from './cfg-kind';
|
|
14
|
-
import type {
|
|
14
|
+
import type { RAnalysisRequest } from './context/flowr-analyzer-files-context';
|
|
15
|
+
import type { RParseRequestFromFile } from '../r-bridge/retriever';
|
|
16
|
+
import { fileProtocol } from '../r-bridge/retriever';
|
|
17
|
+
import type { FlowrFileProvider } from './context/flowr-file';
|
|
15
18
|
/**
|
|
16
|
-
*
|
|
17
|
-
* This allows us to exchange the underlying implementation of the analyzer without affecting the APIs.
|
|
19
|
+
* Extends the {@link ReadonlyFlowrAnalysisProvider} with methods that allow modifying the analyzer state.
|
|
18
20
|
*/
|
|
19
|
-
export interface FlowrAnalysisProvider {
|
|
20
|
-
/**
|
|
21
|
-
* Get the name of the parser used by the analyzer.
|
|
22
|
-
*/
|
|
23
|
-
parserInformation(): Promise<TreeSitterInformation | RShellInformation>;
|
|
24
|
-
/**
|
|
25
|
-
* Sends a command to the underlying R engine and collects the output.
|
|
26
|
-
* @param command - The command to send to the R engine.
|
|
27
|
-
* @param addonConfig - Additional configuration for the output collector.
|
|
28
|
-
*/
|
|
29
|
-
sendCommandWithOutput(command: string, addonConfig?: Partial<OutputCollectorConfiguration>): Promise<string[]>;
|
|
21
|
+
export interface FlowrAnalysisProvider<Parser extends KnownParser = KnownParser> extends ReadonlyFlowrAnalysisProvider<Parser> {
|
|
30
22
|
/**
|
|
31
23
|
* Returns project context information.
|
|
32
24
|
* If you are a user that wants to inspect the context, prefer {@link inspectContext} instead.
|
|
33
25
|
* Please be aware that modifications to the context may break analyzer assumptions.
|
|
34
26
|
*/
|
|
35
27
|
context(): FlowrAnalyzerContext;
|
|
28
|
+
/**
|
|
29
|
+
* Add one or multiple requests to analyze.
|
|
30
|
+
* @param request - One or multiple requests or a file path (with the `file://` protocol). If you just enter a string without the {@link fileProtocol}, it will be interpreted as R code.
|
|
31
|
+
* @see {@link FlowrAnalysisProvider.addFile|addFile} - for adding files to the analyzer's context.
|
|
32
|
+
*/
|
|
33
|
+
addRequest(...request: (RAnalysisRequest | `${typeof fileProtocol}${string}` | string)[]): void;
|
|
34
|
+
/**
|
|
35
|
+
* Add one or multiple files to the analyzer's context.
|
|
36
|
+
* @param f - One or multiple file paths, file providers, or parse requests from file.
|
|
37
|
+
* @see {@link FlowrFileProvider} - for creating custom file providers.
|
|
38
|
+
* @see {@link FlowrAnalysisProvider.addRequest|addRequest} - for adding analysis requests to the analyzer.
|
|
39
|
+
*/
|
|
40
|
+
addFile(...f: (string | FlowrFileProvider<string> | RParseRequestFromFile)[]): void;
|
|
41
|
+
/**
|
|
42
|
+
* Reset the analyzer state, including the context and the cache.
|
|
43
|
+
*/
|
|
44
|
+
reset(): void;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Exposes the central analyses and information provided by the {@link FlowrAnalyzer} to the linter, search, and query APIs.
|
|
48
|
+
* This allows us to exchange the underlying implementation of the analyzer without affecting the APIs.
|
|
49
|
+
*/
|
|
50
|
+
export interface ReadonlyFlowrAnalysisProvider<Parser extends KnownParser = KnownParser> {
|
|
51
|
+
/**
|
|
52
|
+
* Returns a set of additional data and helper functions exposed by the underlying {@link KnownParser},
|
|
53
|
+
* including the parser's {@link BaseParserInformation.name} and corresponding version information.
|
|
54
|
+
*/
|
|
55
|
+
parserInformation(): KnownParserInformation;
|
|
36
56
|
/**
|
|
37
57
|
* Returns a read-only version of the project context information.
|
|
38
58
|
* This is the preferred method for users that want to inspect the context.
|
|
@@ -43,25 +63,45 @@ export interface FlowrAnalysisProvider {
|
|
|
43
63
|
*
|
|
44
64
|
* The parse result type depends on the {@link KnownParser} used by the analyzer.
|
|
45
65
|
* @param force - Do not use the cache, instead force a new parse.
|
|
66
|
+
* @see {@link ReadonlyFlowrAnalysisProvider#peekParse} - to get the parse output if already available without triggering a new computation.
|
|
46
67
|
*/
|
|
47
|
-
parse(force?: boolean): Promise<
|
|
68
|
+
parse(force?: boolean): Promise<NonNullable<AnalyzerCacheType<Parser>['parse']>>;
|
|
69
|
+
/**
|
|
70
|
+
* Peek at the parse output for the request, if it was already computed.
|
|
71
|
+
*/
|
|
72
|
+
peekParse(): NonNullable<AnalyzerCacheType<Parser>['parse']> | undefined;
|
|
48
73
|
/**
|
|
49
74
|
* Get the normalized abstract syntax tree for the request.
|
|
50
75
|
* @param force - Do not use the cache, instead force new analyses.
|
|
76
|
+
* @see {@link ReadonlyFlowrAnalysisProvider#peekNormalize} - to get the normalized AST if already available without triggering a new computation.
|
|
51
77
|
*/
|
|
52
78
|
normalize(force?: boolean): Promise<NormalizedAst & PipelinePerStepMetaInformation>;
|
|
79
|
+
/**
|
|
80
|
+
* Peek at the normalized abstract syntax tree for the request, if it was already computed.
|
|
81
|
+
*/
|
|
82
|
+
peekNormalize(): NormalizedAst & PipelinePerStepMetaInformation | undefined;
|
|
53
83
|
/**
|
|
54
84
|
* Get the dataflow graph for the request.
|
|
55
85
|
* @param force - Do not use the cache, instead force new analyses.
|
|
86
|
+
* @see {@link ReadonlyFlowrAnalysisProvider#peekDataflow} - to get the dataflow graph if already available without triggering a new computation.
|
|
56
87
|
*/
|
|
57
88
|
dataflow(force?: boolean): Promise<DataflowInformation & PipelinePerStepMetaInformation>;
|
|
89
|
+
/**
|
|
90
|
+
* Peek at the dataflow graph for the request, if it was already computed.
|
|
91
|
+
*/
|
|
92
|
+
peekDataflow(): DataflowInformation & PipelinePerStepMetaInformation | undefined;
|
|
58
93
|
/**
|
|
59
94
|
* Get the control flow graph (CFG) for the request.
|
|
60
95
|
* @param simplifications - Simplification passes to be applied to the CFG.
|
|
61
96
|
* @param kind - The kind of CFG that is requested. By default, the CFG without dataflow information is returned.
|
|
62
97
|
* @param force - Do not use the cache, instead force new analyses.
|
|
98
|
+
* @see {@link ReadonlyFlowrAnalysisProvider#peekControlflow} - to get the CFG if already available without triggering a new computation.
|
|
63
99
|
*/
|
|
64
100
|
controlflow(simplifications?: readonly CfgSimplificationPassName[], kind?: CfgKind, force?: boolean): Promise<ControlFlowInformation>;
|
|
101
|
+
/**
|
|
102
|
+
* Peek at the control flow graph (CFG) for the request, if it was already computed.
|
|
103
|
+
*/
|
|
104
|
+
peekControlflow(simplifications?: readonly CfgSimplificationPassName[], kind?: CfgKind): ControlFlowInformation | undefined;
|
|
65
105
|
/**
|
|
66
106
|
* Access the query API for the request.
|
|
67
107
|
* @param query - The list of queries.
|
|
@@ -75,10 +115,6 @@ export interface FlowrAnalysisProvider {
|
|
|
75
115
|
* This executes all steps of the core analysis (parse, normalize, dataflow).
|
|
76
116
|
*/
|
|
77
117
|
runFull(force?: boolean): Promise<void>;
|
|
78
|
-
/**
|
|
79
|
-
* Reset all caches used by the analyzer and effectively force all analyses to be redone.
|
|
80
|
-
*/
|
|
81
|
-
reset(): void;
|
|
82
118
|
/** This is the config used for the analyzer */
|
|
83
119
|
flowrConfig: FlowrConfigOptions;
|
|
84
120
|
}
|
|
@@ -89,34 +125,48 @@ export interface FlowrAnalysisProvider {
|
|
|
89
125
|
* If you want the original pattern of creating a pipeline and running all steps, you can still do this with {@link FlowrAnalyzer#runFull}.
|
|
90
126
|
*
|
|
91
127
|
* To inspect the context of the analyzer, use {@link FlowrAnalyzer#inspectContext} (if you are a plugin and need to modify it, use {@link FlowrAnalyzer#context} instead).
|
|
128
|
+
* @see https://github.com/flowr-analysis/flowr/wiki/Analyzer
|
|
92
129
|
*/
|
|
93
|
-
export declare class FlowrAnalyzer<Parser extends KnownParser = KnownParser> implements
|
|
94
|
-
readonly flowrConfig: FlowrConfigOptions;
|
|
130
|
+
export declare class FlowrAnalyzer<Parser extends KnownParser = KnownParser> implements ReadonlyFlowrAnalysisProvider<Parser> {
|
|
95
131
|
/** The parser and engine backend */
|
|
96
132
|
private readonly parser;
|
|
97
133
|
/** The cache used for storing analysis results */
|
|
98
134
|
private readonly cache;
|
|
99
135
|
private readonly ctx;
|
|
136
|
+
private parserInfo;
|
|
100
137
|
/**
|
|
101
138
|
* Create a new analyzer instance.
|
|
102
139
|
* **Prefer the use of the {@link FlowrAnalyzerBuilder} instead of calling this constructor directly.**
|
|
103
|
-
*
|
|
104
|
-
* @param config - The FlowR config to use for the analyses
|
|
105
140
|
* @param parser - The parser to use for parsing the given request.
|
|
106
141
|
* @param ctx - The context to use for the analyses.
|
|
107
142
|
* @param cache - The caching layer to use for storing analysis results.
|
|
108
143
|
*/
|
|
109
|
-
constructor(
|
|
144
|
+
constructor(parser: Parser, ctx: FlowrAnalyzerContext, cache: FlowrAnalyzerCache<Parser>);
|
|
145
|
+
get flowrConfig(): FlowrConfigOptions;
|
|
110
146
|
context(): FlowrAnalyzerContext;
|
|
111
|
-
parserInformation():
|
|
112
|
-
sendCommandWithOutput(command: string, addonConfig?: Partial<OutputCollectorConfiguration>): Promise<string[]>;
|
|
147
|
+
parserInformation(): KnownParserInformation;
|
|
113
148
|
inspectContext(): ReadOnlyFlowrAnalyzerContext;
|
|
114
149
|
reset(): void;
|
|
150
|
+
addRequest(...request: (RAnalysisRequest | readonly RAnalysisRequest[] | `${typeof fileProtocol}${string}` | string)[]): this;
|
|
151
|
+
addFile(...f: (string | FlowrFileProvider | RParseRequestFromFile)[]): this;
|
|
152
|
+
/**
|
|
153
|
+
* Add a request created from the given input.
|
|
154
|
+
* This is a convenience method that uses {@link requestFromInput} internally.
|
|
155
|
+
*/
|
|
156
|
+
private addRequestFromInput;
|
|
157
|
+
/**
|
|
158
|
+
* Add one or multiple requests to analyze the builder.
|
|
159
|
+
*/
|
|
160
|
+
private addAnalysisRequest;
|
|
115
161
|
parse(force?: boolean): Promise<NonNullable<AnalyzerCacheType<Parser>['parse']>>;
|
|
162
|
+
peekParse(): NonNullable<AnalyzerCacheType<Parser>['parse']> | undefined;
|
|
116
163
|
normalize(force?: boolean): Promise<NonNullable<AnalyzerCacheType<Parser>['normalize']>>;
|
|
164
|
+
peekNormalize(): NonNullable<AnalyzerCacheType<Parser>['normalize']> | undefined;
|
|
117
165
|
dataflow(force?: boolean): Promise<NonNullable<AnalyzerCacheType<Parser>['dataflow']>>;
|
|
166
|
+
peekDataflow(): NonNullable<AnalyzerCacheType<Parser>['dataflow']> | undefined;
|
|
118
167
|
runFull(force?: boolean): Promise<void>;
|
|
119
168
|
controlflow(simplifications?: readonly CfgSimplificationPassName[], kind?: CfgKind, force?: boolean): Promise<ControlFlowInformation>;
|
|
169
|
+
peekControlflow(simplifications?: readonly CfgSimplificationPassName[], kind?: CfgKind): ControlFlowInformation | undefined;
|
|
120
170
|
query<Types extends SupportedQueryTypes = SupportedQueryTypes>(query: Queries<Types>): Promise<QueryResults<Types>>;
|
|
121
171
|
runSearch<Search extends FlowrSearchLike>(search: Search): Promise<GetSearchElements<SearchOutput<Search>>>;
|
|
122
172
|
/**
|
|
@@ -4,8 +4,8 @@ exports.FlowrAnalyzer = void 0;
|
|
|
4
4
|
const query_1 = require("../queries/query");
|
|
5
5
|
const flowr_search_executor_1 = require("../search/flowr-search-executor");
|
|
6
6
|
const cfg_kind_1 = require("./cfg-kind");
|
|
7
|
-
const
|
|
8
|
-
const
|
|
7
|
+
const retriever_1 = require("../r-bridge/retriever");
|
|
8
|
+
const files_1 = require("../util/files");
|
|
9
9
|
/**
|
|
10
10
|
* Central class for conducting analyses with FlowR.
|
|
11
11
|
* Use the {@link FlowrAnalyzerBuilder} to create a new instance.
|
|
@@ -13,40 +13,36 @@ const assert_1 = require("../util/assert");
|
|
|
13
13
|
* If you want the original pattern of creating a pipeline and running all steps, you can still do this with {@link FlowrAnalyzer#runFull}.
|
|
14
14
|
*
|
|
15
15
|
* To inspect the context of the analyzer, use {@link FlowrAnalyzer#inspectContext} (if you are a plugin and need to modify it, use {@link FlowrAnalyzer#context} instead).
|
|
16
|
+
* @see https://github.com/flowr-analysis/flowr/wiki/Analyzer
|
|
16
17
|
*/
|
|
17
18
|
class FlowrAnalyzer {
|
|
18
|
-
flowrConfig;
|
|
19
19
|
/** The parser and engine backend */
|
|
20
20
|
parser;
|
|
21
21
|
/** The cache used for storing analysis results */
|
|
22
22
|
cache;
|
|
23
23
|
ctx;
|
|
24
|
+
parserInfo;
|
|
24
25
|
/**
|
|
25
26
|
* Create a new analyzer instance.
|
|
26
27
|
* **Prefer the use of the {@link FlowrAnalyzerBuilder} instead of calling this constructor directly.**
|
|
27
|
-
*
|
|
28
|
-
* @param config - The FlowR config to use for the analyses
|
|
29
28
|
* @param parser - The parser to use for parsing the given request.
|
|
30
29
|
* @param ctx - The context to use for the analyses.
|
|
31
30
|
* @param cache - The caching layer to use for storing analysis results.
|
|
32
31
|
*/
|
|
33
|
-
constructor(
|
|
34
|
-
this.flowrConfig = config;
|
|
32
|
+
constructor(parser, ctx, cache) {
|
|
35
33
|
this.parser = parser;
|
|
36
34
|
this.ctx = ctx;
|
|
37
35
|
this.cache = cache;
|
|
38
36
|
}
|
|
37
|
+
get flowrConfig() {
|
|
38
|
+
return this.ctx.config;
|
|
39
|
+
}
|
|
39
40
|
context() {
|
|
40
41
|
return this.ctx;
|
|
41
42
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
: { name: 'tree-sitter' };
|
|
46
|
-
}
|
|
47
|
-
async sendCommandWithOutput(command, addonConfig) {
|
|
48
|
-
(0, assert_1.guard)(this.parser instanceof shell_1.RShell, 'sendCommandWithOutput can only be used with RShell parsers!');
|
|
49
|
-
return this.parser.sendCommandWithOutput(command, addonConfig);
|
|
43
|
+
parserInformation() {
|
|
44
|
+
this.parserInfo ??= this.parser.information(this);
|
|
45
|
+
return this.parserInfo;
|
|
50
46
|
}
|
|
51
47
|
inspectContext() {
|
|
52
48
|
return this.ctx.inspect();
|
|
@@ -55,15 +51,60 @@ class FlowrAnalyzer {
|
|
|
55
51
|
this.ctx.reset();
|
|
56
52
|
this.cache.reset();
|
|
57
53
|
}
|
|
54
|
+
addRequest(...request) {
|
|
55
|
+
for (const r of request) {
|
|
56
|
+
if (typeof r === 'string') {
|
|
57
|
+
const trimmed = r.substring(retriever_1.fileProtocol.length);
|
|
58
|
+
if (r.startsWith(retriever_1.fileProtocol) && !(0, files_1.isFilePath)(trimmed)) {
|
|
59
|
+
this.addAnalysisRequest({ request: 'project', content: trimmed });
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this.addRequestFromInput(r);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
this.addAnalysisRequest(r);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
71
|
+
addFile(...f) {
|
|
72
|
+
this.ctx.addFiles(f);
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Add a request created from the given input.
|
|
77
|
+
* This is a convenience method that uses {@link requestFromInput} internally.
|
|
78
|
+
*/
|
|
79
|
+
addRequestFromInput(input) {
|
|
80
|
+
this.addAnalysisRequest((0, retriever_1.requestFromInput)(input));
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Add one or multiple requests to analyze the builder.
|
|
85
|
+
*/
|
|
86
|
+
addAnalysisRequest(request) {
|
|
87
|
+
this.ctx.addRequests((Array.isArray(request) ? request : [request]));
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
58
90
|
async parse(force) {
|
|
59
91
|
return this.cache.parse(force);
|
|
60
92
|
}
|
|
93
|
+
peekParse() {
|
|
94
|
+
return this.cache.peekParse();
|
|
95
|
+
}
|
|
61
96
|
async normalize(force) {
|
|
62
97
|
return this.cache.normalize(force);
|
|
63
98
|
}
|
|
99
|
+
peekNormalize() {
|
|
100
|
+
return this.cache.peekNormalize();
|
|
101
|
+
}
|
|
64
102
|
async dataflow(force) {
|
|
65
103
|
return this.cache.dataflow(force);
|
|
66
104
|
}
|
|
105
|
+
peekDataflow() {
|
|
106
|
+
return this.cache.peekDataflow();
|
|
107
|
+
}
|
|
67
108
|
async runFull(force) {
|
|
68
109
|
await this.dataflow(force);
|
|
69
110
|
return;
|
|
@@ -71,6 +112,9 @@ class FlowrAnalyzer {
|
|
|
71
112
|
async controlflow(simplifications, kind, force) {
|
|
72
113
|
return this.cache.controlflow(force, kind ?? cfg_kind_1.CfgKind.NoDataflow, simplifications);
|
|
73
114
|
}
|
|
115
|
+
peekControlflow(simplifications, kind) {
|
|
116
|
+
return this.cache.peekControlflow(kind ?? cfg_kind_1.CfgKind.NoDataflow, simplifications);
|
|
117
|
+
}
|
|
74
118
|
async query(query) {
|
|
75
119
|
return (0, query_1.executeQueries)({ analyzer: this }, query);
|
|
76
120
|
}
|
|
@@ -3,7 +3,7 @@ import { SemVer } from 'semver';
|
|
|
3
3
|
import type { PathLike } from 'fs';
|
|
4
4
|
import type { FlowrAnalyzerContext } from '../../context/flowr-analyzer-context';
|
|
5
5
|
import { FlowrDescriptionFile } from './flowr-description-file';
|
|
6
|
-
import type
|
|
6
|
+
import { type FlowrFileProvider } from '../../context/flowr-file';
|
|
7
7
|
export declare const descriptionFileLog: import("tslog").Logger<import("tslog").ILogObj>;
|
|
8
8
|
/**
|
|
9
9
|
* This plugin provides support for R `DESCRIPTION` files.
|
|
@@ -12,6 +12,12 @@ export declare class FlowrAnalyzerDescriptionFilePlugin extends FlowrAnalyzerFil
|
|
|
12
12
|
readonly name = "flowr-analyzer-description-file-plugin";
|
|
13
13
|
readonly description = "This plugin provides support for DESCRIPTION files and extracts their content into key-value(s) pairs.";
|
|
14
14
|
readonly version: SemVer;
|
|
15
|
+
private readonly pattern;
|
|
16
|
+
/**
|
|
17
|
+
* Creates a new instance of the DESCRIPTION file plugin.
|
|
18
|
+
* @param filePattern - The pattern to identify DESCRIPTION files, see {@link DescriptionFilePattern} for the default pattern.
|
|
19
|
+
*/
|
|
20
|
+
constructor(filePattern?: RegExp);
|
|
15
21
|
applies(file: PathLike): boolean;
|
|
16
|
-
process(_ctx: FlowrAnalyzerContext, file: FlowrFileProvider
|
|
22
|
+
process(_ctx: FlowrAnalyzerContext, file: FlowrFileProvider): FlowrDescriptionFile;
|
|
17
23
|
}
|
|
@@ -6,7 +6,9 @@ const semver_1 = require("semver");
|
|
|
6
6
|
const log_1 = require("../../../util/log");
|
|
7
7
|
const flowr_description_file_1 = require("./flowr-description-file");
|
|
8
8
|
const flowr_file_1 = require("../../context/flowr-file");
|
|
9
|
+
const built_in_source_1 = require("../../../dataflow/internal/process/functions/call/built-in/built-in-source");
|
|
9
10
|
exports.descriptionFileLog = log_1.log.getSubLogger({ name: 'flowr-analyzer-loading-order-description-file-plugin' });
|
|
11
|
+
const DescriptionFilePattern = /^(DESCRIPTION|DESCRIPTION\.txt)$/i;
|
|
10
12
|
/**
|
|
11
13
|
* This plugin provides support for R `DESCRIPTION` files.
|
|
12
14
|
*/
|
|
@@ -14,14 +16,20 @@ class FlowrAnalyzerDescriptionFilePlugin extends flowr_analyzer_file_plugin_1.Fl
|
|
|
14
16
|
name = 'flowr-analyzer-description-file-plugin';
|
|
15
17
|
description = 'This plugin provides support for DESCRIPTION files and extracts their content into key-value(s) pairs.';
|
|
16
18
|
version = new semver_1.SemVer('0.1.0');
|
|
19
|
+
pattern;
|
|
20
|
+
/**
|
|
21
|
+
* Creates a new instance of the DESCRIPTION file plugin.
|
|
22
|
+
* @param filePattern - The pattern to identify DESCRIPTION files, see {@link DescriptionFilePattern} for the default pattern.
|
|
23
|
+
*/
|
|
24
|
+
constructor(filePattern = DescriptionFilePattern) {
|
|
25
|
+
super();
|
|
26
|
+
this.pattern = filePattern;
|
|
27
|
+
}
|
|
17
28
|
applies(file) {
|
|
18
|
-
return
|
|
29
|
+
return this.pattern.test((0, built_in_source_1.platformBasename)(file.toString()));
|
|
19
30
|
}
|
|
20
31
|
process(_ctx, file) {
|
|
21
|
-
|
|
22
|
-
// already load it here
|
|
23
|
-
f.content();
|
|
24
|
-
return f;
|
|
32
|
+
return flowr_description_file_1.FlowrDescriptionFile.from(file, flowr_file_1.FileRole.Description);
|
|
25
33
|
}
|
|
26
34
|
}
|
|
27
35
|
exports.FlowrAnalyzerDescriptionFilePlugin = FlowrAnalyzerDescriptionFilePlugin;
|
|
@@ -4,14 +4,14 @@ import type { FlowrFileProvider } from '../../context/flowr-file';
|
|
|
4
4
|
/**
|
|
5
5
|
* This is the base class for all plugins that load and possibly transform files when they are loaded.
|
|
6
6
|
* Different from other plugins, these plugins trigger for each file that is loaded (if they {@link applies} to the file).
|
|
7
|
-
* See the {@link
|
|
7
|
+
* See the {@link FlowrAnalyzer.addFile} for more information on how files are loaded and managed.
|
|
8
8
|
*
|
|
9
|
-
* It is
|
|
9
|
+
* It is up to the construction to ensure that no two file plugins {@link applies} to the same file, otherwise, the loading order
|
|
10
10
|
* of these plugins will determine which plugin gets to process the file.
|
|
11
11
|
*
|
|
12
12
|
* See {@link DefaultFlowrAnalyzerFilePlugin} for the no-op default implementation.
|
|
13
13
|
*/
|
|
14
|
-
export declare abstract class FlowrAnalyzerFilePlugin extends FlowrAnalyzerPlugin<FlowrFileProvider
|
|
14
|
+
export declare abstract class FlowrAnalyzerFilePlugin extends FlowrAnalyzerPlugin<FlowrFileProvider, FlowrFileProvider> {
|
|
15
15
|
readonly type = PluginType.FileLoad;
|
|
16
16
|
/**
|
|
17
17
|
* Determine whether this plugin applies to the given file.
|
|
@@ -2,13 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.FlowrAnalyzerFilePlugin = void 0;
|
|
4
4
|
const flowr_analyzer_plugin_1 = require("../flowr-analyzer-plugin");
|
|
5
|
+
const flowr_file_1 = require("../../context/flowr-file");
|
|
5
6
|
const semver_1 = require("semver");
|
|
6
7
|
/**
|
|
7
8
|
* This is the base class for all plugins that load and possibly transform files when they are loaded.
|
|
8
9
|
* Different from other plugins, these plugins trigger for each file that is loaded (if they {@link applies} to the file).
|
|
9
|
-
* See the {@link
|
|
10
|
+
* See the {@link FlowrAnalyzer.addFile} for more information on how files are loaded and managed.
|
|
10
11
|
*
|
|
11
|
-
* It is
|
|
12
|
+
* It is up to the construction to ensure that no two file plugins {@link applies} to the same file, otherwise, the loading order
|
|
12
13
|
* of these plugins will determine which plugin gets to process the file.
|
|
13
14
|
*
|
|
14
15
|
* See {@link DefaultFlowrAnalyzerFilePlugin} for the no-op default implementation.
|
|
@@ -22,13 +23,18 @@ class FlowrAnalyzerFilePlugin extends flowr_analyzer_plugin_1.FlowrAnalyzerPlugi
|
|
|
22
23
|
exports.FlowrAnalyzerFilePlugin = FlowrAnalyzerFilePlugin;
|
|
23
24
|
class DefaultFlowrAnalyzerFilePlugin extends FlowrAnalyzerFilePlugin {
|
|
24
25
|
name = 'default-file-plugin';
|
|
25
|
-
description = 'This is the default file plugin that does nothing.';
|
|
26
|
+
description = 'This is the default file plugin that does nothing (but assigning default .r/.R files).';
|
|
26
27
|
version = new semver_1.SemVer('0.0.0');
|
|
27
28
|
applies() {
|
|
28
29
|
return true;
|
|
29
30
|
}
|
|
30
|
-
process(
|
|
31
|
-
|
|
31
|
+
process(_ctx, arg) {
|
|
32
|
+
const path = arg.path().toString();
|
|
33
|
+
if (/\.r$/i.test(path)) {
|
|
34
|
+
// we just assign the role :D
|
|
35
|
+
arg.assignRole(flowr_file_1.FileRole.Source);
|
|
36
|
+
}
|
|
37
|
+
return arg;
|
|
32
38
|
}
|
|
33
39
|
}
|
|
34
40
|
//# sourceMappingURL=flowr-analyzer-file-plugin.js.map
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { FlowrFile } from '../../context/flowr-file';
|
|
1
|
+
import { type FlowrFileProvider, type FileRole, FlowrFile } from '../../context/flowr-file';
|
|
3
2
|
export type DCF = Map<string, string[]>;
|
|
4
3
|
/**
|
|
5
4
|
* This decorates a text file and provides access to its content as a DCF (Debian Control File)-like structure.
|
|
@@ -10,15 +9,14 @@ export declare class FlowrDescriptionFile extends FlowrFile<DCF> {
|
|
|
10
9
|
* Prefer the static {@link FlowrDescriptionFile.from} method to create instances of this class as it will not re-create if already a description file
|
|
11
10
|
* and handle role assignments.
|
|
12
11
|
*/
|
|
13
|
-
constructor(file: FlowrFileProvider
|
|
12
|
+
constructor(file: FlowrFileProvider);
|
|
14
13
|
/**
|
|
15
14
|
* Loads and parses the content of the wrapped file as a DCF structure.
|
|
16
|
-
*
|
|
17
15
|
* @see {@link parseDCF} for details on the parsing logic.
|
|
18
16
|
*/
|
|
19
17
|
protected loadContent(): DCF;
|
|
20
18
|
/**
|
|
21
19
|
* Description file lifter, this does not re-create if already a description file
|
|
22
20
|
*/
|
|
23
|
-
static from(file: FlowrFileProvider
|
|
21
|
+
static from(file: FlowrFileProvider | FlowrDescriptionFile, role?: FileRole): FlowrDescriptionFile;
|
|
24
22
|
}
|