@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
package/queries/query.js
CHANGED
|
@@ -10,16 +10,17 @@ exports.SupportedQueriesSchema = SupportedQueriesSchema;
|
|
|
10
10
|
exports.VirtualQuerySchema = VirtualQuerySchema;
|
|
11
11
|
exports.AnyQuerySchema = AnyQuerySchema;
|
|
12
12
|
exports.QueriesSchema = QueriesSchema;
|
|
13
|
+
exports.genericWrapReplFailIfNoRequest = genericWrapReplFailIfNoRequest;
|
|
13
14
|
const call_context_query_format_1 = require("./catalog/call-context-query/call-context-query-format");
|
|
14
15
|
const assert_1 = require("../util/assert");
|
|
15
16
|
const virtual_queries_1 = require("./virtual-query/virtual-queries");
|
|
16
17
|
const dataflow_query_format_1 = require("./catalog/dataflow-query/dataflow-query-format");
|
|
17
18
|
const id_map_query_format_1 = require("./catalog/id-map-query/id-map-query-format");
|
|
18
19
|
const normalized_ast_query_format_1 = require("./catalog/normalized-ast-query/normalized-ast-query-format");
|
|
19
|
-
const lineage_query_format_1 = require("./catalog/lineage-query/lineage-query-format");
|
|
20
20
|
const static_slice_query_format_1 = require("./catalog/static-slice-query/static-slice-query-format");
|
|
21
21
|
const cluster_query_format_1 = require("./catalog/cluster-query/cluster-query-format");
|
|
22
22
|
const dependencies_query_format_1 = require("./catalog/dependencies-query/dependencies-query-format");
|
|
23
|
+
const ansi_1 = require("../util/text/ansi");
|
|
23
24
|
const joi_1 = __importDefault(require("joi"));
|
|
24
25
|
const location_map_query_format_1 = require("./catalog/location-map-query/location-map-query-format");
|
|
25
26
|
const config_query_format_1 = require("./catalog/config-query/config-query-format");
|
|
@@ -33,6 +34,7 @@ const linter_query_format_1 = require("./catalog/linter-query/linter-query-forma
|
|
|
33
34
|
const control_flow_query_format_1 = require("./catalog/control-flow-query/control-flow-query-format");
|
|
34
35
|
const df_shape_query_format_1 = require("./catalog/df-shape-query/df-shape-query-format");
|
|
35
36
|
const inspect_higher_order_query_format_1 = require("./catalog/inspect-higher-order-query/inspect-higher-order-query-format");
|
|
37
|
+
const log_1 = require("../util/log");
|
|
36
38
|
exports.SupportedQueries = {
|
|
37
39
|
'call-context': call_context_query_format_1.CallContextQueryDefinition,
|
|
38
40
|
'config': config_query_format_1.ConfigQueryDefinition,
|
|
@@ -44,7 +46,6 @@ exports.SupportedQueries = {
|
|
|
44
46
|
'normalized-ast': normalized_ast_query_format_1.NormalizedAstQueryDefinition,
|
|
45
47
|
'dataflow-cluster': cluster_query_format_1.ClusterQueryDefinition,
|
|
46
48
|
'static-slice': static_slice_query_format_1.StaticSliceQueryDefinition,
|
|
47
|
-
'lineage': lineage_query_format_1.LineageQueryDefinition,
|
|
48
49
|
'dependencies': dependencies_query_format_1.DependenciesQueryDefinition,
|
|
49
50
|
'location-map': location_map_query_format_1.LocationMapQueryDefinition,
|
|
50
51
|
'search': search_query_format_1.SearchQueryDefinition,
|
|
@@ -55,6 +56,11 @@ exports.SupportedQueries = {
|
|
|
55
56
|
'origin': origin_query_format_1.OriginQueryDefinition,
|
|
56
57
|
'linter': linter_query_format_1.LinterQueryDefinition
|
|
57
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* Executes a set of queries that are all of the same type.
|
|
61
|
+
* Only use this function if you are sure all queries are of the same type.
|
|
62
|
+
* Otherwise, use {@link executeQueries}.
|
|
63
|
+
*/
|
|
58
64
|
async function executeQueriesOfSameType(data, queries) {
|
|
59
65
|
(0, assert_1.guard)(queries.length > 0, 'At least one query must be provided');
|
|
60
66
|
/* every query must have the same type */
|
|
@@ -86,35 +92,34 @@ function groupQueriesByType(queries) {
|
|
|
86
92
|
}
|
|
87
93
|
return grouped;
|
|
88
94
|
}
|
|
89
|
-
function isPromiseLike(value) {
|
|
90
|
-
return value !== null && typeof value === 'object' && typeof value.then === 'function';
|
|
91
|
-
}
|
|
92
95
|
/**
|
|
93
96
|
* This is the main query execution function that takes a set of queries and executes them on the given data.
|
|
97
|
+
* @see {@link executeQueriesOfSameType}
|
|
94
98
|
*/
|
|
95
|
-
function executeQueries(data, queries) {
|
|
99
|
+
async function executeQueries(data, queries) {
|
|
96
100
|
const now = Date.now();
|
|
97
101
|
const grouped = groupQueriesByType(queries);
|
|
98
102
|
const entries = Object.entries(grouped);
|
|
99
|
-
const results =
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
103
|
+
const results = [];
|
|
104
|
+
for (const [type, group] of entries) {
|
|
105
|
+
try {
|
|
106
|
+
const result = await Promise.resolve(executeQueriesOfSameType(data, group));
|
|
107
|
+
results.push([type, result]);
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
log_1.log.warn(e);
|
|
111
|
+
results.push([type, undefined]);
|
|
112
|
+
}
|
|
107
113
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
timing: Date.now() - now
|
|
114
|
-
};
|
|
115
|
-
return results;
|
|
116
|
-
});
|
|
114
|
+
const r = Object.fromEntries(results);
|
|
115
|
+
r['.meta'] = {
|
|
116
|
+
timing: Date.now() - now
|
|
117
|
+
};
|
|
118
|
+
return r;
|
|
117
119
|
}
|
|
120
|
+
/**
|
|
121
|
+
* Produces a Joi schema representing all supported queries.
|
|
122
|
+
*/
|
|
118
123
|
function SupportedQueriesSchema() {
|
|
119
124
|
return joi_1.default.alternatives(Object.values(exports.SupportedQueries).map(q => q.schema)).description('Supported queries');
|
|
120
125
|
}
|
|
@@ -124,13 +129,40 @@ exports.CompoundQuerySchema = joi_1.default.object({
|
|
|
124
129
|
commonArguments: joi_1.default.object().required().description('Common arguments for all queries.'),
|
|
125
130
|
arguments: joi_1.default.array().items(joi_1.default.object()).required().description('Arguments for each query.')
|
|
126
131
|
}).description('Compound query used to combine queries of the same type');
|
|
132
|
+
/**
|
|
133
|
+
* Produces a Joi schema representing all virtual queries.
|
|
134
|
+
*/
|
|
127
135
|
function VirtualQuerySchema() {
|
|
128
136
|
return joi_1.default.alternatives(exports.CompoundQuerySchema).description('Virtual queries (used for structure)');
|
|
129
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Produces a Joi schema representing any supported query (including virtual queries).
|
|
140
|
+
*/
|
|
130
141
|
function AnyQuerySchema() {
|
|
131
142
|
return joi_1.default.alternatives(SupportedQueriesSchema(), VirtualQuerySchema()).description('Any query');
|
|
132
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Produces a Joi schema representing an array of supported queries.
|
|
146
|
+
*/
|
|
133
147
|
function QueriesSchema() {
|
|
134
148
|
return joi_1.default.array().items(AnyQuerySchema()).description('Queries to run on the file analysis information (in the form of an array)');
|
|
135
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Wraps a function that executes a REPL query and, if it fails, checks whether there were any requests to analyze.
|
|
152
|
+
*/
|
|
153
|
+
async function genericWrapReplFailIfNoRequest(fn, output, analyzer) {
|
|
154
|
+
try {
|
|
155
|
+
return await fn();
|
|
156
|
+
}
|
|
157
|
+
catch (e) {
|
|
158
|
+
if (analyzer.inspectContext().files.loadingOrder.getUnorderedRequests().length === 0) {
|
|
159
|
+
output.stderr(output.formatter.format('No requests to analyze were found.', { color: 1 /* Colors.Red */, style: 1 /* FontStyles.Bold */, effect: ansi_1.ColorEffect.Foreground })
|
|
160
|
+
+ '\nIf you consider this an error, please report a bug: '
|
|
161
|
+
+ (0, assert_1.getGuardIssueUrl)('analyzer found no requests to analyze'));
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
throw e;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
136
168
|
//# sourceMappingURL=query.js.map
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { QueryArgumentsWithType, SupportedQueryTypes } from '../query';
|
|
2
|
-
import type
|
|
3
|
-
import { executeCompoundQueries } from './compound-query';
|
|
2
|
+
import { type CompoundQueryFormat, type VirtualCompoundConstraint, executeCompoundQueries } from './compound-query';
|
|
4
3
|
import type { BaseQueryFormat } from '../base-query-format';
|
|
5
4
|
/** A query that does not perform a search but may perform (e.g., convenience) modifications of other queries */
|
|
6
5
|
export type VirtualQueryArgumentsWithType<Base extends SupportedQueryTypes, VirtualArguments extends VirtualCompoundConstraint<Base> = VirtualCompoundConstraint<Base>> = CompoundQueryFormat<Base, VirtualArguments>;
|
package/r-bridge/data/get.d.ts
CHANGED
|
@@ -14,6 +14,12 @@ type PathToCapability = readonly number[];
|
|
|
14
14
|
export interface FlowrCapabilityWithPath extends FlowrCapability {
|
|
15
15
|
path: PathToCapability;
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* Find a flowR capability by its id.
|
|
19
|
+
*/
|
|
17
20
|
export declare function getCapabilityById(id: FlowrCapabilityId): FlowrCapabilityWithPath;
|
|
21
|
+
/**
|
|
22
|
+
* Get all capabilities with their paths.
|
|
23
|
+
*/
|
|
18
24
|
export declare function getAllCapabilities(): readonly FlowrCapabilityWithPath[];
|
|
19
25
|
export {};
|
package/r-bridge/data/get.js
CHANGED
|
@@ -21,6 +21,9 @@ function search(id, capabilities, path = []) {
|
|
|
21
21
|
return undefined;
|
|
22
22
|
}
|
|
23
23
|
const capabilityCache = new Map();
|
|
24
|
+
/**
|
|
25
|
+
* Find a flowR capability by its id.
|
|
26
|
+
*/
|
|
24
27
|
function getCapabilityById(id) {
|
|
25
28
|
const cached = capabilityCache.get(id);
|
|
26
29
|
if (cached) {
|
|
@@ -31,6 +34,9 @@ function getCapabilityById(id) {
|
|
|
31
34
|
capabilityCache.set(id, value);
|
|
32
35
|
return value;
|
|
33
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Get all capabilities with their paths.
|
|
39
|
+
*/
|
|
34
40
|
function getAllCapabilities() {
|
|
35
41
|
const result = [];
|
|
36
42
|
function traverse(capabilities, currentPath = []) {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { RNode } from './model';
|
|
2
2
|
import type { NodeId } from './processing/node-id';
|
|
3
3
|
import type { ParentInformation } from './processing/decorate';
|
|
4
|
+
import type { RProject } from './nodes/r-project';
|
|
4
5
|
/**
|
|
5
6
|
* Collects all node ids within a tree given by a respective root node
|
|
6
|
-
*
|
|
7
7
|
* @param nodes - The root id nodes to start collecting from
|
|
8
8
|
* @param stop - A function that determines whether to stop collecting at a given node, does not stop by default
|
|
9
9
|
*/
|
|
10
|
-
export declare function collectAllIds<OtherInfo>(nodes: RNode<OtherInfo & ParentInformation> | (RNode<OtherInfo & ParentInformation> | null | undefined)[] | undefined, stop?: (node: RNode<OtherInfo & ParentInformation>) => boolean): Set<NodeId>;
|
|
10
|
+
export declare function collectAllIds<OtherInfo>(nodes: RProject<OtherInfo & ParentInformation> | RNode<OtherInfo & ParentInformation> | (RNode<OtherInfo & ParentInformation> | null | undefined)[] | undefined, stop?: (node: RNode<OtherInfo & ParentInformation>) => boolean): Set<NodeId>;
|
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.collectAllIds = collectAllIds;
|
|
4
4
|
const visitor_1 = require("./processing/visitor");
|
|
5
|
+
const type_1 = require("./type");
|
|
5
6
|
/**
|
|
6
7
|
* Collects all node ids within a tree given by a respective root node
|
|
7
|
-
*
|
|
8
8
|
* @param nodes - The root id nodes to start collecting from
|
|
9
9
|
* @param stop - A function that determines whether to stop collecting at a given node, does not stop by default
|
|
10
10
|
*/
|
|
11
11
|
function collectAllIds(nodes, stop = () => false) {
|
|
12
|
+
if (nodes && 'type' in nodes && nodes.type === type_1.RType.Project) {
|
|
13
|
+
nodes = nodes.files.map(f => f.root);
|
|
14
|
+
}
|
|
12
15
|
const ids = new Set();
|
|
13
16
|
(0, visitor_1.visitAst)(nodes, (node) => {
|
|
14
17
|
if (stop(node)) {
|
|
@@ -31,16 +31,16 @@ export type NoInfo = object;
|
|
|
31
31
|
*/
|
|
32
32
|
interface Source {
|
|
33
33
|
/**
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
34
|
+
* The range is different from the assigned {@link Location} as it refers to the complete source range covered by the given
|
|
35
|
+
* element.
|
|
36
|
+
* <p>
|
|
37
|
+
* As an example for the difference, consider a for loop, the location of `for` will be just the three characters,
|
|
38
|
+
* but the *range* will be everything including the loop body.
|
|
39
|
+
*/
|
|
40
40
|
fullRange?: SourceRange;
|
|
41
41
|
/**
|
|
42
|
-
|
|
43
|
-
|
|
42
|
+
* Similar to {@link Source.fullRange} this contains the complete R lexeme of the given element.
|
|
43
|
+
*/
|
|
44
44
|
fullLexeme?: string;
|
|
45
45
|
/**
|
|
46
46
|
* This may contain additional elements that were part of the original R code, but are not part of the normalized R-ast.
|
|
@@ -54,7 +54,6 @@ interface Source {
|
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
56
|
* Provides the common base of all {@link RNode|RNodes}.
|
|
57
|
-
*
|
|
58
57
|
* @typeParam Info - can be used to store additional information about the node
|
|
59
58
|
* @typeParam LexemeType - the type of the lexeme, probably always a `string` or `string | undefined`
|
|
60
59
|
*/
|
|
@@ -85,7 +84,6 @@ export interface Location {
|
|
|
85
84
|
/**
|
|
86
85
|
* The location may differ from what is stated in {@link Source#fullRange} as it
|
|
87
86
|
* represents the location identified by the R parser.
|
|
88
|
-
*
|
|
89
87
|
* @see Source#fullRange
|
|
90
88
|
*/
|
|
91
89
|
location: SourceRange;
|
|
@@ -144,7 +142,6 @@ export type ROther<Info> = RComment<Info> | RLineDirective<Info>;
|
|
|
144
142
|
* All other subtypes (like {@link RLoopConstructs}) listed above
|
|
145
143
|
* can be used to restrict the kind of node. They do not have to be
|
|
146
144
|
* exclusive, some nodes can appear in multiple subtypes.
|
|
147
|
-
*
|
|
148
145
|
* @see {@link recoverName} - to receive the name/lexeme from such a node
|
|
149
146
|
* @see {@link recoverContent} - for a more rigorous approach to get the content of a node within a {@link DataflowGraph|dataflow graph}
|
|
150
147
|
*/
|
|
@@ -6,7 +6,6 @@ export declare const EmptyArgument = "<>";
|
|
|
6
6
|
export type RFunctionArgument<Info = NoInfo> = RArgument<Info> | typeof EmptyArgument;
|
|
7
7
|
/**
|
|
8
8
|
* Calls of functions like `a()` and `foo(42, "hello")`.
|
|
9
|
-
*
|
|
10
9
|
* @see RUnnamedFunctionCall
|
|
11
10
|
*/
|
|
12
11
|
export interface RNamedFunctionCall<Info = NoInfo> extends Base<Info>, Location {
|
|
@@ -18,7 +17,6 @@ export interface RNamedFunctionCall<Info = NoInfo> extends Base<Info>, Location
|
|
|
18
17
|
}
|
|
19
18
|
/**
|
|
20
19
|
* Direct calls of functions like `(function(x) { x })(3)`.
|
|
21
|
-
*
|
|
22
20
|
* @see RNamedFunctionCall
|
|
23
21
|
*/
|
|
24
22
|
export interface RUnnamedFunctionCall<Info = NoInfo> extends Base<Info>, Location {
|
|
@@ -10,4 +10,7 @@ export interface RNumber<Info = NoInfo> extends Leaf<Info>, Location {
|
|
|
10
10
|
readonly type: RType.Number;
|
|
11
11
|
content: RNumberValue;
|
|
12
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Checks whether the given node is an RNumber.
|
|
15
|
+
*/
|
|
13
16
|
export declare function isRNumber(node: RNode | undefined): node is RNumber;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isRNumber = isRNumber;
|
|
4
4
|
const type_1 = require("../type");
|
|
5
|
+
/**
|
|
6
|
+
* Checks whether the given node is an RNumber.
|
|
7
|
+
*/
|
|
5
8
|
function isRNumber(node) {
|
|
6
9
|
return node?.type === type_1.RType.Number;
|
|
7
10
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { NoInfo } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import type { RExpressionList } from './r-expression-list';
|
|
4
|
+
import type { NodeId } from '../processing/node-id';
|
|
5
|
+
/**
|
|
6
|
+
* Holds a single R file starting with an expression list.
|
|
7
|
+
*/
|
|
8
|
+
export interface RProjectFile<Info = NoInfo> {
|
|
9
|
+
readonly filePath?: string;
|
|
10
|
+
readonly root: RExpressionList<Info>;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Holds a collection of files (started with the expression list)
|
|
14
|
+
* @see {@link RExpressionList} - for the root of each file
|
|
15
|
+
* @see {@link mergeProjects} - to merge multiple projects into a single one
|
|
16
|
+
* @see {@link RProjectFile} - for each file in the project
|
|
17
|
+
*/
|
|
18
|
+
export interface RProject<Info = NoInfo> {
|
|
19
|
+
readonly type: RType.Project;
|
|
20
|
+
readonly files: RProjectFile<Info>[];
|
|
21
|
+
readonly info?: {
|
|
22
|
+
id: NodeId;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Merge multiple projects into a single one by concatenating their files.
|
|
27
|
+
* This will remove the `info` property of the resulting project.
|
|
28
|
+
*/
|
|
29
|
+
export declare function mergeProjects<Info = NoInfo>(projects: RProject<Info>[]): RProject<Info>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mergeProjects = mergeProjects;
|
|
4
|
+
const type_1 = require("../type");
|
|
5
|
+
/**
|
|
6
|
+
* Merge multiple projects into a single one by concatenating their files.
|
|
7
|
+
* This will remove the `info` property of the resulting project.
|
|
8
|
+
*/
|
|
9
|
+
function mergeProjects(projects) {
|
|
10
|
+
return {
|
|
11
|
+
type: type_1.RType.Project,
|
|
12
|
+
files: projects.flatMap(p => p.files)
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=r-project.js.map
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isSpecialSymbol = isSpecialSymbol;
|
|
4
4
|
const convert_values_1 = require("../../../convert-values");
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
5
8
|
function isSpecialSymbol(symbol) {
|
|
6
9
|
return symbol.content === convert_values_1.RNull || symbol.content === convert_values_1.RNa;
|
|
7
10
|
}
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
* 2. transforming the AST into a doubly linked tree using the ids (so it stays serializable)
|
|
6
6
|
*
|
|
7
7
|
* The main entry point is {@link decorateAst}.
|
|
8
|
-
*
|
|
9
8
|
* @module
|
|
10
9
|
*/
|
|
11
10
|
import type { NoInfo, RNode } from '../model';
|
|
@@ -15,29 +14,33 @@ import type { MergeableRecord } from '../../../../../util/objects';
|
|
|
15
14
|
import { RoleInParent } from './role';
|
|
16
15
|
import type { NodeId } from './node-id';
|
|
17
16
|
import type { RDelimiter } from '../nodes/info/r-delimiter';
|
|
17
|
+
import type { RProject } from '../nodes/r-project';
|
|
18
18
|
/**
|
|
19
19
|
* A function that given an RNode returns a (guaranteed) unique id for it
|
|
20
20
|
* @param data - the node to generate an id for
|
|
21
|
-
*
|
|
22
21
|
* @returns a unique id for the given node
|
|
23
22
|
*/
|
|
24
|
-
export type IdGenerator<OtherInfo> = (data: RNode<OtherInfo>) => NodeId;
|
|
23
|
+
export type IdGenerator<OtherInfo> = (data: RProject<OtherInfo> | RNode<OtherInfo>) => NodeId;
|
|
25
24
|
/**
|
|
26
25
|
* The simplest id generator which just increments a number on each call.
|
|
27
26
|
*/
|
|
28
27
|
export declare function deterministicCountingIdGenerator(id?: number): () => NodeId;
|
|
28
|
+
/**
|
|
29
|
+
* Generates ids with a fixed prefix and an incrementing counter.
|
|
30
|
+
*/
|
|
29
31
|
export declare function deterministicPrefixIdGenerator(prefix: string, id?: number): () => NodeId;
|
|
32
|
+
/**
|
|
33
|
+
* Generates ids with a fixed source path and location information as prefix and an incrementing counter.
|
|
34
|
+
*/
|
|
30
35
|
export declare function sourcedDeterministicCountingIdGenerator(path: string, location: SourceRange, start?: number): () => NodeId;
|
|
31
36
|
/**
|
|
32
37
|
* Generates the location id, used by {@link deterministicLocationIdGenerator}.
|
|
33
|
-
*
|
|
34
38
|
* @param data - the node to generate an id for, must have location information
|
|
35
39
|
*/
|
|
36
40
|
export declare function nodeToLocationId<OtherInfo>(data: RNode<OtherInfo> | RDelimiter): NodeId;
|
|
37
41
|
/**
|
|
38
42
|
* Generates unique ids based on the locations of the node (see {@link nodeToLocationId}).
|
|
39
43
|
* If a node has no location information, it will be assigned a unique counter-value.
|
|
40
|
-
*
|
|
41
44
|
* @param start - the start value for the counter, in case nodes do not have location information
|
|
42
45
|
*/
|
|
43
46
|
export declare function deterministicLocationIdGenerator<OtherInfo>(start?: number): IdGenerator<OtherInfo>;
|
|
@@ -69,7 +72,7 @@ export type AstIdMap<OtherInfo = NoInfo> = BiMap<NodeId, RNodeWithParent<OtherIn
|
|
|
69
72
|
* Contains the normalized AST as a doubly linked tree
|
|
70
73
|
* and a map from ids to nodes so that parent links can be chased easily.
|
|
71
74
|
*/
|
|
72
|
-
export interface NormalizedAst<OtherInfo = ParentInformation, Node =
|
|
75
|
+
export interface NormalizedAst<OtherInfo = ParentInformation, Node = RProject<OtherInfo & ParentInformation>> {
|
|
73
76
|
/** Bidirectional mapping of ids to the corresponding nodes and the other way */
|
|
74
77
|
idMap: AstIdMap<OtherInfo>;
|
|
75
78
|
/** The root of the AST with parent information */
|
|
@@ -80,18 +83,12 @@ export interface NormalizedAst<OtherInfo = ParentInformation, Node = RNode<Other
|
|
|
80
83
|
export interface NormalizedAstDecorationConfiguration<OtherInfo> {
|
|
81
84
|
/** The id generator: must generate a unique id für each passed node */
|
|
82
85
|
getId?: IdGenerator<OtherInfo>;
|
|
83
|
-
/** the path to the file this AST was extracted from will be added to the nodes */
|
|
84
|
-
file?: string;
|
|
85
86
|
}
|
|
86
87
|
/**
|
|
87
88
|
* Covert the given AST into a doubly linked tree while assigning ids (so it stays serializable).
|
|
88
|
-
*
|
|
89
|
-
* @param ast - The root of the AST to convert
|
|
89
|
+
* @param project - The AST to decorate
|
|
90
90
|
* @param getId - The id generator: must generate a unique id für each passed node
|
|
91
|
-
* @param file - the path to the file this AST was extracted from will be added to the nodes
|
|
92
|
-
*
|
|
93
91
|
* @typeParam OtherInfo - The original decoration of the ast nodes (probably is nothing as the id decoration is most likely the first step to be performed after extraction)
|
|
94
|
-
*
|
|
95
92
|
* @returns A decorated AST based on the input and the id provider.
|
|
96
93
|
*/
|
|
97
|
-
export declare function decorateAst<OtherInfo = NoInfo>(
|
|
94
|
+
export declare function decorateAst<OtherInfo = NoInfo>(project: RProject<OtherInfo>, { getId }: NormalizedAstDecorationConfiguration<OtherInfo>): NormalizedAst<OtherInfo & ParentInformation>;
|
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
* 2. transforming the AST into a doubly linked tree using the ids (so it stays serializable)
|
|
7
7
|
*
|
|
8
8
|
* The main entry point is {@link decorateAst}.
|
|
9
|
-
*
|
|
10
9
|
* @module
|
|
11
10
|
*/
|
|
12
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -27,9 +26,15 @@ const r_function_call_1 = require("../nodes/r-function-call");
|
|
|
27
26
|
function deterministicCountingIdGenerator(id = 0) {
|
|
28
27
|
return () => id++;
|
|
29
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Generates ids with a fixed prefix and an incrementing counter.
|
|
31
|
+
*/
|
|
30
32
|
function deterministicPrefixIdGenerator(prefix, id = 0) {
|
|
31
33
|
return () => `${prefix}-${id++}`;
|
|
32
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Generates ids with a fixed source path and location information as prefix and an incrementing counter.
|
|
37
|
+
*/
|
|
33
38
|
function sourcedDeterministicCountingIdGenerator(path, location, start = 0) {
|
|
34
39
|
let id = start;
|
|
35
40
|
return () => `${path}-${loc2Id(location)}-${id++}`;
|
|
@@ -39,7 +44,6 @@ function loc2Id([sl, sc, el, ec]) {
|
|
|
39
44
|
}
|
|
40
45
|
/**
|
|
41
46
|
* Generates the location id, used by {@link deterministicLocationIdGenerator}.
|
|
42
|
-
*
|
|
43
47
|
* @param data - the node to generate an id for, must have location information
|
|
44
48
|
*/
|
|
45
49
|
function nodeToLocationId(data) {
|
|
@@ -50,12 +54,11 @@ function nodeToLocationId(data) {
|
|
|
50
54
|
/**
|
|
51
55
|
* Generates unique ids based on the locations of the node (see {@link nodeToLocationId}).
|
|
52
56
|
* If a node has no location information, it will be assigned a unique counter-value.
|
|
53
|
-
*
|
|
54
57
|
* @param start - the start value for the counter, in case nodes do not have location information
|
|
55
58
|
*/
|
|
56
59
|
function deterministicLocationIdGenerator(start = 0) {
|
|
57
60
|
let id = start;
|
|
58
|
-
return (data) => data.location !== undefined ? nodeToLocationId(data) : `${id++}`;
|
|
61
|
+
return (data) => 'location' in data && data.location !== undefined ? nodeToLocationId(data) : `${id++}`;
|
|
59
62
|
}
|
|
60
63
|
const defaultParentContext = {
|
|
61
64
|
role: "root" /* RoleInParent.Root */,
|
|
@@ -66,24 +69,19 @@ const nestForElement = new Set([
|
|
|
66
69
|
]);
|
|
67
70
|
/**
|
|
68
71
|
* Covert the given AST into a doubly linked tree while assigning ids (so it stays serializable).
|
|
69
|
-
*
|
|
70
|
-
* @param ast - The root of the AST to convert
|
|
72
|
+
* @param project - The AST to decorate
|
|
71
73
|
* @param getId - The id generator: must generate a unique id für each passed node
|
|
72
|
-
* @param file - the path to the file this AST was extracted from will be added to the nodes
|
|
73
|
-
*
|
|
74
74
|
* @typeParam OtherInfo - The original decoration of the ast nodes (probably is nothing as the id decoration is most likely the first step to be performed after extraction)
|
|
75
|
-
*
|
|
76
75
|
* @returns A decorated AST based on the input and the id provider.
|
|
77
76
|
*/
|
|
78
|
-
function decorateAst(
|
|
77
|
+
function decorateAst(project, { getId = deterministicCountingIdGenerator(0) }) {
|
|
79
78
|
const idMap = new bimap_1.BiMap();
|
|
80
|
-
const info = { idMap, getId, file };
|
|
79
|
+
const info = { idMap, getId, file: undefined };
|
|
81
80
|
/* Please note, that all fold processors do not re-create copies in higher-folding steps so that the idMap stays intact. */
|
|
82
81
|
const foldLeaf = createFoldForLeaf(info);
|
|
83
82
|
const foldBinaryOp = createFoldForBinaryOp(info);
|
|
84
83
|
const unaryOp = createFoldForUnaryOp(info);
|
|
85
|
-
|
|
86
|
-
const decoratedAst = (0, stateful_fold_1.foldAstStateful)(ast, 0, {
|
|
84
|
+
const folds = {
|
|
87
85
|
down: (n, nesting) => {
|
|
88
86
|
if (nestForElement.has(n.type)) {
|
|
89
87
|
return nesting + 1;
|
|
@@ -119,11 +117,26 @@ function decorateAst(ast, { getId = deterministicCountingIdGenerator(0), file })
|
|
|
119
117
|
foldArgument: createFoldForFunctionArgument(info),
|
|
120
118
|
foldParameter: createFoldForFunctionParameter(info)
|
|
121
119
|
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
120
|
+
};
|
|
121
|
+
// we return the project by mapping over the files
|
|
122
|
+
const decoratedProject = {
|
|
123
|
+
...project,
|
|
124
|
+
files: project.files.map(file => {
|
|
125
|
+
info.file = file.filePath;
|
|
126
|
+
const decoratedAst = (0, stateful_fold_1.foldAstStateful)(file.root, 0, folds);
|
|
127
|
+
decoratedAst.info.role = "root" /* RoleInParent.Root */;
|
|
128
|
+
decoratedAst.info.index = 0;
|
|
129
|
+
return {
|
|
130
|
+
root: decoratedAst,
|
|
131
|
+
filePath: file.filePath
|
|
132
|
+
};
|
|
133
|
+
}),
|
|
134
|
+
info: {
|
|
135
|
+
id: getId(project)
|
|
136
|
+
}
|
|
137
|
+
};
|
|
125
138
|
return {
|
|
126
|
-
ast:
|
|
139
|
+
ast: decoratedProject,
|
|
127
140
|
idMap
|
|
128
141
|
};
|
|
129
142
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DeepReadonly } from 'ts-essentials';
|
|
2
2
|
import type { RNode } from '../model';
|
|
3
|
-
import type
|
|
3
|
+
import { type StatefulFoldFunctions } from './stateful-fold';
|
|
4
4
|
export type FoldFunctions<Info, Out> = Omit<StatefulFoldFunctions<Info, undefined, Out>, 'down'>;
|
|
5
5
|
/**
|
|
6
6
|
* Folds in old functional-fashion over the AST structure.
|
|
@@ -8,7 +8,6 @@ export type NodeId<T extends string | number = string | number> = T & {
|
|
|
8
8
|
export declare function normalizeIdToNumberIfPossible(id: NodeId): NodeId;
|
|
9
9
|
/**
|
|
10
10
|
* Recovers the lexeme of a {@link RNode|node} from its id in the {@link AstIdMap|id map}.
|
|
11
|
-
*
|
|
12
11
|
* @see {@link recoverContent} - to recover the content of a node
|
|
13
12
|
*/
|
|
14
13
|
export declare function recoverName(id: NodeId, idMap?: AstIdMap): string | undefined;
|
|
@@ -16,7 +16,6 @@ function normalizeIdToNumberIfPossible(id) {
|
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
18
18
|
* Recovers the lexeme of a {@link RNode|node} from its id in the {@link AstIdMap|id map}.
|
|
19
|
-
*
|
|
20
19
|
* @see {@link recoverContent} - to recover the content of a node
|
|
21
20
|
*/
|
|
22
21
|
function recoverName(id, idMap) {
|
|
@@ -2,7 +2,6 @@ import type { AstIdMap, RNodeWithParent } from './decorate';
|
|
|
2
2
|
/**
|
|
3
3
|
* Describes the role of the node in its parent. For example,
|
|
4
4
|
* if we have `if(TRUE) { ... }`, the role of the `TRUE` node is `IfCondition`.
|
|
5
|
-
*
|
|
6
5
|
* @see ParentContextInfo
|
|
7
6
|
* @see ParentInformation
|
|
8
7
|
*/
|
|
@@ -8,8 +8,7 @@ import type { RAccess } from '../nodes/r-access';
|
|
|
8
8
|
import type { RBinaryOp } from '../nodes/r-binary-op';
|
|
9
9
|
import type { RPipe } from '../nodes/r-pipe';
|
|
10
10
|
import type { RUnaryOp } from '../nodes/r-unary-op';
|
|
11
|
-
import type
|
|
12
|
-
import { EmptyArgument } from '../nodes/r-function-call';
|
|
11
|
+
import { type RFunctionCall, EmptyArgument } from '../nodes/r-function-call';
|
|
13
12
|
import type { RForLoop } from '../nodes/r-for-loop';
|
|
14
13
|
import type { RWhileLoop } from '../nodes/r-while-loop';
|
|
15
14
|
import type { RRepeatLoop } from '../nodes/r-repeat-loop';
|
|
@@ -5,7 +5,6 @@ export type OnEnter<OtherInfo> = (node: RNode<OtherInfo>) => (boolean | void);
|
|
|
5
5
|
export type OnExit<OtherInfo> = (node: RNode<OtherInfo>) => void;
|
|
6
6
|
/**
|
|
7
7
|
* Visits all node ids within a tree given by a respective root node using a depth-first search with prefix order.
|
|
8
|
-
*
|
|
9
8
|
* @param nodes - The root id nodes to start collecting from
|
|
10
9
|
* @param onVisit - Called before visiting the subtree of each node. Can be used to stop visiting the subtree starting with this node (return `true` stop)
|
|
11
10
|
* @param onExit - Called after the subtree of a node has been visited, called for leafs too (even though their subtree is empty)
|
|
@@ -101,7 +101,6 @@ class NodeVisitor {
|
|
|
101
101
|
}
|
|
102
102
|
/**
|
|
103
103
|
* Visits all node ids within a tree given by a respective root node using a depth-first search with prefix order.
|
|
104
|
-
*
|
|
105
104
|
* @param nodes - The root id nodes to start collecting from
|
|
106
105
|
* @param onVisit - Called before visiting the subtree of each node. Can be used to stop visiting the subtree starting with this node (return `true` stop)
|
|
107
106
|
* @param onExit - Called after the subtree of a node has been visited, called for leafs too (even though their subtree is empty)
|