@eagleoutice/flowr 2.6.1 → 2.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +131 -30
- package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
- package/abstract-interpretation/data-frame/absint-visitor.d.ts +2 -3
- package/abstract-interpretation/data-frame/absint-visitor.js +15 -10
- package/abstract-interpretation/data-frame/dataframe-domain.d.ts +18 -12
- package/abstract-interpretation/data-frame/dataframe-domain.js +25 -13
- package/abstract-interpretation/data-frame/mappers/access-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/access-mapper.js +0 -1
- package/abstract-interpretation/data-frame/mappers/arguments.d.ts +1 -10
- package/abstract-interpretation/data-frame/mappers/arguments.js +0 -7
- package/abstract-interpretation/data-frame/mappers/assignment-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/assignment-mapper.js +0 -1
- package/abstract-interpretation/data-frame/mappers/function-mapper.d.ts +4 -5
- package/abstract-interpretation/data-frame/mappers/function-mapper.js +3 -4
- package/abstract-interpretation/data-frame/mappers/replacement-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/replacement-mapper.js +0 -1
- package/abstract-interpretation/data-frame/resolve-args.d.ts +1 -1
- package/abstract-interpretation/data-frame/semantics.d.ts +3 -4
- package/abstract-interpretation/data-frame/semantics.js +171 -162
- package/abstract-interpretation/data-frame/shape-inference.d.ts +1 -4
- package/abstract-interpretation/data-frame/shape-inference.js +7 -9
- package/abstract-interpretation/domains/abstract-domain.d.ts +59 -18
- package/abstract-interpretation/domains/abstract-domain.js +74 -1
- package/abstract-interpretation/domains/bounded-set-domain.d.ts +37 -24
- package/abstract-interpretation/domains/bounded-set-domain.js +70 -47
- package/abstract-interpretation/domains/interval-domain.d.ts +33 -25
- package/abstract-interpretation/domains/interval-domain.js +109 -50
- package/abstract-interpretation/domains/lattice.d.ts +19 -11
- package/abstract-interpretation/domains/mapped-abstract-domain.d.ts +34 -0
- package/abstract-interpretation/domains/mapped-abstract-domain.js +189 -0
- package/abstract-interpretation/domains/positive-interval-domain.d.ts +16 -12
- package/abstract-interpretation/domains/positive-interval-domain.js +20 -11
- package/abstract-interpretation/domains/product-domain.d.ts +18 -23
- package/abstract-interpretation/domains/product-domain.js +11 -19
- package/abstract-interpretation/domains/satisfiable-domain.d.ts +29 -0
- package/abstract-interpretation/domains/satisfiable-domain.js +24 -0
- package/abstract-interpretation/domains/set-upper-bound-domain.d.ts +54 -0
- package/abstract-interpretation/domains/set-upper-bound-domain.js +197 -0
- package/abstract-interpretation/domains/singleton-domain.d.ts +24 -19
- package/abstract-interpretation/domains/singleton-domain.js +52 -37
- package/abstract-interpretation/domains/state-abstract-domain.d.ts +8 -24
- package/abstract-interpretation/domains/state-abstract-domain.js +2 -167
- package/abstract-interpretation/normalized-ast-fold.d.ts +1 -7
- package/abstract-interpretation/normalized-ast-fold.js +0 -5
- package/benchmark/slicer.d.ts +3 -7
- package/benchmark/slicer.js +14 -19
- package/benchmark/stats/print.d.ts +6 -0
- package/benchmark/stats/print.js +6 -0
- package/benchmark/stats/size-of.d.ts +0 -1
- package/benchmark/stats/size-of.js +0 -1
- package/benchmark/stats/stats.d.ts +2 -2
- package/benchmark/stopwatch.d.ts +11 -13
- package/benchmark/stopwatch.js +11 -13
- package/benchmark/summarizer/first-phase/input.d.ts +6 -0
- package/benchmark/summarizer/first-phase/input.js +6 -0
- package/benchmark/summarizer/first-phase/process.d.ts +13 -1
- package/benchmark/summarizer/first-phase/process.js +12 -0
- package/benchmark/summarizer/second-phase/graph.d.ts +3 -0
- package/benchmark/summarizer/second-phase/graph.js +3 -0
- package/benchmark/summarizer/second-phase/process.d.ts +12 -0
- package/benchmark/summarizer/second-phase/process.js +12 -0
- package/benchmark/summarizer/summarizer.d.ts +1 -2
- package/cli/benchmark-app.js +0 -2
- package/cli/common/features.d.ts +7 -1
- package/cli/common/features.js +6 -0
- package/cli/common/script.d.ts +3 -1
- package/cli/common/script.js +3 -1
- package/cli/common/scripts-info.d.ts +3 -1
- package/cli/common/scripts-info.js +3 -0
- package/cli/flowr-main-options.d.ts +3 -0
- package/cli/flowr-main-options.js +3 -0
- package/cli/repl/commands/repl-commands.d.ts +13 -0
- package/cli/repl/commands/repl-commands.js +13 -2
- package/cli/repl/commands/repl-execute.d.ts +4 -0
- package/cli/repl/commands/repl-execute.js +6 -2
- package/cli/repl/commands/repl-main.d.ts +15 -9
- package/cli/repl/commands/repl-parse.js +2 -2
- package/cli/repl/commands/repl-query.js +16 -5
- package/cli/repl/core.d.ts +24 -6
- package/cli/repl/core.js +28 -19
- package/cli/repl/execute.d.ts +0 -2
- package/cli/repl/execute.js +0 -2
- package/cli/repl/parser/slice-query-parser.d.ts +14 -0
- package/cli/repl/parser/slice-query-parser.js +34 -0
- package/cli/repl/print-version.d.ts +6 -0
- package/cli/repl/print-version.js +6 -0
- package/cli/repl/server/compact.d.ts +8 -0
- package/cli/repl/server/compact.js +8 -0
- package/cli/repl/server/connection.d.ts +4 -3
- package/cli/repl/server/connection.js +3 -31
- package/cli/repl/server/messages/all-messages.d.ts +1 -3
- package/cli/repl/server/messages/all-messages.js +0 -1
- package/cli/repl/server/messages/message-analysis.d.ts +0 -2
- package/cli/repl/server/messages/message-query.d.ts +1 -1
- package/cli/repl/server/messages/message-repl.d.ts +0 -1
- package/cli/repl/server/send.d.ts +6 -0
- package/cli/repl/server/send.js +6 -0
- package/cli/repl/server/server.d.ts +1 -1
- package/cli/repl/server/validate.d.ts +10 -1
- package/cli/repl/server/validate.js +9 -0
- package/cli/run-script.d.ts +1 -2
- package/cli/run-script.js +0 -1
- package/cli/script-core/statistics-core.d.ts +3 -0
- package/cli/script-core/statistics-core.js +3 -0
- package/cli/script-core/statistics-helper-core.d.ts +4 -1
- package/cli/script-core/statistics-helper-core.js +3 -0
- package/cli/script-core/summarizer-core.d.ts +3 -0
- package/cli/script-core/summarizer-core.js +3 -0
- package/cli/summarizer-app.d.ts +2 -3
- package/cli/summarizer-app.js +2 -3
- package/config.d.ts +17 -3
- package/config.js +15 -0
- package/control-flow/basic-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/basic-cfg-guided-visitor.js +0 -1
- package/control-flow/cfg-to-basic-blocks.d.ts +1 -1
- package/control-flow/control-flow-graph.d.ts +20 -12
- package/control-flow/control-flow-graph.js +16 -4
- package/control-flow/dfg-cfg-guided-visitor.d.ts +2 -3
- package/control-flow/diff-cfg.d.ts +3 -5
- package/control-flow/diff-cfg.js +0 -1
- package/control-flow/extract-cfg.d.ts +3 -6
- package/control-flow/extract-cfg.js +0 -3
- package/control-flow/happens-before.d.ts +1 -1
- package/control-flow/semantic-cfg-guided-visitor.d.ts +2 -31
- package/control-flow/semantic-cfg-guided-visitor.js +0 -28
- package/control-flow/simple-visitor.d.ts +1 -3
- package/control-flow/simple-visitor.js +0 -2
- package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/useless-loop.d.ts +0 -3
- package/control-flow/useless-loop.js +2 -5
- package/core/pipeline-executor.d.ts +8 -16
- package/core/pipeline-executor.js +9 -18
- package/core/print/dataflow-printer.d.ts +19 -0
- package/core/print/dataflow-printer.js +19 -0
- package/core/print/normalize-printer.d.ts +21 -1
- package/core/print/normalize-printer.js +20 -0
- package/core/print/parse-printer.d.ts +6 -1
- package/core/print/parse-printer.js +5 -0
- package/core/print/print.d.ts +0 -1
- package/core/print/print.js +0 -1
- package/core/print/slice-diff-ansi.d.ts +3 -0
- package/core/print/slice-diff-ansi.js +3 -0
- package/core/steps/all/core/00-parse.d.ts +1 -1
- package/core/steps/all/core/01-parse-tree-sitter.d.ts +1 -11
- package/core/steps/all/core/10-normalize.d.ts +3 -0
- package/core/steps/all/core/10-normalize.js +3 -0
- package/core/steps/all/core/11-normalize-tree-sitter.d.ts +4 -3
- package/core/steps/pipeline/create-pipeline.d.ts +1 -1
- package/core/steps/pipeline/default-pipelines.d.ts +47 -47
- package/core/steps/pipeline/default-pipelines.js +0 -4
- package/core/steps/pipeline/pipeline.d.ts +1 -8
- package/core/steps/pipeline/pipeline.js +1 -3
- package/core/steps/pipeline-step.d.ts +0 -1
- package/core/steps/pipeline-step.js +0 -1
- package/dataflow/cluster.d.ts +3 -0
- package/dataflow/cluster.js +3 -0
- package/dataflow/environments/append.d.ts +1 -1
- package/dataflow/environments/built-in-config.d.ts +1 -5
- package/dataflow/environments/built-in-config.js +0 -1
- package/dataflow/environments/built-in.d.ts +10 -5
- package/dataflow/environments/built-in.js +6 -1
- package/dataflow/environments/clone.d.ts +1 -1
- package/dataflow/environments/default-builtin-config.d.ts +3 -0
- package/dataflow/environments/default-builtin-config.js +4 -1
- package/dataflow/environments/diff.d.ts +11 -2
- package/dataflow/environments/diff.js +9 -0
- package/dataflow/environments/environment.d.ts +3 -3
- package/dataflow/environments/environment.js +8 -6
- package/dataflow/environments/identifier.d.ts +0 -4
- package/dataflow/environments/identifier.js +0 -1
- package/dataflow/environments/overwrite.d.ts +4 -1
- package/dataflow/environments/overwrite.js +3 -0
- package/dataflow/environments/resolve-by-name.d.ts +4 -4
- package/dataflow/environments/resolve-by-name.js +3 -2
- package/dataflow/environments/scoping.d.ts +4 -1
- package/dataflow/environments/scoping.js +3 -0
- package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
- package/dataflow/eval/resolve/alias-tracking.js +11 -14
- package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
- package/dataflow/eval/resolve/resolve.d.ts +1 -7
- package/dataflow/eval/resolve/resolve.js +0 -5
- package/dataflow/eval/values/general.d.ts +1 -3
- package/dataflow/eval/values/general.js +0 -1
- package/dataflow/eval/values/intervals/interval-constants.d.ts +7 -1
- package/dataflow/eval/values/intervals/interval-constants.js +6 -0
- package/dataflow/eval/values/logical/logical-constants.d.ts +4 -1
- package/dataflow/eval/values/logical/logical-constants.js +3 -0
- package/dataflow/eval/values/r-value.d.ts +12 -0
- package/dataflow/eval/values/r-value.js +12 -0
- package/dataflow/eval/values/scalar/scalar-consatnts.d.ts +7 -1
- package/dataflow/eval/values/scalar/scalar-consatnts.js +6 -0
- package/dataflow/eval/values/sets/set-constants.d.ts +7 -2
- package/dataflow/eval/values/sets/set-constants.js +6 -0
- package/dataflow/eval/values/string/string-constants.d.ts +10 -1
- package/dataflow/eval/values/string/string-constants.js +9 -0
- package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
- package/dataflow/extractor.d.ts +1 -1
- package/dataflow/graph/dataflowgraph-builder.d.ts +20 -38
- package/dataflow/graph/dataflowgraph-builder.js +6 -23
- package/dataflow/graph/diff-dataflow-graph.d.ts +16 -6
- package/dataflow/graph/diff-dataflow-graph.js +12 -1
- package/dataflow/graph/edge.d.ts +9 -0
- package/dataflow/graph/edge.js +9 -0
- package/dataflow/graph/graph.d.ts +6 -19
- package/dataflow/graph/graph.js +4 -15
- package/dataflow/graph/invert-dfg.d.ts +3 -0
- package/dataflow/graph/invert-dfg.js +3 -0
- package/dataflow/graph/quads.d.ts +1 -1
- package/dataflow/graph/unknown-replacement.d.ts +6 -0
- package/dataflow/graph/unknown-replacement.js +6 -0
- package/dataflow/graph/unknown-side-effect.d.ts +8 -0
- package/dataflow/graph/unknown-side-effect.js +8 -0
- package/dataflow/graph/vertex.d.ts +9 -9
- package/dataflow/graph/vertex.js +9 -1
- package/dataflow/info.d.ts +9 -10
- package/dataflow/info.js +6 -1
- package/dataflow/internal/linker.d.ts +25 -9
- package/dataflow/internal/linker.js +23 -7
- package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
- package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -0
- package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-access.js +3 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-apply.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +2 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +10 -4
- package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +6 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-get.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +4 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-library.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-list.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +3 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-rm.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +23 -6
- package/dataflow/internal/process/functions/call/built-in/built-in-source.js +20 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-vector.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +3 -0
- package/dataflow/internal/process/functions/call/common.d.ts +11 -5
- package/dataflow/internal/process/functions/call/common.js +6 -0
- package/dataflow/internal/process/functions/call/default-call-handling.d.ts +3 -0
- package/dataflow/internal/process/functions/call/default-call-handling.js +3 -0
- package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
- package/dataflow/internal/process/functions/call/known-call-handling.js +7 -0
- package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
- package/dataflow/internal/process/functions/call/named-call-handling.js +6 -0
- package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +4 -1
- package/dataflow/internal/process/functions/call/unnamed-call-handling.js +3 -0
- package/dataflow/internal/process/functions/process-argument.d.ts +8 -2
- package/dataflow/internal/process/functions/process-argument.js +6 -0
- package/dataflow/internal/process/functions/process-parameter.d.ts +5 -2
- package/dataflow/internal/process/functions/process-parameter.js +3 -0
- package/dataflow/internal/process/process-symbol.d.ts +3 -0
- package/dataflow/internal/process/process-symbol.js +3 -0
- package/dataflow/internal/process/process-uninteresting-leaf.d.ts +3 -0
- package/dataflow/internal/process/process-uninteresting-leaf.js +3 -0
- package/dataflow/internal/process/process-value.d.ts +3 -0
- package/dataflow/internal/process/process-value.js +3 -0
- package/dataflow/origin/dfg-get-origin.d.ts +0 -2
- package/dataflow/origin/dfg-get-symbol-refs.d.ts +5 -7
- package/dataflow/origin/dfg-get-symbol-refs.js +6 -8
- package/dataflow/processor.d.ts +0 -1
- package/dataflow/processor.js +0 -1
- package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -0
- package/documentation/data/dfg/doc-data-dfg-util.js +6 -0
- package/documentation/data/faq/faqs.d.ts +5 -0
- package/documentation/data/faq/faqs.js +78 -0
- package/documentation/data/faq/wiki-faq-store.d.ts +18 -0
- package/documentation/data/faq/wiki-faq-store.js +75 -0
- package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
- package/documentation/data/server/doc-data-server-messages.js +4 -63
- package/documentation/doc-util/doc-auto-gen.d.ts +6 -0
- package/documentation/doc-util/doc-auto-gen.js +6 -0
- package/documentation/doc-util/doc-benchmarks.d.ts +12 -0
- package/documentation/doc-util/doc-benchmarks.js +12 -0
- package/documentation/doc-util/doc-cfg.d.ts +7 -1
- package/documentation/doc-util/doc-cfg.js +9 -0
- package/documentation/doc-util/doc-cli-option.d.ts +9 -0
- package/documentation/doc-util/doc-cli-option.js +9 -0
- package/documentation/doc-util/doc-code.d.ts +24 -0
- package/documentation/doc-util/doc-code.js +24 -0
- package/documentation/doc-util/doc-dfg.d.ts +7 -1
- package/documentation/doc-util/doc-dfg.js +9 -0
- package/documentation/doc-util/doc-env.d.ts +3 -0
- package/documentation/doc-util/doc-env.js +3 -0
- package/documentation/doc-util/doc-escape.d.ts +0 -1
- package/documentation/doc-util/doc-escape.js +0 -1
- package/documentation/doc-util/doc-files.d.ts +11 -0
- package/documentation/doc-util/doc-files.js +15 -4
- package/documentation/doc-util/doc-general.d.ts +6 -0
- package/documentation/doc-util/doc-general.js +6 -0
- package/documentation/doc-util/doc-normalized-ast.d.ts +7 -1
- package/documentation/doc-util/doc-normalized-ast.js +6 -0
- package/documentation/doc-util/doc-query.d.ts +15 -0
- package/documentation/doc-util/doc-query.js +17 -2
- package/documentation/doc-util/doc-repl.d.ts +6 -0
- package/documentation/doc-util/doc-repl.js +6 -0
- package/documentation/doc-util/doc-search.d.ts +15 -0
- package/documentation/doc-util/doc-search.js +17 -2
- package/documentation/doc-util/doc-server-message.d.ts +13 -1
- package/documentation/doc-util/doc-server-message.js +13 -1
- package/documentation/doc-util/doc-structure.d.ts +9 -0
- package/documentation/doc-util/doc-structure.js +10 -1
- package/documentation/doc-util/doc-types.d.ts +42 -0
- package/documentation/doc-util/doc-types.js +42 -0
- package/documentation/print-analyzer-wiki.js +4 -0
- package/documentation/print-core-wiki.d.ts +3 -0
- package/documentation/print-core-wiki.js +5 -2
- package/documentation/print-dataflow-graph-wiki.js +5 -5
- package/documentation/print-faq-wiki.js +3 -75
- package/documentation/print-interface-wiki.js +1 -1
- package/documentation/print-onboarding-wiki.js +1 -1
- package/documentation/print-query-wiki.js +4 -34
- package/documentation/print-readme.js +105 -0
- package/engines.d.ts +1 -1
- package/linter/linter-executor.d.ts +6 -3
- package/linter/linter-executor.js +3 -0
- package/linter/linter-format.d.ts +8 -0
- package/linter/linter-format.js +8 -0
- package/linter/rules/absolute-path.d.ts +3 -4
- package/linter/rules/dataframe-access-validation.d.ts +3 -4
- package/linter/rules/dataframe-access-validation.js +9 -11
- package/linter/rules/dead-code.d.ts +1 -1
- package/linter/rules/deprecated-functions.d.ts +1 -1
- package/linter/rules/file-path-validity.d.ts +1 -2
- package/linter/rules/function-finder-util.d.ts +1 -2
- package/linter/rules/naming-convention.d.ts +13 -2
- package/linter/rules/naming-convention.js +13 -1
- package/linter/rules/network-functions.d.ts +1 -1
- package/linter/rules/seeded-randomness.d.ts +1 -2
- package/linter/rules/unused-definition.d.ts +2 -3
- package/linter/rules/useless-loop.d.ts +1 -2
- package/package.json +2 -2
- package/project/cache/flowr-analyzer-cache.d.ts +2 -9
- package/project/cache/flowr-analyzer-cache.js +0 -6
- package/project/context/flowr-analyzer-context.d.ts +3 -6
- package/project/context/flowr-analyzer-dependencies-context.d.ts +0 -1
- package/project/context/flowr-analyzer-files-context.d.ts +2 -4
- package/project/context/flowr-file.d.ts +0 -1
- package/project/flowr-analyzer-builder.d.ts +1 -3
- package/project/flowr-analyzer-builder.js +5 -6
- package/project/flowr-analyzer.d.ts +34 -25
- package/project/flowr-analyzer.js +10 -11
- package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +1 -1
- package/project/plugins/file-plugins/flowr-description-file.d.ts +1 -3
- package/project/plugins/file-plugins/flowr-description-file.js +0 -1
- package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
- package/queries/base-query-format.d.ts +2 -2
- package/queries/catalog/call-context-query/call-context-query-executor.d.ts +3 -0
- package/queries/catalog/call-context-query/call-context-query-executor.js +3 -0
- package/queries/catalog/call-context-query/call-context-query-format.d.ts +3 -3
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +11 -2
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +9 -0
- package/queries/catalog/cluster-query/cluster-query-executor.d.ts +3 -0
- package/queries/catalog/cluster-query/cluster-query-executor.js +3 -0
- package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
- package/queries/catalog/config-query/config-query-executor.d.ts +3 -0
- package/queries/catalog/config-query/config-query-executor.js +3 -0
- package/queries/catalog/config-query/config-query-format.d.ts +5 -2
- package/queries/catalog/config-query/config-query-format.js +13 -16
- package/queries/catalog/control-flow-query/control-flow-query-executor.d.ts +3 -0
- package/queries/catalog/control-flow-query/control-flow-query-executor.js +3 -0
- package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +3 -3
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.d.ts +3 -0
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +3 -0
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
- package/queries/catalog/dataflow-query/dataflow-query-executor.d.ts +3 -0
- package/queries/catalog/dataflow-query/dataflow-query-executor.js +3 -0
- package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
- package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +4 -1
- package/queries/catalog/dependencies-query/dependencies-query-executor.js +7 -4
- package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +4 -1
- package/queries/catalog/dependencies-query/dependencies-query-format.js +4 -1
- package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +4 -1
- package/queries/catalog/df-shape-query/df-shape-query-executor.js +8 -4
- package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +10 -3
- package/queries/catalog/df-shape-query/df-shape-query-format.js +24 -5
- package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +3 -0
- package/queries/catalog/happens-before-query/happens-before-query-executor.js +3 -0
- package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
- package/queries/catalog/id-map-query/id-map-query-executor.d.ts +3 -0
- package/queries/catalog/id-map-query/id-map-query-executor.js +3 -0
- package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +3 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +3 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +2 -2
- package/queries/catalog/linter-query/linter-query-executor.d.ts +4 -0
- package/queries/catalog/linter-query/linter-query-executor.js +4 -0
- package/queries/catalog/linter-query/linter-query-format.d.ts +12 -3
- package/queries/catalog/linter-query/linter-query-format.js +67 -0
- package/queries/catalog/location-map-query/location-map-query-executor.d.ts +4 -0
- package/queries/catalog/location-map-query/location-map-query-executor.js +5 -1
- package/queries/catalog/location-map-query/location-map-query-format.d.ts +7 -1
- package/queries/catalog/location-map-query/location-map-query-format.js +12 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.d.ts +3 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.js +3 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
- package/queries/catalog/origin-query/origin-query-executor.d.ts +7 -1
- package/queries/catalog/origin-query/origin-query-executor.js +6 -0
- package/queries/catalog/origin-query/origin-query-format.d.ts +7 -1
- package/queries/catalog/origin-query/origin-query-format.js +17 -1
- package/queries/catalog/project-query/project-query-executor.d.ts +3 -0
- package/queries/catalog/project-query/project-query-executor.js +3 -0
- package/queries/catalog/project-query/project-query-format.d.ts +1 -1
- package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +6 -0
- package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +6 -0
- package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +7 -1
- package/queries/catalog/resolve-value-query/resolve-value-query-format.js +19 -1
- package/queries/catalog/search-query/search-query-executor.d.ts +3 -0
- package/queries/catalog/search-query/search-query-executor.js +3 -0
- package/queries/catalog/search-query/search-query-format.d.ts +1 -1
- package/queries/catalog/static-slice-query/static-slice-query-executor.d.ts +9 -0
- package/queries/catalog/static-slice-query/static-slice-query-executor.js +9 -0
- package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +7 -1
- package/queries/catalog/static-slice-query/static-slice-query-format.js +17 -0
- package/queries/query-print.d.ts +20 -4
- package/queries/query-print.js +18 -2
- package/queries/query.d.ts +85 -55
- package/queries/query.js +35 -23
- package/queries/virtual-query/virtual-queries.d.ts +1 -2
- package/r-bridge/data/get.d.ts +6 -0
- package/r-bridge/data/get.js +6 -0
- package/r-bridge/lang-4.x/ast/model/collect.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/collect.js +0 -1
- package/r-bridge/lang-4.x/ast/model/model.d.ts +8 -11
- package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +3 -0
- package/r-bridge/lang-4.x/ast/model/operators.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +6 -7
- package/r-bridge/lang-4.x/ast/model/processing/decorate.js +6 -6
- package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/node-id.js +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +1 -2
- package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/visitor.js +0 -1
- package/r-bridge/lang-4.x/ast/model/type.d.ts +4 -5
- package/r-bridge/lang-4.x/ast/model/type.js +4 -5
- package/r-bridge/lang-4.x/ast/model/versions.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/versions.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +4 -5
- package/r-bridge/lang-4.x/ast/parser/json/parser.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/control/normalize-if-then.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.d.ts +1 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.d.ts +4 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.d.ts +4 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-binary.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.d.ts +9 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.js +9 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.d.ts +1 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.d.ts +1 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.d.ts +14 -5
- package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.js +13 -6
- package/r-bridge/lang-4.x/convert-values.d.ts +12 -1
- package/r-bridge/lang-4.x/convert-values.js +12 -1
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +7 -2
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +17 -0
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +13 -1
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +48 -19
- package/r-bridge/parser.d.ts +28 -7
- package/r-bridge/retriever.d.ts +16 -1
- package/r-bridge/retriever.js +15 -0
- package/r-bridge/shell-executor.d.ts +3 -3
- package/r-bridge/shell-executor.js +6 -1
- package/r-bridge/shell.d.ts +24 -23
- package/r-bridge/shell.js +37 -31
- package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -1
- package/reconstruct/auto-select/magic-comments.d.ts +1 -2
- package/reconstruct/auto-select/magic-comments.js +1 -2
- package/reconstruct/reconstruct.d.ts +1 -3
- package/reconstruct/reconstruct.js +0 -2
- package/search/flowr-search-builder.d.ts +12 -5
- package/search/flowr-search-builder.js +7 -2
- package/search/flowr-search-executor.d.ts +3 -3
- package/search/flowr-search-filters.d.ts +14 -1
- package/search/flowr-search-filters.js +13 -0
- package/search/flowr-search-printer.d.ts +6 -0
- package/search/flowr-search-printer.js +6 -0
- package/search/flowr-search-traverse.d.ts +1 -1
- package/search/flowr-search.d.ts +3 -3
- package/search/search-executor/search-enrichers.d.ts +9 -6
- package/search/search-executor/search-enrichers.js +3 -0
- package/search/search-executor/search-generators.d.ts +19 -10
- package/search/search-executor/search-generators.js +49 -2
- package/search/search-executor/search-mappers.d.ts +8 -5
- package/search/search-executor/search-mappers.js +3 -0
- package/search/search-executor/search-transformer.d.ts +19 -16
- package/search/search-executor/search-transformer.js +3 -0
- package/slicing/criterion/collect-all.d.ts +10 -10
- package/slicing/criterion/parse.d.ts +4 -2
- package/slicing/criterion/parse.js +4 -2
- package/slicing/static/fingerprint.d.ts +9 -1
- package/slicing/static/fingerprint.js +8 -0
- package/slicing/static/slice-call.d.ts +2 -2
- package/slicing/static/static-slicer.d.ts +8 -4
- package/slicing/static/static-slicer.js +5 -1
- package/slicing/static/visiting-queue.d.ts +1 -1
- package/statistics/features/common-syntax-probability.d.ts +10 -1
- package/statistics/features/common-syntax-probability.js +9 -0
- package/statistics/features/feature.d.ts +0 -4
- package/statistics/features/feature.js +0 -1
- package/statistics/features/post-processing.d.ts +6 -0
- package/statistics/features/post-processing.js +6 -0
- package/statistics/features/supported/assignments/post-process.d.ts +3 -0
- package/statistics/features/supported/assignments/post-process.js +3 -0
- package/statistics/features/supported/comments/post-process.d.ts +3 -0
- package/statistics/features/supported/comments/post-process.js +3 -0
- package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
- package/statistics/features/supported/control-flow/post-process.js +3 -0
- package/statistics/features/supported/data-access/data-access.d.ts +1 -1
- package/statistics/features/supported/data-access/post-process.d.ts +3 -0
- package/statistics/features/supported/data-access/post-process.js +3 -0
- package/statistics/features/supported/defined-functions/defined-functions.d.ts +1 -1
- package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
- package/statistics/features/supported/expression-list/post-process.js +3 -0
- package/statistics/features/supported/loops/post-process.d.ts +3 -0
- package/statistics/features/supported/loops/post-process.js +3 -0
- package/statistics/features/supported/used-functions/used-functions.d.ts +1 -1
- package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
- package/statistics/features/supported/used-packages/post-process.js +3 -0
- package/statistics/features/supported/values/post-process.d.ts +3 -0
- package/statistics/features/supported/values/post-process.js +3 -0
- package/statistics/features/supported/variables/post-process.d.ts +7 -1
- package/statistics/features/supported/variables/post-process.js +6 -0
- package/statistics/meta-statistics.d.ts +8 -9
- package/statistics/output/file-provider.d.ts +5 -6
- package/statistics/output/file-provider.js +5 -6
- package/statistics/output/print-stats.d.ts +13 -1
- package/statistics/output/print-stats.js +12 -0
- package/statistics/output/statistics-file.d.ts +1 -2
- package/statistics/output/statistics-file.js +0 -1
- package/statistics/statistics.d.ts +3 -4
- package/statistics/statistics.js +1 -2
- package/statistics/summarizer/auto-detect.d.ts +3 -0
- package/statistics/summarizer/auto-detect.js +3 -0
- package/statistics/summarizer/post-process/clusterer.d.ts +3 -4
- package/statistics/summarizer/post-process/clusterer.js +0 -2
- package/statistics/summarizer/post-process/file-based-count.d.ts +0 -1
- package/statistics/summarizer/post-process/file-based-count.js +0 -1
- package/statistics/summarizer/post-process/histogram.d.ts +0 -2
- package/statistics/summarizer/post-process/histogram.js +0 -2
- package/statistics/summarizer/post-process/post-process-output.d.ts +2 -4
- package/statistics/summarizer/post-process/post-process-output.js +0 -3
- package/statistics/summarizer/second-phase/process.d.ts +5 -3
- package/statistics/summarizer/second-phase/process.js +3 -1
- package/statistics/summarizer/summarizer.d.ts +1 -2
- package/util/assert.d.ts +52 -2
- package/util/assert.js +52 -2
- package/util/collections/arrays.d.ts +10 -5
- package/util/collections/arrays.js +10 -5
- package/util/collections/defaultmap.d.ts +11 -11
- package/util/collections/defaultmap.js +11 -11
- package/util/containers.d.ts +2 -7
- package/util/containers.js +0 -5
- package/util/diff-graph.d.ts +0 -1
- package/util/diff-graph.js +0 -1
- package/util/diff.d.ts +3 -1
- package/util/diff.js +3 -1
- package/util/files.d.ts +11 -11
- package/util/files.js +10 -10
- package/util/formats/adapter.d.ts +9 -0
- package/util/formats/adapter.js +9 -0
- package/util/formats/adapters/rmd-adapter.d.ts +10 -1
- package/util/formats/adapters/rmd-adapter.js +10 -1
- package/util/html-hover-over.d.ts +5 -0
- package/util/html-hover-over.js +5 -0
- package/util/json.d.ts +13 -0
- package/util/json.js +13 -0
- package/util/log.d.ts +2 -2
- package/util/log.js +2 -2
- package/util/mermaid/ast.d.ts +3 -0
- package/util/mermaid/ast.js +3 -0
- package/util/mermaid/cfg.d.ts +1 -1
- package/util/mermaid/dfg.d.ts +12 -4
- package/util/mermaid/dfg.js +9 -1
- package/util/mermaid/mermaid.d.ts +6 -1
- package/util/mermaid/mermaid.js +6 -1
- package/util/numbers.d.ts +7 -0
- package/util/numbers.js +7 -0
- package/util/objects.d.ts +0 -2
- package/util/os.d.ts +3 -0
- package/util/os.js +3 -0
- package/util/parallel.d.ts +4 -4
- package/util/parallel.js +4 -4
- package/util/prefix.d.ts +0 -1
- package/util/prefix.js +0 -1
- package/util/quads.d.ts +14 -17
- package/util/quads.js +3 -5
- package/util/r-value.d.ts +10 -1
- package/util/r-value.js +21 -0
- package/util/random.d.ts +3 -0
- package/util/random.js +3 -0
- package/util/range.d.ts +9 -3
- package/util/range.js +15 -2
- package/util/schema.d.ts +14 -1
- package/util/schema.js +15 -2
- package/util/simple-df/dfg-view.d.ts +4 -1
- package/util/simple-df/dfg-view.js +4 -1
- package/util/summarizer.d.ts +9 -1
- package/util/summarizer.js +9 -0
- package/util/text/ansi.d.ts +3 -0
- package/util/text/ansi.js +3 -0
- package/util/text/args.d.ts +2 -4
- package/util/text/args.js +7 -5
- package/util/text/text.d.ts +4 -0
- package/util/text/text.js +4 -0
- package/util/text/time.d.ts +0 -1
- package/util/text/time.js +0 -1
- package/util/version.d.ts +12 -3
- package/util/version.js +12 -3
- package/abstract-interpretation/data-frame/domain.d.ts +0 -107
- package/abstract-interpretation/data-frame/domain.js +0 -315
- package/abstract-interpretation/domains/set-bounded-set-domain.d.ts +0 -43
- package/abstract-interpretation/domains/set-bounded-set-domain.js +0 -164
- package/cli/repl/commands/repl-lineage.d.ts +0 -15
- package/cli/repl/commands/repl-lineage.js +0 -66
- package/cli/repl/server/messages/message-lineage.d.ts +0 -17
- package/cli/repl/server/messages/message-lineage.js +0 -25
- package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
- package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
package/r-bridge/parser.d.ts
CHANGED
|
@@ -1,19 +1,39 @@
|
|
|
1
1
|
import type { RParseRequest, RParseRequests } from './retriever';
|
|
2
|
-
import type { RShell } from './shell';
|
|
2
|
+
import type { OutputCollectorConfiguration, RShell } from './shell';
|
|
3
3
|
import type { RShellExecutor } from './shell-executor';
|
|
4
4
|
import type { TreeSitterExecutor } from './lang-4.x/tree-sitter/tree-sitter-executor';
|
|
5
|
+
import type { Query, QueryCapture } from 'web-tree-sitter';
|
|
6
|
+
import type { FlowrAnalysisProvider } from '../project/flowr-analyzer';
|
|
5
7
|
interface ParserContent<T> {
|
|
6
8
|
readonly name: string;
|
|
7
|
-
|
|
9
|
+
information(analyzer: FlowrAnalysisProvider): BaseParserInformation;
|
|
8
10
|
parse(request: RParseRequest): T;
|
|
9
11
|
close(): void;
|
|
10
12
|
}
|
|
11
|
-
export interface
|
|
12
|
-
name:
|
|
13
|
+
export interface BaseParserInformation {
|
|
14
|
+
readonly name: KnownParserName;
|
|
13
15
|
}
|
|
14
|
-
export interface
|
|
15
|
-
name:
|
|
16
|
-
rVersion: string
|
|
16
|
+
export interface BaseRShellInformation extends BaseParserInformation {
|
|
17
|
+
readonly name: 'r-shell';
|
|
18
|
+
rVersion(): Promise<string>;
|
|
19
|
+
}
|
|
20
|
+
export interface RShellInformation extends BaseRShellInformation {
|
|
21
|
+
/**
|
|
22
|
+
* Sends a command to the underlying R engine and collects the output.
|
|
23
|
+
* @param command - The command to send to the R engine.
|
|
24
|
+
* @param addonConfig - Additional configuration for the output collector.
|
|
25
|
+
*/
|
|
26
|
+
sendCommandWithOutput(command: string, addonConfig?: Partial<OutputCollectorConfiguration>): Promise<string[]>;
|
|
27
|
+
}
|
|
28
|
+
export interface TreeSitterInformation extends BaseParserInformation {
|
|
29
|
+
readonly name: 'tree-sitter';
|
|
30
|
+
readonly grammarVersion: number;
|
|
31
|
+
/**
|
|
32
|
+
* Runs the given tree-sitter query using the underlying tree-sitter parser and returns the resulting capture.
|
|
33
|
+
* @param source - The tree-sitter query to run.
|
|
34
|
+
* @param force - Do not use the cache, instead force a new parse.
|
|
35
|
+
*/
|
|
36
|
+
treeSitterQuery(source: Query | string, force?: boolean): Promise<QueryCapture[]>;
|
|
17
37
|
}
|
|
18
38
|
export type SyncParser<T> = ParserContent<Awaited<T>> & {
|
|
19
39
|
readonly async?: false;
|
|
@@ -24,6 +44,7 @@ export type AsyncParser<T> = ParserContent<Promise<T>> & {
|
|
|
24
44
|
export type Parser<T> = SyncParser<T> | AsyncParser<T>;
|
|
25
45
|
export type KnownParser = RShell | RShellExecutor | TreeSitterExecutor;
|
|
26
46
|
export type KnownParserType = Awaited<ReturnType<KnownParser['parse']>>;
|
|
47
|
+
export type KnownParserInformation = ReturnType<KnownParser['information']>;
|
|
27
48
|
export type KnownParserName = KnownParser['name'];
|
|
28
49
|
export interface ParseRequiredInput<T> {
|
|
29
50
|
/** This is the {@link RShell}, {@link RShellExecutor} or {@link TreeSitterExecutor} connection to be used to obtain the original parses AST of the R code */
|
package/r-bridge/retriever.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type RShell } from './shell';
|
|
2
2
|
import type { AsyncOrSync } from 'ts-essentials';
|
|
3
3
|
import { RShellExecutor } from './shell-executor';
|
|
4
|
-
import type
|
|
4
|
+
import { type NormalizedAst } from './lang-4.x/ast/model/processing/decorate';
|
|
5
5
|
import type { SupportedFormats } from '../util/formats/adapter-format';
|
|
6
6
|
export declare const fileProtocol = "file://";
|
|
7
7
|
export interface ParseRequestAdditionalInfoBase {
|
|
@@ -46,15 +46,30 @@ export type RParseRequest = RParseRequestFromFile | RParseRequestFromText;
|
|
|
46
46
|
* Several requests that can be passed along to {@link retrieveParseDataFromRCode}.
|
|
47
47
|
*/
|
|
48
48
|
export type RParseRequests = RParseRequest | ReadonlyArray<RParseRequest>;
|
|
49
|
+
/**
|
|
50
|
+
* Type guard for {@link RParseRequest}
|
|
51
|
+
*/
|
|
49
52
|
export declare function isParseRequest(request: unknown): request is RParseRequest;
|
|
50
53
|
export declare function requestFromInput(input: `${typeof fileProtocol}${string}`): RParseRequestFromFile;
|
|
51
54
|
export declare function requestFromInput(input: `${typeof fileProtocol}${string}`[]): RParseRequestFromFile[];
|
|
52
55
|
export declare function requestFromInput(input: string): RParseRequestFromText;
|
|
53
56
|
export declare function requestFromInput(input: readonly string[] | string): RParseRequests;
|
|
57
|
+
/**
|
|
58
|
+
* Creates a {@link RParseRequestProvider} that reads from the file system.
|
|
59
|
+
* Uses `fs.existsSync` to check for file existence.
|
|
60
|
+
* @see {@link requestProviderFromText} for a provider that reads from a text map.
|
|
61
|
+
*/
|
|
54
62
|
export declare function requestProviderFromFile(): RParseRequestProvider;
|
|
63
|
+
/**
|
|
64
|
+
* Creates a {@link RParseRequestProvider} that reads from the given text map.
|
|
65
|
+
* @see {@link requestProviderFromFile} for a provider that reads from the file system.
|
|
66
|
+
*/
|
|
55
67
|
export declare function requestProviderFromText(text: Readonly<{
|
|
56
68
|
[path: string]: string;
|
|
57
69
|
}>): RParseRequestProvider;
|
|
70
|
+
/**
|
|
71
|
+
* Checks whether the given {@link RParseRequest} is empty (has no content).
|
|
72
|
+
*/
|
|
58
73
|
export declare function isEmptyRequest(request: RParseRequest): boolean;
|
|
59
74
|
export declare function retrieveParseDataFromRCode(request: RParseRequest, shell: RShell): Promise<string>;
|
|
60
75
|
export declare function retrieveParseDataFromRCode(request: RParseRequest, shell: RShellExecutor): string;
|
package/r-bridge/retriever.js
CHANGED
|
@@ -25,6 +25,9 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
25
25
|
const path_1 = __importDefault(require("path"));
|
|
26
26
|
const adapter_1 = require("../util/formats/adapter");
|
|
27
27
|
exports.fileProtocol = 'file://';
|
|
28
|
+
/**
|
|
29
|
+
* Type guard for {@link RParseRequest}
|
|
30
|
+
*/
|
|
28
31
|
function isParseRequest(request) {
|
|
29
32
|
if (typeof request !== 'object' || request === null) {
|
|
30
33
|
return false;
|
|
@@ -50,6 +53,11 @@ function requestFromInput(input, fileTypeHint) {
|
|
|
50
53
|
return (0, adapter_1.requestFromText)(content, fileTypeHint);
|
|
51
54
|
}
|
|
52
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* Creates a {@link RParseRequestProvider} that reads from the file system.
|
|
58
|
+
* Uses `fs.existsSync` to check for file existence.
|
|
59
|
+
* @see {@link requestProviderFromText} for a provider that reads from a text map.
|
|
60
|
+
*/
|
|
53
61
|
function requestProviderFromFile() {
|
|
54
62
|
return {
|
|
55
63
|
exists(p, ignoreCase) {
|
|
@@ -76,6 +84,10 @@ function requestProviderFromFile() {
|
|
|
76
84
|
}
|
|
77
85
|
};
|
|
78
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Creates a {@link RParseRequestProvider} that reads from the given text map.
|
|
89
|
+
* @see {@link requestProviderFromFile} for a provider that reads from the file system.
|
|
90
|
+
*/
|
|
79
91
|
function requestProviderFromText(text) {
|
|
80
92
|
return {
|
|
81
93
|
exists(path, ignoreCase) {
|
|
@@ -92,6 +104,9 @@ function requestProviderFromText(text) {
|
|
|
92
104
|
}
|
|
93
105
|
};
|
|
94
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Checks whether the given {@link RParseRequest} is empty (has no content).
|
|
109
|
+
*/
|
|
95
110
|
function isEmptyRequest(request) {
|
|
96
111
|
return request.content.trim().length === 0;
|
|
97
112
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type RShellExecutionOptions } from './shell';
|
|
2
2
|
import type { SemVer } from 'semver';
|
|
3
|
-
import type { SyncParser } from './parser';
|
|
3
|
+
import type { BaseRShellInformation, SyncParser } from './parser';
|
|
4
4
|
import { type RParseRequest } from './retriever';
|
|
5
5
|
/**
|
|
6
6
|
* This is a synchronous alternative to the {@link RShell}.
|
|
@@ -23,12 +23,12 @@ export declare class RShellExecutor implements SyncParser<string> {
|
|
|
23
23
|
addPrerequisites(commands: string | string[]): this;
|
|
24
24
|
/**
|
|
25
25
|
* @returns the version of the R interpreter available to this executor.
|
|
26
|
-
*
|
|
27
26
|
* @see {@link RShellExecutor#usedRVersion}
|
|
28
27
|
* @see {@link RShell#rVersion}
|
|
29
28
|
* @see {@link RShell#usedRVersion}
|
|
30
29
|
*/
|
|
31
30
|
rVersion(): Promise<string | 'unknown' | 'none'>;
|
|
31
|
+
information(): BaseRShellInformation;
|
|
32
32
|
/**
|
|
33
33
|
* Instead of returning a promise, this method returns the version of the R interpreter available to this executor,
|
|
34
34
|
* in the SemVer format.
|
|
@@ -40,7 +40,6 @@ class RShellExecutor {
|
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
42
|
* @returns the version of the R interpreter available to this executor.
|
|
43
|
-
*
|
|
44
43
|
* @see {@link RShellExecutor#usedRVersion}
|
|
45
44
|
* @see {@link RShell#rVersion}
|
|
46
45
|
* @see {@link RShell#usedRVersion}
|
|
@@ -48,6 +47,12 @@ class RShellExecutor {
|
|
|
48
47
|
rVersion() {
|
|
49
48
|
return Promise.resolve(this.usedRVersion()?.format() ?? 'unknown');
|
|
50
49
|
}
|
|
50
|
+
information() {
|
|
51
|
+
return {
|
|
52
|
+
name: 'r-shell',
|
|
53
|
+
rVersion: () => Promise.resolve(this.rVersion())
|
|
54
|
+
};
|
|
55
|
+
}
|
|
51
56
|
/**
|
|
52
57
|
* Instead of returning a promise, this method returns the version of the R interpreter available to this executor,
|
|
53
58
|
* in the SemVer format.
|
package/r-bridge/shell.d.ts
CHANGED
|
@@ -2,13 +2,13 @@ import { type MergeableRecord } from '../util/objects';
|
|
|
2
2
|
import type { SemVer } from 'semver';
|
|
3
3
|
import type { AsyncOrSync } from 'ts-essentials';
|
|
4
4
|
import type { RShellEngineConfig } from '../config';
|
|
5
|
-
import type { AsyncParser } from './parser';
|
|
6
|
-
import type
|
|
5
|
+
import type { AsyncParser, RShellInformation } from './parser';
|
|
6
|
+
import { type RParseRequest } from './retriever';
|
|
7
7
|
export type OutputStreamSelector = 'stdout' | 'stderr' | 'both';
|
|
8
8
|
export interface CollectorTimeout extends MergeableRecord {
|
|
9
9
|
/**
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
* number of milliseconds to wait for the collection to finish
|
|
11
|
+
*/
|
|
12
12
|
ms: number;
|
|
13
13
|
resetOnNewData: boolean;
|
|
14
14
|
/**
|
|
@@ -24,9 +24,9 @@ export interface OutputCollectorConfiguration extends MergeableRecord {
|
|
|
24
24
|
/** the streams to use to collect the output from */
|
|
25
25
|
from: OutputStreamSelector;
|
|
26
26
|
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
* a string marker to signal that the command was executed successfully.
|
|
28
|
+
* must not appear as a standalone line in the output. this is our hacky way of ensuring that we are done.
|
|
29
|
+
*/
|
|
30
30
|
postamble: string;
|
|
31
31
|
/** internal timeout configuration to use (see {@link CollectorTimeout}) */
|
|
32
32
|
timeout: CollectorTimeout;
|
|
@@ -69,6 +69,9 @@ export interface RShellOptions extends RShellSessionOptions {
|
|
|
69
69
|
readonly sessionName: string;
|
|
70
70
|
}
|
|
71
71
|
export declare const DEFAULT_R_PATH: string;
|
|
72
|
+
/**
|
|
73
|
+
*
|
|
74
|
+
*/
|
|
72
75
|
export declare function getDefaultRShellOptions(config?: RShellEngineConfig): RShellOptions;
|
|
73
76
|
/**
|
|
74
77
|
* The `RShell` represents an interactive session with the R interpreter.
|
|
@@ -88,6 +91,7 @@ export declare class RShell implements AsyncParser<string> {
|
|
|
88
91
|
private tempDirs;
|
|
89
92
|
constructor(config?: RShellEngineConfig, options?: Partial<RShellOptions>);
|
|
90
93
|
parse(request: RParseRequest): Promise<string>;
|
|
94
|
+
information(): RShellInformation;
|
|
91
95
|
private revive;
|
|
92
96
|
/**
|
|
93
97
|
* sends the given command directly to the current R session
|
|
@@ -103,22 +107,20 @@ export declare class RShell implements AsyncParser<string> {
|
|
|
103
107
|
*/
|
|
104
108
|
isPackageInstalled(packageName: string): Promise<boolean>;
|
|
105
109
|
/**
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
*/
|
|
110
|
+
* Send a command and collect the output
|
|
111
|
+
* @param command - The R command to execute (similar to {@link sendCommand})
|
|
112
|
+
* @param addonConfig - Further configuration on how and what to collect: see {@link OutputCollectorConfiguration},
|
|
113
|
+
* defaults are set in {@link DEFAULT_OUTPUT_COLLECTOR_CONFIGURATION}
|
|
114
|
+
*/
|
|
112
115
|
sendCommandWithOutput(command: string, addonConfig?: Partial<OutputCollectorConfiguration>): Promise<string[]>;
|
|
113
116
|
/**
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
*/
|
|
117
|
+
* execute multiple commands in order
|
|
118
|
+
* @see sendCommand
|
|
119
|
+
*/
|
|
118
120
|
sendCommands(...commands: readonly string[]): void;
|
|
119
121
|
/**
|
|
120
|
-
|
|
121
|
-
|
|
122
|
+
* clears the R environment using the `rm` command.
|
|
123
|
+
*/
|
|
122
124
|
clearEnvironment(): void;
|
|
123
125
|
/**
|
|
124
126
|
* Obtain the temporary directory used by R.
|
|
@@ -126,10 +128,9 @@ export declare class RShell implements AsyncParser<string> {
|
|
|
126
128
|
*/
|
|
127
129
|
obtainTmpDir(): Promise<string>;
|
|
128
130
|
/**
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
*/
|
|
131
|
+
* Close the current R session, makes the object effectively invalid (can no longer be reopened etc.)
|
|
132
|
+
* @returns true if the operation succeeds, false otherwise
|
|
133
|
+
*/
|
|
133
134
|
close(): boolean;
|
|
134
135
|
private _sendCommand;
|
|
135
136
|
}
|
package/r-bridge/shell.js
CHANGED
|
@@ -61,6 +61,9 @@ exports.DEFAULT_OUTPUT_COLLECTOR_CONFIGURATION = {
|
|
|
61
61
|
};
|
|
62
62
|
exports.DEFAULT_R_PATH = (0, os_1.getPlatform)() === 'windows' ? 'R.exe' : 'R';
|
|
63
63
|
let DEFAULT_R_SHELL_OPTIONS = undefined;
|
|
64
|
+
/**
|
|
65
|
+
*
|
|
66
|
+
*/
|
|
64
67
|
function getDefaultRShellOptions(config) {
|
|
65
68
|
if (!DEFAULT_R_SHELL_OPTIONS) {
|
|
66
69
|
DEFAULT_R_SHELL_OPTIONS = {
|
|
@@ -105,6 +108,15 @@ class RShell {
|
|
|
105
108
|
parse(request) {
|
|
106
109
|
return (0, retriever_1.retrieveParseDataFromRCode)(request, this);
|
|
107
110
|
}
|
|
111
|
+
information() {
|
|
112
|
+
return {
|
|
113
|
+
name: 'r-shell',
|
|
114
|
+
rVersion: async () => await this.rVersion(),
|
|
115
|
+
sendCommandWithOutput: (command, addonConfig) => {
|
|
116
|
+
return this.sendCommandWithOutput(command, addonConfig);
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
}
|
|
108
120
|
revive() {
|
|
109
121
|
if (this.options.revive === 0 /* RShellReviveOptions.Never */) {
|
|
110
122
|
return;
|
|
@@ -177,12 +189,11 @@ class RShell {
|
|
|
177
189
|
return result.length === 1 && result[0] === 'TRUE';
|
|
178
190
|
}
|
|
179
191
|
/**
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
*/
|
|
192
|
+
* Send a command and collect the output
|
|
193
|
+
* @param command - The R command to execute (similar to {@link sendCommand})
|
|
194
|
+
* @param addonConfig - Further configuration on how and what to collect: see {@link OutputCollectorConfiguration},
|
|
195
|
+
* defaults are set in {@link DEFAULT_OUTPUT_COLLECTOR_CONFIGURATION}
|
|
196
|
+
*/
|
|
186
197
|
async sendCommandWithOutput(command, addonConfig) {
|
|
187
198
|
const config = (0, objects_1.deepMergeObject)(exports.DEFAULT_OUTPUT_COLLECTOR_CONFIGURATION, addonConfig);
|
|
188
199
|
(0, log_1.expensiveTrace)(this.log, () => `> ${JSON.stringify(command)}`);
|
|
@@ -206,18 +217,17 @@ class RShell {
|
|
|
206
217
|
}
|
|
207
218
|
}
|
|
208
219
|
/**
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
*/
|
|
220
|
+
* execute multiple commands in order
|
|
221
|
+
* @see sendCommand
|
|
222
|
+
*/
|
|
213
223
|
sendCommands(...commands) {
|
|
214
224
|
for (const element of commands) {
|
|
215
225
|
this.sendCommand(element);
|
|
216
226
|
}
|
|
217
227
|
}
|
|
218
228
|
/**
|
|
219
|
-
|
|
220
|
-
|
|
229
|
+
* clears the R environment using the `rm` command.
|
|
230
|
+
*/
|
|
221
231
|
clearEnvironment() {
|
|
222
232
|
this.log.debug('clearing environment');
|
|
223
233
|
// run rm(list=ls()) but ignore 'flowr_get_ast', which is the compile command installed
|
|
@@ -234,10 +244,9 @@ class RShell {
|
|
|
234
244
|
return tempdir;
|
|
235
245
|
}
|
|
236
246
|
/**
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
*/
|
|
247
|
+
* Close the current R session, makes the object effectively invalid (can no longer be reopened etc.)
|
|
248
|
+
* @returns true if the operation succeeds, false otherwise
|
|
249
|
+
*/
|
|
241
250
|
close() {
|
|
242
251
|
return this.session.end([...this.tempDirs]);
|
|
243
252
|
}
|
|
@@ -294,15 +303,14 @@ class RShellSession {
|
|
|
294
303
|
this.write(`${data}${this.options.eol}`);
|
|
295
304
|
}
|
|
296
305
|
/**
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
*/
|
|
306
|
+
* Collect lines from the selected streams until the given condition is met or the timeout is reached
|
|
307
|
+
*
|
|
308
|
+
* This method does allow other listeners to consume the same input
|
|
309
|
+
* @param from - The stream(s) to collect the information from
|
|
310
|
+
* @param until - If the predicate returns true, this will stop the collection and resolve the promise
|
|
311
|
+
* @param timeout - Configuration for how and when to timeout
|
|
312
|
+
* @param action - Event to be performed after all listeners are installed, this might be the action that triggers the output you want to collect
|
|
313
|
+
*/
|
|
306
314
|
async collectLinesUntil(from, until, timeout, action) {
|
|
307
315
|
const result = [];
|
|
308
316
|
let handler;
|
|
@@ -344,13 +352,11 @@ class RShellSession {
|
|
|
344
352
|
});
|
|
345
353
|
}
|
|
346
354
|
/**
|
|
347
|
-
|
|
348
|
-
*
|
|
355
|
+
* close the current R session, makes the object effectively invalid (can no longer be reopened etc.)
|
|
349
356
|
* @param filesToUnlink - If set, these files will be unlinked before closing the session (e.g., to clean up tempfiles)
|
|
350
|
-
*
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
*/
|
|
357
|
+
* @returns true if the kill succeeds, false otherwise
|
|
358
|
+
* @see RShell#close
|
|
359
|
+
*/
|
|
354
360
|
end(filesToUnlink) {
|
|
355
361
|
if (filesToUnlink !== undefined) {
|
|
356
362
|
log_1.log.info(`unlinking ${filesToUnlink.length} files (${JSON.stringify(filesToUnlink)})`);
|
|
@@ -4,7 +4,6 @@ import type { ParentInformation, NormalizedAst } from '../../r-bridge/lang-4.x/a
|
|
|
4
4
|
* The structure of the predicate that should be used to determine
|
|
5
5
|
* if a given normalized node should be included in the reconstructed code,
|
|
6
6
|
* independent of if it is selected by the slice or not.
|
|
7
|
-
*
|
|
8
7
|
* @see reconstructToCode
|
|
9
8
|
* @see doNotAutoSelect
|
|
10
9
|
* @see autoSelectLibrary
|
|
@@ -7,10 +7,9 @@ import type { AutoSelectPredicate } from './auto-select-defaults';
|
|
|
7
7
|
* We support two formats:
|
|
8
8
|
* - Line comments in the form of `# flowr@include_next_line` or `# flowr@include_this_line`.
|
|
9
9
|
* - Block comments which start with `# flowr@include_start` and end with `# flowr@include_end`.
|
|
10
|
-
*
|
|
10
|
+
* This supports nesting, but they have to appear on a single line.
|
|
11
11
|
*
|
|
12
12
|
* Please note that these comments have to start exactly with this content to work.
|
|
13
|
-
*
|
|
14
13
|
* @param and - Predicate to composite this one with, If you do not pass a predicate, you may assume composition with
|
|
15
14
|
* {@link doNotAutoSelect}.
|
|
16
15
|
*/
|
|
@@ -40,10 +40,9 @@ const commentTriggerRegex = / flowr@(\w+)/;
|
|
|
40
40
|
* We support two formats:
|
|
41
41
|
* - Line comments in the form of `# flowr@include_next_line` or `# flowr@include_this_line`.
|
|
42
42
|
* - Block comments which start with `# flowr@include_start` and end with `# flowr@include_end`.
|
|
43
|
-
*
|
|
43
|
+
* This supports nesting, but they have to appear on a single line.
|
|
44
44
|
*
|
|
45
45
|
* Please note that these comments have to start exactly with this content to work.
|
|
46
|
-
*
|
|
47
46
|
* @param and - Predicate to composite this one with, If you do not pass a predicate, you may assume composition with
|
|
48
47
|
* {@link doNotAutoSelect}.
|
|
49
48
|
*/
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import type { NormalizedAst } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
7
7
|
import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
8
|
-
import type
|
|
8
|
+
import { type AutoSelectPredicate } from './auto-select/auto-select-defaults';
|
|
9
9
|
type Selection = ReadonlySet<NodeId>;
|
|
10
10
|
export declare const reconstructLogger: import("tslog").Logger<import("tslog").ILogObj>;
|
|
11
11
|
export interface ReconstructionResult {
|
|
@@ -15,11 +15,9 @@ export interface ReconstructionResult {
|
|
|
15
15
|
}
|
|
16
16
|
/**
|
|
17
17
|
* Reconstructs parts of a normalized R ast into R code on an expression basis.
|
|
18
|
-
*
|
|
19
18
|
* @param ast - The {@link NormalizedAst|normalized ast} to be used as a basis for reconstruction
|
|
20
19
|
* @param selection - The selection of nodes to be reconstructed (probably the {@link NodeId|NodeIds} identified by the slicer)
|
|
21
20
|
* @param autoSelectIf - A predicate that can be used to force the reconstruction of a node (for example to reconstruct library call statements, see {@link autoSelectLibrary}, {@link doNotAutoSelect})
|
|
22
|
-
*
|
|
23
21
|
* @returns The number of lines for which `autoSelectIf` triggered, as well as the reconstructed code itself.
|
|
24
22
|
*/
|
|
25
23
|
export declare function reconstructToCode(ast: NormalizedAst, selection: Selection, autoSelectIf?: AutoSelectPredicate): ReconstructionResult;
|
|
@@ -419,11 +419,9 @@ function removeOuterExpressionListIfApplicable(result, linesWithAutoSelected) {
|
|
|
419
419
|
}
|
|
420
420
|
/**
|
|
421
421
|
* Reconstructs parts of a normalized R ast into R code on an expression basis.
|
|
422
|
-
*
|
|
423
422
|
* @param ast - The {@link NormalizedAst|normalized ast} to be used as a basis for reconstruction
|
|
424
423
|
* @param selection - The selection of nodes to be reconstructed (probably the {@link NodeId|NodeIds} identified by the slicer)
|
|
425
424
|
* @param autoSelectIf - A predicate that can be used to force the reconstruction of a node (for example to reconstruct library call statements, see {@link autoSelectLibrary}, {@link doNotAutoSelect})
|
|
426
|
-
*
|
|
427
425
|
* @returns The number of lines for which `autoSelectIf` triggered, as well as the reconstructed code itself.
|
|
428
426
|
*/
|
|
429
427
|
function reconstructToCode(ast, selection, autoSelectIf = auto_select_defaults_1.doNotAutoSelect) {
|
|
@@ -6,9 +6,9 @@ import type { FlowrSearchTransformerNode, GetOutputOfTransformer, TransformerNam
|
|
|
6
6
|
import type { SlicingCriteria } from '../slicing/criterion/parse';
|
|
7
7
|
import type { ParentInformation } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
8
8
|
import type { Enrichment, EnrichmentElementArguments } from './search-executor/search-enrichers';
|
|
9
|
-
import type
|
|
10
|
-
import { Mapper } from './search-executor/search-mappers';
|
|
9
|
+
import { type MapperArguments, Mapper } from './search-executor/search-mappers';
|
|
11
10
|
import type { Query } from '../queries/query';
|
|
11
|
+
import type TreeSitter from 'web-tree-sitter';
|
|
12
12
|
type FlowrCriteriaReturn<C extends SlicingCriteria> = FlowrSearchElements<ParentInformation, C extends [] ? never : C extends [infer _] ? [
|
|
13
13
|
FlowrSearchElement<ParentInformation>
|
|
14
14
|
] : FlowrSearchElement<ParentInformation>[]>;
|
|
@@ -29,6 +29,11 @@ export declare const FlowrSearchGenerator: {
|
|
|
29
29
|
* Please note that, due to the fact that not every query involves dataflow nodes, the search may not contain any elements at all for certain queries.
|
|
30
30
|
*/
|
|
31
31
|
readonly fromQuery: (...from: readonly Query[]) => FlowrSearchBuilder<"from-query", [], ParentInformation, FlowrSearchElements<ParentInformation, FlowrSearchElement<ParentInformation>[]>>;
|
|
32
|
+
/**
|
|
33
|
+
* Initializes a new search query based on the results of the given tree-sitter syntax query.
|
|
34
|
+
* Please note that this search generator is incompatible with the {@link RShell} parser and only works when using flowR with the {@link TreeSitterExecutor}.
|
|
35
|
+
*/
|
|
36
|
+
readonly syntax: (source: TreeSitter.Query | string, ...captures: readonly string[]) => FlowrSearchBuilder<"from-query", [], ParentInformation, FlowrSearchElements<ParentInformation, FlowrSearchElement<ParentInformation>[]>>;
|
|
32
37
|
/**
|
|
33
38
|
* Returns all elements (nodes/dataflow vertices) from the given data.
|
|
34
39
|
*/
|
|
@@ -87,6 +92,11 @@ export declare const Q: {
|
|
|
87
92
|
* Please note that, due to the fact that not every query involves dataflow nodes, the search may not contain any elements at all for certain queries.
|
|
88
93
|
*/
|
|
89
94
|
readonly fromQuery: (...from: readonly Query[]) => FlowrSearchBuilder<"from-query", [], ParentInformation, FlowrSearchElements<ParentInformation, FlowrSearchElement<ParentInformation>[]>>;
|
|
95
|
+
/**
|
|
96
|
+
* Initializes a new search query based on the results of the given tree-sitter syntax query.
|
|
97
|
+
* Please note that this search generator is incompatible with the {@link RShell} parser and only works when using flowR with the {@link TreeSitterExecutor}.
|
|
98
|
+
*/
|
|
99
|
+
readonly syntax: (source: TreeSitter.Query | string, ...captures: readonly string[]) => FlowrSearchBuilder<"from-query", [], ParentInformation, FlowrSearchElements<ParentInformation, FlowrSearchElement<ParentInformation>[]>>;
|
|
90
100
|
/**
|
|
91
101
|
* Returns all elements (nodes/dataflow vertices) from the given data.
|
|
92
102
|
*/
|
|
@@ -130,7 +140,6 @@ export type FlowrSearchBuilderType<Generator extends GeneratorNames = GeneratorN
|
|
|
130
140
|
/**
|
|
131
141
|
* The search query is a combination of a generator and a list of transformers
|
|
132
142
|
* and allows this view to pass such queries in a serialized form.
|
|
133
|
-
*
|
|
134
143
|
* @typeParam Transformers - The list of transformers that are applied to the generator's output.
|
|
135
144
|
*/
|
|
136
145
|
export interface FlowrSearch<Info = ParentInformation, _Generator extends GeneratorNames = GeneratorNames, _Transformers extends readonly TransformerNames[] = readonly TransformerNames[], _ElementType = FlowrSearchElements<Info, FlowrSearchElement<Info>[]>> {
|
|
@@ -143,7 +152,6 @@ type FlowrSearchBuilderOut<Generator extends GeneratorNames, Transformers extend
|
|
|
143
152
|
* Please use the {@link Q} object to create an object of this class!
|
|
144
153
|
* In the end, you _can_ freeze the search by calling {@link FlowrSearchBuilder#build},
|
|
145
154
|
* however, the search executors may do that for you.
|
|
146
|
-
*
|
|
147
155
|
* @see {@link FlowrSearchGenerator}
|
|
148
156
|
* @see {@link FlowrSearch}
|
|
149
157
|
* @see {@link FlowrSearchLike}
|
|
@@ -207,7 +215,6 @@ export declare class FlowrSearchBuilder<Generator extends GeneratorNames, Transf
|
|
|
207
215
|
unique(): FlowrSearchBuilderOut<Generator, Transformers, Info, 'unique'>;
|
|
208
216
|
/**
|
|
209
217
|
* Construct the final search (this may happen automatically with most search handlers).
|
|
210
|
-
*
|
|
211
218
|
* @param shouldOptimize - This may optimize the search.
|
|
212
219
|
*/
|
|
213
220
|
build(shouldOptimize?: boolean): FlowrSearch<Info, Generator, Transformers, ElementType>;
|
|
@@ -26,6 +26,13 @@ exports.FlowrSearchGenerator = {
|
|
|
26
26
|
fromQuery(...from) {
|
|
27
27
|
return new FlowrSearchBuilder({ type: 'generator', name: 'from-query', args: { from } });
|
|
28
28
|
},
|
|
29
|
+
/**
|
|
30
|
+
* Initializes a new search query based on the results of the given tree-sitter syntax query.
|
|
31
|
+
* Please note that this search generator is incompatible with the {@link RShell} parser and only works when using flowR with the {@link TreeSitterExecutor}.
|
|
32
|
+
*/
|
|
33
|
+
syntax(source, ...captures) {
|
|
34
|
+
return new FlowrSearchBuilder({ type: 'generator', name: 'syntax', args: { source, captures } });
|
|
35
|
+
},
|
|
29
36
|
/**
|
|
30
37
|
* Returns all elements (nodes/dataflow vertices) from the given data.
|
|
31
38
|
*/
|
|
@@ -95,7 +102,6 @@ exports.Q = exports.FlowrSearchGenerator;
|
|
|
95
102
|
* Please use the {@link Q} object to create an object of this class!
|
|
96
103
|
* In the end, you _can_ freeze the search by calling {@link FlowrSearchBuilder#build},
|
|
97
104
|
* however, the search executors may do that for you.
|
|
98
|
-
*
|
|
99
105
|
* @see {@link FlowrSearchGenerator}
|
|
100
106
|
* @see {@link FlowrSearch}
|
|
101
107
|
* @see {@link FlowrSearchLike}
|
|
@@ -204,7 +210,6 @@ class FlowrSearchBuilder {
|
|
|
204
210
|
}
|
|
205
211
|
/**
|
|
206
212
|
* Construct the final search (this may happen automatically with most search handlers).
|
|
207
|
-
*
|
|
208
213
|
* @param shouldOptimize - This may optimize the search.
|
|
209
214
|
*/
|
|
210
215
|
build(shouldOptimize = true) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type {
|
|
1
|
+
import { type FlowrSearch, type FlowrSearchLike, type SearchOutput } from './flowr-search-builder';
|
|
2
|
+
import type { ReadonlyFlowrAnalysisProvider } from '../project/flowr-analyzer';
|
|
3
3
|
export type GetSearchElements<S> = S extends FlowrSearch<infer _, infer _, infer _, infer Elements> ? Elements : never;
|
|
4
4
|
/**
|
|
5
5
|
* Run a search with the given search query and data.
|
|
6
6
|
*/
|
|
7
|
-
export declare function runSearch<S extends FlowrSearchLike>(search: S, input:
|
|
7
|
+
export declare function runSearch<S extends FlowrSearchLike>(search: S, input: ReadonlyFlowrAnalysisProvider): Promise<GetSearchElements<SearchOutput<S>>>;
|
|
@@ -2,7 +2,7 @@ import { RType } from '../r-bridge/lang-4.x/ast/model/type';
|
|
|
2
2
|
import { VertexType } from '../dataflow/graph/vertex';
|
|
3
3
|
import type { ParentInformation } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
4
4
|
import type { FlowrSearchElement } from './flowr-search';
|
|
5
|
-
import type
|
|
5
|
+
import { type Enrichment } from './search-executor/search-enrichers';
|
|
6
6
|
import type { BuiltInMappingName } from '../dataflow/environments/built-in';
|
|
7
7
|
import type { DataflowInformation } from '../dataflow/info';
|
|
8
8
|
export type FlowrFilterName = keyof typeof FlowrFilters;
|
|
@@ -52,6 +52,9 @@ export interface OriginKindArgs {
|
|
|
52
52
|
matchType?: 'some' | 'every';
|
|
53
53
|
keepNonFunctionCalls?: boolean;
|
|
54
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Helper to create a regular expression that matches function names, ignoring their package.
|
|
57
|
+
*/
|
|
55
58
|
export declare function testFunctionsIgnoringPackage(functions: readonly string[]): RegExp;
|
|
56
59
|
type ValidFilterTypes<F extends FlowrFilter = FlowrFilter> = FlowrFilterName | FlowrFilterWithArgs<F, FlowrFilterArgs<F>> | RType | VertexType;
|
|
57
60
|
/**
|
|
@@ -100,7 +103,14 @@ export declare class FlowrFilterCombinator {
|
|
|
100
103
|
private unpack;
|
|
101
104
|
get(): BooleanNode;
|
|
102
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Converts the given binary tree to a string representation.
|
|
108
|
+
*/
|
|
103
109
|
export declare function binaryTreeToString(tree: BooleanNode): string;
|
|
110
|
+
/**
|
|
111
|
+
* Checks whether the given value is a binary tree combinator.
|
|
112
|
+
* @see {@link FlowrFilterCombinator}
|
|
113
|
+
*/
|
|
104
114
|
export declare function isBinaryTree(tree: unknown): tree is {
|
|
105
115
|
tree: BooleanNode;
|
|
106
116
|
};
|
|
@@ -110,5 +120,8 @@ interface FilterData {
|
|
|
110
120
|
dataflow: DataflowInformation;
|
|
111
121
|
};
|
|
112
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* Evaluates the given filter expression against the provided data.
|
|
125
|
+
*/
|
|
113
126
|
export declare function evalFilter<Filter extends FlowrFilter>(filter: FlowrFilterExpression<Filter>, data: FilterData): boolean;
|
|
114
127
|
export {};
|