@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
|
@@ -4,24 +4,44 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.DfShapeQueryDefinition = void 0;
|
|
7
|
+
const dataframe_domain_1 = require("../../../abstract-interpretation/data-frame/dataframe-domain");
|
|
7
8
|
const ansi_1 = require("../../../util/text/ansi");
|
|
8
9
|
const time_1 = require("../../../util/text/time");
|
|
9
|
-
const joi_1 = __importDefault(require("joi"));
|
|
10
10
|
const df_shape_query_executor_1 = require("./df-shape-query-executor");
|
|
11
|
-
const
|
|
11
|
+
const slice_query_parser_1 = require("../../../cli/repl/parser/slice-query-parser");
|
|
12
|
+
const joi_1 = __importDefault(require("joi"));
|
|
13
|
+
function dfShapeQueryLineParser(_output, line, _config) {
|
|
14
|
+
const criterion = (0, slice_query_parser_1.sliceCriterionParser)(line[0]);
|
|
15
|
+
return {
|
|
16
|
+
query: {
|
|
17
|
+
type: 'df-shape',
|
|
18
|
+
criterion: criterion
|
|
19
|
+
},
|
|
20
|
+
rCode: criterion ? line[1] : line[0]
|
|
21
|
+
};
|
|
22
|
+
}
|
|
12
23
|
exports.DfShapeQueryDefinition = {
|
|
13
24
|
executor: df_shape_query_executor_1.executeDfShapeQuery,
|
|
14
25
|
asciiSummarizer: (formatter, _analyzer, queryResults, result) => {
|
|
15
26
|
const out = queryResults;
|
|
27
|
+
const domains = out.domains instanceof dataframe_domain_1.DataFrameStateDomain ? out.domains.value : out.domains;
|
|
16
28
|
result.push(`Query: ${(0, ansi_1.bold)('df-shape', formatter)} (${(0, time_1.printAsMs)(out['.meta'].timing, 0)})`);
|
|
17
|
-
result.push(...
|
|
18
|
-
return ` ╰ ${key}: ${
|
|
29
|
+
result.push(...domains.entries().take(20).map(([key, domain]) => {
|
|
30
|
+
return ` ╰ ${key}: ${domain?.toString()}`;
|
|
19
31
|
}));
|
|
20
|
-
if (
|
|
32
|
+
if (domains.size > 20) {
|
|
21
33
|
result.push(' ╰ ... (see JSON)');
|
|
22
34
|
}
|
|
23
35
|
return true;
|
|
24
36
|
},
|
|
37
|
+
jsonFormatter: (queryResults) => {
|
|
38
|
+
const { domains, ...out } = queryResults;
|
|
39
|
+
const state = domains instanceof dataframe_domain_1.DataFrameStateDomain ? domains.value : domains;
|
|
40
|
+
const json = Object.fromEntries(state.entries().map(([key, domain]) => [key, domain?.toJson() ?? null]));
|
|
41
|
+
const result = { domains: json, ...out };
|
|
42
|
+
return result;
|
|
43
|
+
},
|
|
44
|
+
fromLine: dfShapeQueryLineParser,
|
|
25
45
|
schema: joi_1.default.object({
|
|
26
46
|
type: joi_1.default.string().valid('df-shape').required().description('The type of the query.'),
|
|
27
47
|
criterion: joi_1.default.string().optional().description('The slicing criterion of the node to get the dataframe shape for.')
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import type { BasicQueryData } from '../../base-query-format';
|
|
2
2
|
import type { HappensBeforeQuery, HappensBeforeQueryResult } from './happens-before-query-format';
|
|
3
|
+
/**
|
|
4
|
+
* Execute happens-before queries on the given analyzer.
|
|
5
|
+
* This checks, whether for two given slicing criteria `a` and `b`, `a` happens before `b` in the control flow graph.
|
|
6
|
+
*/
|
|
3
7
|
export declare function executeHappensBefore({ analyzer }: BasicQueryData, queries: readonly HappensBeforeQuery[]): Promise<HappensBeforeQueryResult>;
|
|
@@ -6,6 +6,10 @@ const log_1 = require("../../../util/log");
|
|
|
6
6
|
const extract_cfg_1 = require("../../../control-flow/extract-cfg");
|
|
7
7
|
const happens_before_1 = require("../../../control-flow/happens-before");
|
|
8
8
|
const parse_1 = require("../../../slicing/criterion/parse");
|
|
9
|
+
/**
|
|
10
|
+
* Execute happens-before queries on the given analyzer.
|
|
11
|
+
* This checks, whether for two given slicing criteria `a` and `b`, `a` happens before `b` in the control flow graph.
|
|
12
|
+
*/
|
|
9
13
|
async function executeHappensBefore({ analyzer }, queries) {
|
|
10
14
|
const start = Date.now();
|
|
11
15
|
const results = {};
|
|
@@ -13,7 +13,7 @@ export interface HappensBeforeQueryResult extends BaseQueryResult {
|
|
|
13
13
|
}
|
|
14
14
|
export declare const HappensBeforeQueryDefinition: {
|
|
15
15
|
readonly executor: typeof executeHappensBefore;
|
|
16
|
-
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").
|
|
16
|
+
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
|
|
17
17
|
readonly schema: Joi.ObjectSchema<any>;
|
|
18
18
|
readonly flattenInvolvedNodes: () => never[];
|
|
19
19
|
};
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { IdMapQuery, IdMapQueryResult } from './id-map-query-format';
|
|
2
2
|
import type { BasicQueryData } from '../../base-query-format';
|
|
3
|
+
/**
|
|
4
|
+
* Executes the given ID map queries using the provided analyzer.
|
|
5
|
+
*/
|
|
3
6
|
export declare function executeIdMapQuery({ analyzer }: BasicQueryData, queries: readonly IdMapQuery[]): Promise<IdMapQueryResult>;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.executeIdMapQuery = executeIdMapQuery;
|
|
4
4
|
const log_1 = require("../../../util/log");
|
|
5
|
+
/**
|
|
6
|
+
* Executes the given ID map queries using the provided analyzer.
|
|
7
|
+
*/
|
|
5
8
|
async function executeIdMapQuery({ analyzer }, queries) {
|
|
6
9
|
if (queries.length !== 1) {
|
|
7
10
|
log_1.log.warn('Id-Map query expects only up to one query, but got', queries.length);
|
|
@@ -10,7 +10,7 @@ export interface IdMapQueryResult extends BaseQueryResult {
|
|
|
10
10
|
}
|
|
11
11
|
export declare const IdMapQueryDefinition: {
|
|
12
12
|
readonly executor: typeof executeIdMapQuery;
|
|
13
|
-
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").
|
|
13
|
+
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
|
|
14
14
|
readonly schema: Joi.ObjectSchema<any>;
|
|
15
15
|
readonly flattenInvolvedNodes: () => never[];
|
|
16
16
|
};
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { InspectHigherOrderQuery, InspectHigherOrderQueryResult } from './inspect-higher-order-query-format';
|
|
2
2
|
import type { BasicQueryData } from '../../base-query-format';
|
|
3
|
+
/**
|
|
4
|
+
* Execute higher-order function inspection queries on the given analyzer.
|
|
5
|
+
*/
|
|
3
6
|
export declare function executeHigherOrderQuery({ analyzer }: BasicQueryData, queries: readonly InspectHigherOrderQuery[]): Promise<InspectHigherOrderQueryResult>;
|
|
@@ -4,6 +4,9 @@ exports.executeHigherOrderQuery = executeHigherOrderQuery;
|
|
|
4
4
|
const parse_1 = require("../../../slicing/criterion/parse");
|
|
5
5
|
const vertex_1 = require("../../../dataflow/graph/vertex");
|
|
6
6
|
const higher_order_function_1 = require("../../../dataflow/fn/higher-order-function");
|
|
7
|
+
/**
|
|
8
|
+
* Execute higher-order function inspection queries on the given analyzer.
|
|
9
|
+
*/
|
|
7
10
|
async function executeHigherOrderQuery({ analyzer }, queries) {
|
|
8
11
|
const start = Date.now();
|
|
9
12
|
let filters = undefined;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
|
|
2
2
|
import Joi from 'joi';
|
|
3
3
|
import { executeHigherOrderQuery } from './inspect-higher-order-query-executor';
|
|
4
|
-
import type
|
|
4
|
+
import { type NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
5
5
|
import type { SingleSlicingCriterion } from '../../../slicing/criterion/parse';
|
|
6
6
|
/**
|
|
7
7
|
* Either returns all function definitions alongside whether they are higher-order functions,
|
|
@@ -16,7 +16,7 @@ export interface InspectHigherOrderQueryResult extends BaseQueryResult {
|
|
|
16
16
|
}
|
|
17
17
|
export declare const InspectHigherOrderQueryDefinition: {
|
|
18
18
|
readonly executor: typeof executeHigherOrderQuery;
|
|
19
|
-
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, processed: import("../../../project/flowr-analyzer").
|
|
19
|
+
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, processed: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => Promise<boolean>;
|
|
20
20
|
readonly schema: Joi.ObjectSchema<any>;
|
|
21
21
|
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
|
|
22
22
|
};
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import type { BasicQueryData } from '../../base-query-format';
|
|
2
2
|
import type { LinterQuery, LinterQueryResult } from './linter-query-format';
|
|
3
|
+
/**
|
|
4
|
+
* Executes the given linter queries using the provided analyzer.
|
|
5
|
+
* @see {@link executeLintingRule}
|
|
6
|
+
*/
|
|
3
7
|
export declare function executeLinterQuery({ analyzer }: BasicQueryData, queries: readonly LinterQuery[]): Promise<LinterQueryResult>;
|
|
@@ -4,6 +4,10 @@ exports.executeLinterQuery = executeLinterQuery;
|
|
|
4
4
|
const linter_rules_1 = require("../../../linter/linter-rules");
|
|
5
5
|
const log_1 = require("../../../util/log");
|
|
6
6
|
const linter_executor_1 = require("../../../linter/linter-executor");
|
|
7
|
+
/**
|
|
8
|
+
* Executes the given linter queries using the provided analyzer.
|
|
9
|
+
* @see {@link executeLintingRule}
|
|
10
|
+
*/
|
|
7
11
|
async function executeLinterQuery({ analyzer }, queries) {
|
|
8
12
|
const flattened = queries.flatMap(q => q.rules ?? Object.keys(linter_rules_1.LintingRules));
|
|
9
13
|
const distinct = new Set(flattened);
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
|
|
2
|
+
import type { ParsedQueryLine } from '../../query';
|
|
2
3
|
import Joi from 'joi';
|
|
3
4
|
import { executeLinterQuery } from './linter-query-executor';
|
|
4
|
-
import type
|
|
5
|
-
import type
|
|
5
|
+
import { type LintingRuleNames } from '../../../linter/linter-rules';
|
|
6
|
+
import { type ConfiguredLintingRule, type LintingResults } from '../../../linter/linter-format';
|
|
7
|
+
import type { FlowrConfigOptions } from '../../../config';
|
|
8
|
+
import type { ReplOutput } from '../../../cli/repl/commands/repl-main';
|
|
9
|
+
import type { CommandCompletions } from '../../../cli/repl/core';
|
|
6
10
|
export interface LinterQuery extends BaseQueryFormat {
|
|
7
11
|
readonly type: 'linter';
|
|
8
12
|
/**
|
|
@@ -19,9 +23,14 @@ export interface LinterQueryResult extends BaseQueryResult {
|
|
|
19
23
|
[L in LintingRuleNames]?: LintingResults<L>;
|
|
20
24
|
};
|
|
21
25
|
}
|
|
26
|
+
declare function linterQueryLineParser(output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'linter'>;
|
|
27
|
+
declare function linterQueryCompleter(line: readonly string[], startingNewArg: boolean, _config: FlowrConfigOptions): CommandCompletions;
|
|
22
28
|
export declare const LinterQueryDefinition: {
|
|
23
29
|
readonly executor: typeof executeLinterQuery;
|
|
24
|
-
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter,
|
|
30
|
+
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
|
|
31
|
+
readonly completer: typeof linterQueryCompleter;
|
|
32
|
+
readonly fromLine: typeof linterQueryLineParser;
|
|
25
33
|
readonly schema: Joi.ObjectSchema<any>;
|
|
26
34
|
readonly flattenInvolvedNodes: () => never[];
|
|
27
35
|
};
|
|
36
|
+
export {};
|
|
@@ -11,16 +11,93 @@ const linter_format_1 = require("../../../linter/linter-format");
|
|
|
11
11
|
const ansi_1 = require("../../../util/text/ansi");
|
|
12
12
|
const time_1 = require("../../../util/text/time");
|
|
13
13
|
const doc_code_1 = require("../../../documentation/doc-util/doc-code");
|
|
14
|
+
const retriever_1 = require("../../../r-bridge/retriever");
|
|
15
|
+
const assert_1 = require("../../../util/assert");
|
|
16
|
+
function rulesFromInput(output, rulesPart) {
|
|
17
|
+
return rulesPart
|
|
18
|
+
.reduce((acc, ruleName) => {
|
|
19
|
+
ruleName = ruleName.trim();
|
|
20
|
+
if (ruleName in linter_rules_1.LintingRules) {
|
|
21
|
+
acc.valid.push(ruleName);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
acc.invalid.push(ruleName);
|
|
25
|
+
}
|
|
26
|
+
return acc;
|
|
27
|
+
}, { valid: [], invalid: [] });
|
|
28
|
+
}
|
|
29
|
+
const rulesPrefix = 'rules:';
|
|
30
|
+
function linterQueryLineParser(output, line, _config) {
|
|
31
|
+
let rules = undefined;
|
|
32
|
+
let input = undefined;
|
|
33
|
+
if (line.length > 0 && line[0].startsWith(rulesPrefix)) {
|
|
34
|
+
const rulesPart = line[0].slice(rulesPrefix.length).split(',');
|
|
35
|
+
const parseResult = rulesFromInput(output, rulesPart);
|
|
36
|
+
if (parseResult.invalid.length > 0) {
|
|
37
|
+
output.stdout(`Invalid linting rule name(s): ${parseResult.invalid.map(r => (0, ansi_1.bold)(r, output.formatter)).join(', ')}`
|
|
38
|
+
+ `\nValid rule names are: ${Object.keys(linter_rules_1.LintingRules).map(r => (0, ansi_1.bold)(r, output.formatter)).join(', ')}`);
|
|
39
|
+
}
|
|
40
|
+
rules = parseResult.valid;
|
|
41
|
+
input = line[1];
|
|
42
|
+
}
|
|
43
|
+
else if (line.length > 0) {
|
|
44
|
+
input = line[0];
|
|
45
|
+
}
|
|
46
|
+
return { query: [{ type: 'linter', rules: rules }], rCode: input };
|
|
47
|
+
}
|
|
48
|
+
function linterQueryCompleter(line, startingNewArg, _config) {
|
|
49
|
+
const rulesPrefixNotPresent = line.length == 0 || (line.length == 1 && line[0].length < rulesPrefix.length);
|
|
50
|
+
const rulesNotFinished = line.length == 1 && line[0].startsWith(rulesPrefix) && !startingNewArg;
|
|
51
|
+
const endOfRules = line.length == 1 && startingNewArg || line.length == 2;
|
|
52
|
+
if (rulesPrefixNotPresent) {
|
|
53
|
+
return { completions: [`${rulesPrefix}`] };
|
|
54
|
+
}
|
|
55
|
+
else if (endOfRules) {
|
|
56
|
+
return { completions: [retriever_1.fileProtocol] };
|
|
57
|
+
}
|
|
58
|
+
else if (rulesNotFinished) {
|
|
59
|
+
const rulesWithoutPrefix = line[0].slice(rulesPrefix.length);
|
|
60
|
+
const usedRules = rulesWithoutPrefix.split(',').map(r => r.trim());
|
|
61
|
+
const allRules = Object.keys(linter_rules_1.LintingRules);
|
|
62
|
+
const unusedRules = allRules.filter(r => !usedRules.includes(r));
|
|
63
|
+
const lastRule = usedRules[usedRules.length - 1];
|
|
64
|
+
const lastRuleIsUnfinished = !allRules.includes(lastRule);
|
|
65
|
+
if (lastRuleIsUnfinished) {
|
|
66
|
+
// Return all rules that have not been added yet
|
|
67
|
+
return { completions: unusedRules, argumentPart: lastRule };
|
|
68
|
+
}
|
|
69
|
+
else if (unusedRules.length > 0) {
|
|
70
|
+
// Add a comma, if the current last rule is complete
|
|
71
|
+
return { completions: [','], argumentPart: '' };
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
// All rules are used, complete with a space
|
|
75
|
+
return { completions: [' '], argumentPart: '' };
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return { completions: [] };
|
|
79
|
+
}
|
|
14
80
|
exports.LinterQueryDefinition = {
|
|
15
81
|
executor: linter_query_executor_1.executeLinterQuery,
|
|
16
|
-
asciiSummarizer: (formatter,
|
|
82
|
+
asciiSummarizer: (formatter, analyzer, queryResults, result) => {
|
|
17
83
|
const out = queryResults;
|
|
18
84
|
result.push(`Query: ${(0, ansi_1.bold)('linter', formatter)} (${(0, time_1.printAsMs)(out['.meta'].timing, 0)})`);
|
|
85
|
+
const allDidFail = Object.values(out.results).every(r => (0, linter_format_1.isLintingResultsError)(r));
|
|
86
|
+
if (allDidFail) {
|
|
87
|
+
result.push('All linting rules failed to execute.');
|
|
88
|
+
if (analyzer.inspectContext().files.loadingOrder.getUnorderedRequests().length === 0) {
|
|
89
|
+
result.push(formatter.format('No requests to lint for were found in the analysis.', { color: 1 /* Colors.Red */, effect: ansi_1.ColorEffect.Foreground, style: 1 /* FontStyles.Bold */ }));
|
|
90
|
+
result.push('If you consider this an error, please report a bug: ' + (0, assert_1.getGuardIssueUrl)('analyzer found no requests to lint for'));
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
19
94
|
for (const [ruleName, results] of Object.entries(out.results)) {
|
|
20
95
|
addLintingRuleResult(ruleName, results, result);
|
|
21
96
|
}
|
|
22
97
|
return true;
|
|
23
98
|
},
|
|
99
|
+
completer: linterQueryCompleter,
|
|
100
|
+
fromLine: linterQueryLineParser,
|
|
24
101
|
schema: joi_1.default.object({
|
|
25
102
|
type: joi_1.default.string().valid('linter').required().description('The type of the query.'),
|
|
26
103
|
rules: joi_1.default.array().items(joi_1.default.string().valid(...Object.keys(linter_rules_1.LintingRules)), joi_1.default.object({
|
|
@@ -34,7 +111,8 @@ function addLintingRuleResult(ruleName, results, result) {
|
|
|
34
111
|
const rule = linter_rules_1.LintingRules[ruleName];
|
|
35
112
|
result.push(` ╰ **${rule.info.name}** (${ruleName}):`);
|
|
36
113
|
if ((0, linter_format_1.isLintingResultsError)(results)) {
|
|
37
|
-
|
|
114
|
+
const error = results.error.includes('At least one request must be set') ? 'No requests to lint for were found in the analysis.' : 'Error during execution of rule: ' + results.error;
|
|
115
|
+
result.push(` ╰ ${error}`);
|
|
38
116
|
return;
|
|
39
117
|
}
|
|
40
118
|
for (const certainty of [linter_format_1.LintingResultCertainty.Certain, linter_format_1.LintingResultCertainty.Uncertain]) {
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import type { LocationMapQuery, LocationMapQueryResult } from './location-map-query-format';
|
|
2
2
|
import type { BasicQueryData } from '../../base-query-format';
|
|
3
|
+
/**
|
|
4
|
+
* Executes a location map query
|
|
5
|
+
* @see {@link LocationMapQuery}
|
|
6
|
+
*/
|
|
3
7
|
export declare function executeLocationMapQuery({ analyzer }: BasicQueryData, queries: readonly LocationMapQuery[]): Promise<LocationMapQueryResult>;
|
|
@@ -22,7 +22,12 @@ function fuzzyFindFile(node, idMap) {
|
|
|
22
22
|
}
|
|
23
23
|
return '<inline>';
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Executes a location map query
|
|
27
|
+
* @see {@link LocationMapQuery}
|
|
28
|
+
*/
|
|
25
29
|
async function executeLocationMapQuery({ analyzer }, queries) {
|
|
30
|
+
const ast = await analyzer.normalize();
|
|
26
31
|
const start = Date.now();
|
|
27
32
|
const criteriaOfInterest = new Set(queries
|
|
28
33
|
.flatMap(q => q.ids ?? [])
|
|
@@ -34,12 +39,12 @@ async function executeLocationMapQuery({ analyzer }, queries) {
|
|
|
34
39
|
};
|
|
35
40
|
let count = 0;
|
|
36
41
|
const inverseMap = new Map();
|
|
37
|
-
|
|
42
|
+
await analyzer.dataflow(); // ensure all files are considered
|
|
43
|
+
for (const file of analyzer.inspectContext().files.consideredFilesList()) {
|
|
38
44
|
locationMap.files[count] = file;
|
|
39
45
|
inverseMap.set(file, count);
|
|
40
46
|
count++;
|
|
41
47
|
}
|
|
42
|
-
const ast = await analyzer.normalize();
|
|
43
48
|
for (const [id, node] of ast.idMap.entries()) {
|
|
44
49
|
if (node.location && (criteriaOfInterest.size === 0 || criteriaOfInterest.has(id))) {
|
|
45
50
|
const file = fuzzyFindFile(node, ast.idMap);
|
|
@@ -5,6 +5,9 @@ import Joi from 'joi';
|
|
|
5
5
|
import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
6
6
|
import type { SourceRange } from '../../../util/range';
|
|
7
7
|
import type { SingleSlicingCriterion } from '../../../slicing/criterion/parse';
|
|
8
|
+
import type { ReplOutput } from '../../../cli/repl/commands/repl-main';
|
|
9
|
+
import type { FlowrConfigOptions } from '../../../config';
|
|
10
|
+
import type { ParsedQueryLine } from '../../query';
|
|
8
11
|
export interface LocationMapQuery extends BaseQueryFormat {
|
|
9
12
|
readonly type: 'location-map';
|
|
10
13
|
/** Optional list of ids to filter the results by. If not provided, all ids will be included. */
|
|
@@ -22,9 +25,12 @@ export interface LocationMapQueryResult extends BaseQueryResult {
|
|
|
22
25
|
ids: Record<NodeId, [FileId, SourceRange]>;
|
|
23
26
|
};
|
|
24
27
|
}
|
|
28
|
+
declare function locationMapLineParser(_output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'location-map'>;
|
|
25
29
|
export declare const LocationMapQueryDefinition: {
|
|
26
30
|
readonly executor: typeof executeLocationMapQuery;
|
|
27
|
-
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: unknown, queryResults: BaseQueryResult, result: string[]) =>
|
|
31
|
+
readonly asciiSummarizer: (formatter: OutputFormatter, _analyzer: unknown, queryResults: BaseQueryResult, result: string[]) => true;
|
|
32
|
+
readonly fromLine: typeof locationMapLineParser;
|
|
28
33
|
readonly schema: Joi.ObjectSchema<any>;
|
|
29
34
|
readonly flattenInvolvedNodes: () => never[];
|
|
30
35
|
};
|
|
36
|
+
export {};
|
|
@@ -9,6 +9,17 @@ const ansi_1 = require("../../../util/text/ansi");
|
|
|
9
9
|
const time_1 = require("../../../util/text/time");
|
|
10
10
|
const joi_1 = __importDefault(require("joi"));
|
|
11
11
|
const query_print_1 = require("../../query-print");
|
|
12
|
+
const slice_query_parser_1 = require("../../../cli/repl/parser/slice-query-parser");
|
|
13
|
+
function locationMapLineParser(_output, line, _config) {
|
|
14
|
+
const criteria = (0, slice_query_parser_1.sliceCriteriaParser)(line[0]);
|
|
15
|
+
return {
|
|
16
|
+
query: {
|
|
17
|
+
type: 'location-map',
|
|
18
|
+
ids: criteria
|
|
19
|
+
},
|
|
20
|
+
rCode: criteria ? line[1] : line[0]
|
|
21
|
+
};
|
|
22
|
+
}
|
|
12
23
|
exports.LocationMapQueryDefinition = {
|
|
13
24
|
executor: location_map_query_executor_1.executeLocationMapQuery,
|
|
14
25
|
asciiSummarizer: (formatter, _analyzer, queryResults, result) => {
|
|
@@ -21,6 +32,7 @@ exports.LocationMapQueryDefinition = {
|
|
|
21
32
|
result.push(` ╰ Id List: {${(0, query_print_1.summarizeIdsIfTooLong)(formatter, [...Object.keys(out.map.ids)])}}`);
|
|
22
33
|
return true;
|
|
23
34
|
},
|
|
35
|
+
fromLine: locationMapLineParser,
|
|
24
36
|
schema: joi_1.default.object({
|
|
25
37
|
type: joi_1.default.string().valid('location-map').required().description('The type of the query.'),
|
|
26
38
|
ids: joi_1.default.array().items(joi_1.default.string()).optional().description('Optional list of ids to filter the results by.')
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { NormalizedAstQuery, NormalizedAstQueryResult } from './normalized-ast-query-format';
|
|
2
2
|
import type { BasicQueryData } from '../../base-query-format';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare function executeNormalizedAstQuery({ analyzer }: BasicQueryData, queries: readonly NormalizedAstQuery[]): Promise<NormalizedAstQueryResult>;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.executeNormalizedAstQuery = executeNormalizedAstQuery;
|
|
4
4
|
const log_1 = require("../../../util/log");
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
5
8
|
async function executeNormalizedAstQuery({ analyzer }, queries) {
|
|
6
9
|
if (queries.length !== 1) {
|
|
7
10
|
log_1.log.warn('Normalized-Ast query expects only up to one query, but got', queries.length);
|
|
@@ -13,7 +13,7 @@ export interface NormalizedAstQueryResult extends BaseQueryResult {
|
|
|
13
13
|
}
|
|
14
14
|
export declare const NormalizedAstQueryDefinition: {
|
|
15
15
|
readonly executor: typeof executeNormalizedAstQuery;
|
|
16
|
-
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").
|
|
16
|
+
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
|
|
17
17
|
readonly schema: Joi.ObjectSchema<any>;
|
|
18
18
|
readonly flattenInvolvedNodes: () => never[];
|
|
19
19
|
};
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { BasicQueryData } from '../../base-query-format';
|
|
2
|
-
import type
|
|
2
|
+
import { type SingleSlicingCriterion } from '../../../slicing/criterion/parse';
|
|
3
3
|
import type { OriginQuery, OriginQueryResult } from './origin-query-format';
|
|
4
|
+
/**
|
|
5
|
+
* Produce a fingerprint string for an origin query
|
|
6
|
+
*/
|
|
4
7
|
export declare function fingerPrintOfQuery(query: OriginQuery): SingleSlicingCriterion;
|
|
8
|
+
/**
|
|
9
|
+
* Execute origin queries, catching duplicates with the same fingerprint
|
|
10
|
+
*/
|
|
5
11
|
export declare function executeResolveValueQuery({ analyzer }: BasicQueryData, queries: readonly OriginQuery[]): Promise<OriginQueryResult>;
|
|
@@ -5,9 +5,15 @@ exports.executeResolveValueQuery = executeResolveValueQuery;
|
|
|
5
5
|
const log_1 = require("../../../util/log");
|
|
6
6
|
const parse_1 = require("../../../slicing/criterion/parse");
|
|
7
7
|
const dfg_get_origin_1 = require("../../../dataflow/origin/dfg-get-origin");
|
|
8
|
+
/**
|
|
9
|
+
* Produce a fingerprint string for an origin query
|
|
10
|
+
*/
|
|
8
11
|
function fingerPrintOfQuery(query) {
|
|
9
12
|
return query.criterion;
|
|
10
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Execute origin queries, catching duplicates with the same fingerprint
|
|
16
|
+
*/
|
|
11
17
|
async function executeResolveValueQuery({ analyzer }, queries) {
|
|
12
18
|
const start = Date.now();
|
|
13
19
|
const results = {};
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
|
|
2
2
|
import type { SingleSlicingCriterion } from '../../../slicing/criterion/parse';
|
|
3
|
+
import type { ParsedQueryLine } from '../../query';
|
|
3
4
|
import Joi from 'joi';
|
|
4
5
|
import { executeResolveValueQuery } from './origin-query-executor';
|
|
5
6
|
import type { Origin } from '../../../dataflow/origin/dfg-get-origin';
|
|
6
7
|
import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
8
|
+
import type { ReplOutput } from '../../../cli/repl/commands/repl-main';
|
|
9
|
+
import type { FlowrConfigOptions } from '../../../config';
|
|
7
10
|
export interface OriginQuery extends BaseQueryFormat {
|
|
8
11
|
readonly type: 'origin';
|
|
9
12
|
/** The slicing criteria to use */
|
|
@@ -12,9 +15,12 @@ export interface OriginQuery extends BaseQueryFormat {
|
|
|
12
15
|
export interface OriginQueryResult extends BaseQueryResult {
|
|
13
16
|
results: Record<SingleSlicingCriterion, Origin[] | undefined>;
|
|
14
17
|
}
|
|
18
|
+
declare function originQueryLineParser(output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'origin'>;
|
|
15
19
|
export declare const OriginQueryDefinition: {
|
|
16
20
|
readonly executor: typeof executeResolveValueQuery;
|
|
17
|
-
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").
|
|
21
|
+
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
|
|
22
|
+
readonly fromLine: typeof originQueryLineParser;
|
|
18
23
|
readonly schema: Joi.ObjectSchema<any>;
|
|
19
24
|
readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
|
|
20
25
|
};
|
|
26
|
+
export {};
|
|
@@ -8,6 +8,21 @@ const ansi_1 = require("../../../util/text/ansi");
|
|
|
8
8
|
const time_1 = require("../../../util/text/time");
|
|
9
9
|
const joi_1 = __importDefault(require("joi"));
|
|
10
10
|
const origin_query_executor_1 = require("./origin-query-executor");
|
|
11
|
+
const slice_query_parser_1 = require("../../../cli/repl/parser/slice-query-parser");
|
|
12
|
+
function originQueryLineParser(output, line, _config) {
|
|
13
|
+
const criterion = (0, slice_query_parser_1.sliceCriterionParser)(line[0]);
|
|
14
|
+
if (!criterion) {
|
|
15
|
+
output.stderr(output.formatter.format('Invalid origin query format, slicing criterion must be given in parentheses, e.g. (2@var), (1:5) or ($10)', { color: 1 /* Colors.Red */, effect: ansi_1.ColorEffect.Foreground, style: 1 /* FontStyles.Bold */ }));
|
|
16
|
+
return { query: [] };
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
query: {
|
|
20
|
+
type: 'origin',
|
|
21
|
+
criterion: criterion
|
|
22
|
+
},
|
|
23
|
+
rCode: line[1]
|
|
24
|
+
};
|
|
25
|
+
}
|
|
11
26
|
exports.OriginQueryDefinition = {
|
|
12
27
|
executor: origin_query_executor_1.executeResolveValueQuery,
|
|
13
28
|
asciiSummarizer: (formatter, _analyzer, queryResults, result) => {
|
|
@@ -15,10 +30,11 @@ exports.OriginQueryDefinition = {
|
|
|
15
30
|
result.push(`Query: ${(0, ansi_1.bold)('origin', formatter)} (${(0, time_1.printAsMs)(out['.meta'].timing, 0)})`);
|
|
16
31
|
for (const [criteria, obj] of Object.entries(out.results)) {
|
|
17
32
|
result.push(` ╰ Origins for {${criteria}}`);
|
|
18
|
-
result.push(`
|
|
33
|
+
result.push(` ╰ ${obj?.map(o => JSON.stringify(o)).join(', ')}`);
|
|
19
34
|
}
|
|
20
35
|
return true;
|
|
21
36
|
},
|
|
37
|
+
fromLine: originQueryLineParser,
|
|
22
38
|
schema: joi_1.default.object({
|
|
23
39
|
type: joi_1.default.string().valid('origin').required().description('The type of the query.'),
|
|
24
40
|
criterion: joi_1.default.string().required().description('The slicing criteria to use'),
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { ProjectQuery, ProjectQueryResult } from './project-query-format';
|
|
2
2
|
import type { BasicQueryData } from '../../base-query-format';
|
|
3
|
+
/**
|
|
4
|
+
* Executes the given project queries.
|
|
5
|
+
*/
|
|
3
6
|
export declare function executeProjectQuery({ analyzer }: BasicQueryData, queries: readonly ProjectQuery[]): Promise<ProjectQueryResult>;
|
|
@@ -2,16 +2,21 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.executeProjectQuery = executeProjectQuery;
|
|
4
4
|
const log_1 = require("../../../util/log");
|
|
5
|
+
/**
|
|
6
|
+
* Executes the given project queries.
|
|
7
|
+
*/
|
|
5
8
|
async function executeProjectQuery({ analyzer }, queries) {
|
|
6
9
|
if (queries.length !== 1) {
|
|
7
10
|
log_1.log.warn('Project query expects only up to one query, but got', queries.length);
|
|
8
11
|
}
|
|
12
|
+
// we need to know what is considered by the analyzer
|
|
13
|
+
await analyzer.dataflow();
|
|
9
14
|
return {
|
|
10
15
|
'.meta': {
|
|
11
16
|
/* there is no sense in measuring a get */
|
|
12
17
|
timing: 0
|
|
13
18
|
},
|
|
14
|
-
files:
|
|
19
|
+
files: [...analyzer.inspectContext().files.consideredFilesList()]
|
|
15
20
|
};
|
|
16
21
|
}
|
|
17
22
|
//# sourceMappingURL=project-query-executor.js.map
|
|
@@ -9,7 +9,7 @@ export interface ProjectQueryResult extends BaseQueryResult {
|
|
|
9
9
|
}
|
|
10
10
|
export declare const ProjectQueryDefinition: {
|
|
11
11
|
readonly executor: typeof executeProjectQuery;
|
|
12
|
-
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").
|
|
12
|
+
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
|
|
13
13
|
readonly schema: Joi.ObjectSchema<any>;
|
|
14
14
|
readonly flattenInvolvedNodes: () => never[];
|
|
15
15
|
};
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { ResolveValueQuery, ResolveValueQueryResult } from './resolve-value-query-format';
|
|
2
2
|
import type { BasicQueryData } from '../../base-query-format';
|
|
3
|
+
/**
|
|
4
|
+
* Naive fingerprint to filter out duplicate queries.
|
|
5
|
+
*/
|
|
3
6
|
export declare function fingerPrintOfQuery(query: ResolveValueQuery): string;
|
|
7
|
+
/**
|
|
8
|
+
* Executes a resolve-value query.
|
|
9
|
+
*/
|
|
4
10
|
export declare function executeResolveValueQuery({ analyzer }: BasicQueryData, queries: readonly ResolveValueQuery[]): Promise<ResolveValueQueryResult>;
|
|
@@ -5,9 +5,15 @@ exports.executeResolveValueQuery = executeResolveValueQuery;
|
|
|
5
5
|
const log_1 = require("../../../util/log");
|
|
6
6
|
const parse_1 = require("../../../slicing/criterion/parse");
|
|
7
7
|
const alias_tracking_1 = require("../../../dataflow/eval/resolve/alias-tracking");
|
|
8
|
+
/**
|
|
9
|
+
* Naive fingerprint to filter out duplicate queries.
|
|
10
|
+
*/
|
|
8
11
|
function fingerPrintOfQuery(query) {
|
|
9
12
|
return JSON.stringify(query);
|
|
10
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
* Executes a resolve-value query.
|
|
16
|
+
*/
|
|
11
17
|
async function executeResolveValueQuery({ analyzer }, queries) {
|
|
12
18
|
const start = Date.now();
|
|
13
19
|
const results = {};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
|
|
2
2
|
import type { SlicingCriteria } from '../../../slicing/criterion/parse';
|
|
3
|
+
import type { ParsedQueryLine } from '../../query';
|
|
3
4
|
import Joi from 'joi';
|
|
4
5
|
import { executeResolveValueQuery } from './resolve-value-query-executor';
|
|
5
6
|
import type { ResolveResult } from '../../../dataflow/eval/resolve/alias-tracking';
|
|
7
|
+
import type { ReplOutput } from '../../../cli/repl/commands/repl-main';
|
|
8
|
+
import type { FlowrConfigOptions } from '../../../config';
|
|
6
9
|
export interface ResolveValueQuery extends BaseQueryFormat {
|
|
7
10
|
readonly type: 'resolve-value';
|
|
8
11
|
/** The slicing criteria to use */
|
|
@@ -13,9 +16,12 @@ export interface ResolveValueQueryResult extends BaseQueryResult {
|
|
|
13
16
|
values: ResolveResult[];
|
|
14
17
|
}>;
|
|
15
18
|
}
|
|
19
|
+
declare function resolveValueLineParser(output: ReplOutput, line: readonly string[], _config: FlowrConfigOptions): ParsedQueryLine<'resolve-value'>;
|
|
16
20
|
export declare const ResolveValueQueryDefinition: {
|
|
17
21
|
readonly executor: typeof executeResolveValueQuery;
|
|
18
|
-
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").
|
|
22
|
+
readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
|
|
23
|
+
readonly fromLine: typeof resolveValueLineParser;
|
|
19
24
|
readonly schema: Joi.ObjectSchema<any>;
|
|
20
25
|
readonly flattenInvolvedNodes: () => never[];
|
|
21
26
|
};
|
|
27
|
+
export {};
|