@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
|
@@ -7,7 +7,6 @@ export interface FileBasedTable {
|
|
|
7
7
|
* The purpose of this function is to reformat {@link ClusterReport} in way that lists file-based contributions.
|
|
8
8
|
* E.g., "the file with id 12 contained the assignment with `<-` 3 times".
|
|
9
9
|
* Feature Values are listed in the header.
|
|
10
|
-
*
|
|
11
10
|
* @param report - the report to reformat
|
|
12
11
|
*/
|
|
13
12
|
export declare function fileBasedCount(report: ClusterReport): FileBasedTable;
|
|
@@ -10,7 +10,6 @@ const fs_1 = __importDefault(require("fs"));
|
|
|
10
10
|
* The purpose of this function is to reformat {@link ClusterReport} in way that lists file-based contributions.
|
|
11
11
|
* E.g., "the file with id 12 contained the assignment with `<-` 3 times".
|
|
12
12
|
* Feature Values are listed in the header.
|
|
13
|
-
*
|
|
14
13
|
* @param report - the report to reformat
|
|
15
14
|
*/
|
|
16
15
|
function fileBasedCount(report) {
|
|
@@ -28,7 +28,6 @@ export interface Histogram {
|
|
|
28
28
|
*
|
|
29
29
|
* Let's suppose you want histograms for the Assignments feature.
|
|
30
30
|
* By default, for each clustered value, a histogram is produced (can be configured by `filter`).
|
|
31
|
-
*
|
|
32
31
|
* @param report - The report to collect histogram information from
|
|
33
32
|
* @param binSize - Size of each bin (see {@link histogramFromNumbers} for details on why we do not specify the bin-count)
|
|
34
33
|
* @param relateValuesToNumberOfLines - If true, each value (like `<-` appeared in file 'x' exactly `N` times) will be divided by the number of lines in the file 'x'.
|
|
@@ -52,7 +51,6 @@ export declare function histogramFromNumbers(name: string, binSize: number, valu
|
|
|
52
51
|
* - `from` - The exclusive lower bound of the bin
|
|
53
52
|
* - `to` - The inclusive upper bound of the bin
|
|
54
53
|
* - a column with the name of each histogram, containing its count of values in the corresponding bin
|
|
55
|
-
*
|
|
56
54
|
* @param histograms - The histogram to convert (assumed to have the same ranges and bins)
|
|
57
55
|
* @param countAsDensity - If true, the count is divided by the total number of values (individually for each histogram, similar to pgfplots `hist/density` option)
|
|
58
56
|
*/
|
|
@@ -17,7 +17,6 @@ const arrays_1 = require("../../../util/collections/arrays");
|
|
|
17
17
|
*
|
|
18
18
|
* Let's suppose you want histograms for the Assignments feature.
|
|
19
19
|
* By default, for each clustered value, a histogram is produced (can be configured by `filter`).
|
|
20
|
-
*
|
|
21
20
|
* @param report - The report to collect histogram information from
|
|
22
21
|
* @param binSize - Size of each bin (see {@link histogramFromNumbers} for details on why we do not specify the bin-count)
|
|
23
22
|
* @param relateValuesToNumberOfLines - If true, each value (like `<-` appeared in file 'x' exactly `N` times) will be divided by the number of lines in the file 'x'.
|
|
@@ -72,7 +71,6 @@ function histogramFromNumbers(name, binSize, values) {
|
|
|
72
71
|
* - `from` - The exclusive lower bound of the bin
|
|
73
72
|
* - `to` - The inclusive upper bound of the bin
|
|
74
73
|
* - a column with the name of each histogram, containing its count of values in the corresponding bin
|
|
75
|
-
*
|
|
76
74
|
* @param histograms - The histogram to convert (assumed to have the same ranges and bins)
|
|
77
75
|
* @param countAsDensity - If true, the count is divided by the total number of values (individually for each histogram, similar to pgfplots `hist/density` option)
|
|
78
76
|
*/
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
1
|
+
import { type ClusterReport } from './clusterer';
|
|
2
|
+
import { type FeatureSelection } from '../../features/feature';
|
|
3
3
|
/**
|
|
4
4
|
* Post process the collections in a given folder, reducing them in a memory preserving way.
|
|
5
|
-
*
|
|
6
5
|
* @param filepath - Path to the root file of the data collection like `statistics-out/top-2023-01-01-00-00-00/`
|
|
7
6
|
* @param features - Collection of features to post process, expects corresponding folders to exist
|
|
8
|
-
*
|
|
9
7
|
* @returns non-aggregated reports for each sub-key of each feature
|
|
10
8
|
*/
|
|
11
9
|
export declare function postProcessFeatureFolder(filepath: string, features: FeatureSelection): ClusterReport[];
|
|
@@ -17,10 +17,8 @@ const file_provider_1 = require("../../output/file-provider");
|
|
|
17
17
|
const arrays_1 = require("../../../util/collections/arrays");
|
|
18
18
|
/**
|
|
19
19
|
* Post process the collections in a given folder, reducing them in a memory preserving way.
|
|
20
|
-
*
|
|
21
20
|
* @param filepath - Path to the root file of the data collection like `statistics-out/top-2023-01-01-00-00-00/`
|
|
22
21
|
* @param features - Collection of features to post process, expects corresponding folders to exist
|
|
23
|
-
*
|
|
24
22
|
* @returns non-aggregated reports for each sub-key of each feature
|
|
25
23
|
*/
|
|
26
24
|
function postProcessFeatureFolder(filepath, features) {
|
|
@@ -39,7 +37,6 @@ function postProcessFeatureFolder(filepath, features) {
|
|
|
39
37
|
}
|
|
40
38
|
/**
|
|
41
39
|
* Process a single feature folder like `Assignments/`
|
|
42
|
-
*
|
|
43
40
|
* @param filepath - Same as the input to {@link postProcessFeatureFolder}
|
|
44
41
|
* @param feature - The (single) feature to process
|
|
45
42
|
*/
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { StatisticsSummarizerConfiguration } from '../summarizer';
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
2
|
+
import { type CommonSummarizerConfiguration } from '../../../util/summarizer';
|
|
3
|
+
import { type FeatureStatisticsWithMeta } from '../../features/feature';
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
4
7
|
export declare function postProcessFeatures(config: StatisticsSummarizerConfiguration, filepath: string, outputPath: string, logger: (message: string) => void, metaFeatureInformation: Map<string, FeatureStatisticsWithMeta>): void;
|
|
5
8
|
/**
|
|
6
9
|
* Post process the collections in a given folder, retrieving the final summaries.
|
|
7
|
-
*
|
|
8
10
|
* @param logger - The logger to use for outputs
|
|
9
11
|
* @param filepath - Path to the root file of the data collection (contains all the archives)
|
|
10
12
|
* @param config - Configuration of the summarizer
|
|
@@ -13,6 +13,9 @@ const arrays_1 = require("../../../util/collections/arrays");
|
|
|
13
13
|
const files_1 = require("../../../util/files");
|
|
14
14
|
const assert_1 = require("../../../util/assert");
|
|
15
15
|
const feature_1 = require("../../features/feature");
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
*/
|
|
16
19
|
function postProcessFeatures(config, filepath, outputPath, logger, metaFeatureInformation) {
|
|
17
20
|
for (const featureName of config.featuresToUse) {
|
|
18
21
|
const featureInfo = feature_1.ALL_FEATURES[featureName];
|
|
@@ -66,7 +69,6 @@ function postProcessMeta(config, filepath, outputPath, logger, metaFeatureInform
|
|
|
66
69
|
}
|
|
67
70
|
/**
|
|
68
71
|
* Post process the collections in a given folder, retrieving the final summaries.
|
|
69
|
-
*
|
|
70
72
|
* @param logger - The logger to use for outputs
|
|
71
73
|
* @param filepath - Path to the root file of the data collection (contains all the archives)
|
|
72
74
|
* @param config - Configuration of the summarizer
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import { Summarizer } from '../../util/summarizer';
|
|
1
|
+
import { type CommonSummarizerConfiguration, Summarizer } from '../../util/summarizer';
|
|
3
2
|
import type { FeatureSelection } from '../features/feature';
|
|
4
3
|
export interface StatisticsSummarizerConfiguration extends CommonSummarizerConfiguration {
|
|
5
4
|
/**
|
package/util/assert.d.ts
CHANGED
|
@@ -1,12 +1,62 @@
|
|
|
1
1
|
/** use this to ensure that all cases are covered in case of a selection */
|
|
2
|
+
/**
|
|
3
|
+
* Verifies, that the given code path is never reached.
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* type Shape = Circle | Square;
|
|
7
|
+
* function area(s: Shape): number {
|
|
8
|
+
* switch(s.type) {
|
|
9
|
+
* case 'circle': return Math.PI * s.radius ** 2;
|
|
10
|
+
* case 'square': return s.sideLength ** 2;
|
|
11
|
+
* default: return assertUnreachable(s); // ensures that all cases are covered
|
|
12
|
+
* }
|
|
13
|
+
* }
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
2
16
|
export declare function assertUnreachable(x: never): never;
|
|
17
|
+
/**
|
|
18
|
+
* Verifies that the given value is not undefined.
|
|
19
|
+
* This especially helps with a `.filter`
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* const values: (number | undefined)[] = [1, 2, undefined, 4];
|
|
23
|
+
* const definedValues: number[] = values.filter(isNotUndefined);
|
|
24
|
+
* // definedValues is now of type number[]
|
|
25
|
+
* ```
|
|
26
|
+
* @see {@link isUndefined}
|
|
27
|
+
* @see {@link isNotNull}
|
|
28
|
+
*/
|
|
3
29
|
export declare function isNotUndefined<T>(x: T | undefined): x is T;
|
|
30
|
+
/**
|
|
31
|
+
* Verifies that the given value is undefined.
|
|
32
|
+
* This especially helps with a `.filter`
|
|
33
|
+
* @example
|
|
34
|
+
* ```ts
|
|
35
|
+
* const values: (number | undefined)[] = [1, 2, undefined, 4];
|
|
36
|
+
* const undefinedValues: undefined[] = values.filter(isUndefined);
|
|
37
|
+
* // undefinedValues is now of type undefined[]
|
|
38
|
+
* ```
|
|
39
|
+
* @see {@link isNotUndefined}
|
|
40
|
+
* @see {@link isNotNull}
|
|
41
|
+
*/
|
|
4
42
|
export declare function isUndefined<T>(x: T | undefined): x is undefined;
|
|
43
|
+
/**
|
|
44
|
+
* Verifies that the given value is not null.
|
|
45
|
+
* This especially helps with a `.filter`
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* const values: (number | null)[] = [1, 2, null, 4];
|
|
49
|
+
* const nonNullValues: number[] = values.filter(isNotNull);
|
|
50
|
+
* // nonNullValues is now of type number[]
|
|
51
|
+
* ```
|
|
52
|
+
* @see {@link isUndefined}
|
|
53
|
+
* @see {@link isNotUndefined}
|
|
54
|
+
*/
|
|
5
55
|
export declare function isNotNull<T>(x: T | null): x is T;
|
|
6
56
|
export type GuardMessage = string | (() => string);
|
|
7
57
|
/**
|
|
8
|
-
* @param assertion
|
|
9
|
-
* @param message
|
|
58
|
+
* @param assertion - will be asserted
|
|
59
|
+
* @param message - if a string, we will use it as the error message, if it is a function, we will call it to produce the error message (can be used to avoid costly message generations)
|
|
10
60
|
* @throws GuardError - if the assertion fails
|
|
11
61
|
*/
|
|
12
62
|
export declare function guard(assertion: unknown | undefined, message?: GuardMessage): asserts assertion;
|
package/util/assert.js
CHANGED
|
@@ -8,15 +8,65 @@ exports.isNotNull = isNotNull;
|
|
|
8
8
|
exports.guard = guard;
|
|
9
9
|
/* v8 ignore next */
|
|
10
10
|
const version_1 = require("./version");
|
|
11
|
+
/**
|
|
12
|
+
* Verifies, that the given code path is never reached.
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* type Shape = Circle | Square;
|
|
16
|
+
* function area(s: Shape): number {
|
|
17
|
+
* switch(s.type) {
|
|
18
|
+
* case 'circle': return Math.PI * s.radius ** 2;
|
|
19
|
+
* case 'square': return s.sideLength ** 2;
|
|
20
|
+
* default: return assertUnreachable(s); // ensures that all cases are covered
|
|
21
|
+
* }
|
|
22
|
+
* }
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
11
25
|
function assertUnreachable(x) {
|
|
12
26
|
throw new Error(`Unexpected object: ${JSON.stringify(x)}`);
|
|
13
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Verifies that the given value is not undefined.
|
|
30
|
+
* This especially helps with a `.filter`
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* const values: (number | undefined)[] = [1, 2, undefined, 4];
|
|
34
|
+
* const definedValues: number[] = values.filter(isNotUndefined);
|
|
35
|
+
* // definedValues is now of type number[]
|
|
36
|
+
* ```
|
|
37
|
+
* @see {@link isUndefined}
|
|
38
|
+
* @see {@link isNotNull}
|
|
39
|
+
*/
|
|
14
40
|
function isNotUndefined(x) {
|
|
15
41
|
return x !== undefined;
|
|
16
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Verifies that the given value is undefined.
|
|
45
|
+
* This especially helps with a `.filter`
|
|
46
|
+
* @example
|
|
47
|
+
* ```ts
|
|
48
|
+
* const values: (number | undefined)[] = [1, 2, undefined, 4];
|
|
49
|
+
* const undefinedValues: undefined[] = values.filter(isUndefined);
|
|
50
|
+
* // undefinedValues is now of type undefined[]
|
|
51
|
+
* ```
|
|
52
|
+
* @see {@link isNotUndefined}
|
|
53
|
+
* @see {@link isNotNull}
|
|
54
|
+
*/
|
|
17
55
|
function isUndefined(x) {
|
|
18
56
|
return x === undefined;
|
|
19
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Verifies that the given value is not null.
|
|
60
|
+
* This especially helps with a `.filter`
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* const values: (number | null)[] = [1, 2, null, 4];
|
|
64
|
+
* const nonNullValues: number[] = values.filter(isNotNull);
|
|
65
|
+
* // nonNullValues is now of type number[]
|
|
66
|
+
* ```
|
|
67
|
+
* @see {@link isUndefined}
|
|
68
|
+
* @see {@link isNotUndefined}
|
|
69
|
+
*/
|
|
20
70
|
function isNotNull(x) {
|
|
21
71
|
return x !== null;
|
|
22
72
|
}
|
|
@@ -61,8 +111,8 @@ class GuardError extends Error {
|
|
|
61
111
|
}
|
|
62
112
|
}
|
|
63
113
|
/**
|
|
64
|
-
* @param assertion
|
|
65
|
-
* @param message
|
|
114
|
+
* @param assertion - will be asserted
|
|
115
|
+
* @param message - if a string, we will use it as the error message, if it is a function, we will call it to produce the error message (can be used to avoid costly message generations)
|
|
66
116
|
* @throws GuardError - if the assertion fails
|
|
67
117
|
*/
|
|
68
118
|
function guard(assertion, message = 'Assertion failed') {
|
|
@@ -18,7 +18,6 @@ export type LastOfArray<T extends AnyArray> = T extends [...infer _, infer L] ?
|
|
|
18
18
|
/**
|
|
19
19
|
* Splits the array every time the given predicate fires.
|
|
20
20
|
* The element the split appears on will not be included!
|
|
21
|
-
*
|
|
22
21
|
* @example with this we can split on all empty strings:
|
|
23
22
|
* ```
|
|
24
23
|
* splitArrayOn(['a', '', 'b', '', '', 'c'], elem => elem === '')
|
|
@@ -38,11 +37,14 @@ export declare function splitArrayOn<T>(arr: readonly T[], predicate: (elem: T)
|
|
|
38
37
|
export declare function partitionArray<T>(arr: readonly T[], predicate: (elem: T) => boolean): [T[], T[]];
|
|
39
38
|
/**
|
|
40
39
|
* Generate all permutations of the given array using Heap's algorithm (with its non-recursive variant).
|
|
41
|
-
*
|
|
42
40
|
* @param arr - The array to permute
|
|
43
41
|
* @see getUniqueCombinationsOfSize
|
|
44
42
|
*/
|
|
45
43
|
export declare function allPermutations<T>(arr: T[]): Generator<T[], void, void>;
|
|
44
|
+
/**
|
|
45
|
+
* Returns a tuple of two arrays, where the first one contains all elements for which the predicate returned true,
|
|
46
|
+
* and the second one contains all elements for which the predicate returned false.
|
|
47
|
+
*/
|
|
46
48
|
export declare function partition<T>(arr: T[], predicate: (elem: T) => boolean): [T[], T[]];
|
|
47
49
|
/**
|
|
48
50
|
* Generate all unique combinations of the array with the given size.
|
|
@@ -50,7 +52,6 @@ export declare function partition<T>(arr: T[], predicate: (elem: T) => boolean):
|
|
|
50
52
|
* but not, e.g., `[a,a]` or `[b,a]`.
|
|
51
53
|
*
|
|
52
54
|
* If `minSize!=maxSize`, the result is guaranteed to be sorted by size.
|
|
53
|
-
*
|
|
54
55
|
* @param array - The array to generate combinations from
|
|
55
56
|
* @param minSize - The inclusive minimum size of the combinations, must be at least `0` and at most `maxSize`
|
|
56
57
|
* @param maxSize - The inclusive maximum size of the combinations, must be at least `minSize` and at most `array.length`
|
|
@@ -64,13 +65,15 @@ export declare function arraySum(arr: readonly number[]): number;
|
|
|
64
65
|
* Converts an array into a bag data-structure (in the form of a map mapping the entries/keys to their counts)
|
|
65
66
|
*/
|
|
66
67
|
export declare function array2bag<T>(arr: T[]): Map<T, number>;
|
|
68
|
+
/**
|
|
69
|
+
* Compares two arrays for equality, using the given comparison function for the elements.
|
|
70
|
+
*/
|
|
67
71
|
export declare function arrayEqual<T>(a: readonly T[] | undefined, b: readonly T[] | undefined, cmp?: (a: T, b: T) => boolean): boolean;
|
|
68
72
|
/**
|
|
69
73
|
* Samples elements from a list such that the distance between the sampled elements is as equal as possible.
|
|
70
74
|
*
|
|
71
75
|
* If the number of elements to sample is greater or equal to the number of elements in the list, the list is returned as is.
|
|
72
76
|
* If the number of elements to sample is less than or equal to 0, an empty list is returned.
|
|
73
|
-
*
|
|
74
77
|
* @param list - list of elements
|
|
75
78
|
* @param sampleCount - number of elements to sample
|
|
76
79
|
* @param rounding - rounding mode to use for the index calculation
|
|
@@ -85,9 +88,11 @@ export declare function equidistantSampling<T>(list: readonly T[], sampleCount:
|
|
|
85
88
|
* cartesianProduct([1, 2], ['a', 'b', 'c'], [true, false])
|
|
86
89
|
* // -> [[1, 'a', true], [1, 'a', false], [1, 'b', true], [1, 'b', false], [1, 'c', true], [1, 'c', false], [2, 'a', true], [2, 'a', false], [2, 'b', true], [2, 'b', false], [2, 'c', true], [2, 'c', false]]
|
|
87
90
|
* ```
|
|
88
|
-
*
|
|
89
91
|
*/
|
|
90
92
|
export declare function cartesianProduct<T>(...arrays: T[][]): T[][];
|
|
91
93
|
/** merge two arrays, removing duplicates */
|
|
92
94
|
export declare function uniqueArrayMerge<T>(left: readonly T[], right: readonly T[]): T[];
|
|
95
|
+
/**
|
|
96
|
+
* Groups the elements of the given array by the key returned by the given key function.
|
|
97
|
+
*/
|
|
93
98
|
export declare function arraysGroupBy<T, K>(arr: readonly T[], keyFn: (elem: T) => K): Map<K, T[]>;
|
|
@@ -16,7 +16,6 @@ const assert_1 = require("../assert");
|
|
|
16
16
|
/**
|
|
17
17
|
* Splits the array every time the given predicate fires.
|
|
18
18
|
* The element the split appears on will not be included!
|
|
19
|
-
*
|
|
20
19
|
* @example with this we can split on all empty strings:
|
|
21
20
|
* ```
|
|
22
21
|
* splitArrayOn(['a', '', 'b', '', '', 'c'], elem => elem === '')
|
|
@@ -66,7 +65,6 @@ function partitionArray(arr, predicate) {
|
|
|
66
65
|
}
|
|
67
66
|
/**
|
|
68
67
|
* Generate all permutations of the given array using Heap's algorithm (with its non-recursive variant).
|
|
69
|
-
*
|
|
70
68
|
* @param arr - The array to permute
|
|
71
69
|
* @see getUniqueCombinationsOfSize
|
|
72
70
|
*/
|
|
@@ -91,6 +89,10 @@ function* allPermutations(arr) {
|
|
|
91
89
|
}
|
|
92
90
|
}
|
|
93
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Returns a tuple of two arrays, where the first one contains all elements for which the predicate returned true,
|
|
94
|
+
* and the second one contains all elements for which the predicate returned false.
|
|
95
|
+
*/
|
|
94
96
|
function partition(arr, predicate) {
|
|
95
97
|
const left = [];
|
|
96
98
|
const right = [];
|
|
@@ -110,7 +112,6 @@ function partition(arr, predicate) {
|
|
|
110
112
|
* but not, e.g., `[a,a]` or `[b,a]`.
|
|
111
113
|
*
|
|
112
114
|
* If `minSize!=maxSize`, the result is guaranteed to be sorted by size.
|
|
113
|
-
*
|
|
114
115
|
* @param array - The array to generate combinations from
|
|
115
116
|
* @param minSize - The inclusive minimum size of the combinations, must be at least `0` and at most `maxSize`
|
|
116
117
|
* @param maxSize - The inclusive maximum size of the combinations, must be at least `minSize` and at most `array.length`
|
|
@@ -164,6 +165,9 @@ function array2bag(arr) {
|
|
|
164
165
|
}
|
|
165
166
|
return result;
|
|
166
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* Compares two arrays for equality, using the given comparison function for the elements.
|
|
170
|
+
*/
|
|
167
171
|
function arrayEqual(a, b, cmp = (a, b) => a === b) {
|
|
168
172
|
if (a === undefined || b === undefined) {
|
|
169
173
|
return a === b;
|
|
@@ -183,7 +187,6 @@ function arrayEqual(a, b, cmp = (a, b) => a === b) {
|
|
|
183
187
|
*
|
|
184
188
|
* If the number of elements to sample is greater or equal to the number of elements in the list, the list is returned as is.
|
|
185
189
|
* If the number of elements to sample is less than or equal to 0, an empty list is returned.
|
|
186
|
-
*
|
|
187
190
|
* @param list - list of elements
|
|
188
191
|
* @param sampleCount - number of elements to sample
|
|
189
192
|
* @param rounding - rounding mode to use for the index calculation
|
|
@@ -212,7 +215,6 @@ function equidistantSampling(list, sampleCount, rounding = 'ceil') {
|
|
|
212
215
|
* cartesianProduct([1, 2], ['a', 'b', 'c'], [true, false])
|
|
213
216
|
* // -> [[1, 'a', true], [1, 'a', false], [1, 'b', true], [1, 'b', false], [1, 'c', true], [1, 'c', false], [2, 'a', true], [2, 'a', false], [2, 'b', true], [2, 'b', false], [2, 'c', true], [2, 'c', false]]
|
|
214
217
|
* ```
|
|
215
|
-
*
|
|
216
218
|
*/
|
|
217
219
|
function cartesianProduct(...arrays) {
|
|
218
220
|
return arrays.reduce((a, b) => a.flatMap(x => b.map(y => x.concat(y))), [[]]);
|
|
@@ -225,6 +227,9 @@ function uniqueArrayMerge(left, right) {
|
|
|
225
227
|
}
|
|
226
228
|
return Array.from(result);
|
|
227
229
|
}
|
|
230
|
+
/**
|
|
231
|
+
* Groups the elements of the given array by the key returned by the given key function.
|
|
232
|
+
*/
|
|
228
233
|
function arraysGroupBy(arr, keyFn) {
|
|
229
234
|
const result = new Map();
|
|
230
235
|
for (const elem of arr) {
|
|
@@ -8,23 +8,23 @@ export declare class DefaultMap<K, V = K> {
|
|
|
8
8
|
/** generator function to produce a default value for a given key */
|
|
9
9
|
private readonly generator;
|
|
10
10
|
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
* @param generator - the generator to produce a default value for a given key
|
|
12
|
+
* @param map - the initial map to start with
|
|
13
|
+
*/
|
|
14
14
|
constructor(generator: (k: K) => V, map?: Map<K, V>);
|
|
15
15
|
/**
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
* Sets a value for a given key.
|
|
17
|
+
* As you provide value, this does not invoke the generator!
|
|
18
|
+
*/
|
|
19
19
|
set(k: K, v: V): this;
|
|
20
20
|
/**
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
* Return a value for the given key, if the key does not exist within the default map,
|
|
22
|
+
* this will invoke the generator and assign the produced value.
|
|
23
|
+
*/
|
|
24
24
|
get(k: K): V;
|
|
25
25
|
/**
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
* Iterates over all entries that have been set (explicitly or by the generator)
|
|
27
|
+
*/
|
|
28
28
|
entries(): IterableIterator<[K, V]>;
|
|
29
29
|
/** returns only the keys really stored in the map */
|
|
30
30
|
keys(): IterableIterator<K>;
|
|
@@ -11,25 +11,25 @@ class DefaultMap {
|
|
|
11
11
|
/** generator function to produce a default value for a given key */
|
|
12
12
|
generator;
|
|
13
13
|
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
* @param generator - the generator to produce a default value for a given key
|
|
15
|
+
* @param map - the initial map to start with
|
|
16
|
+
*/
|
|
17
17
|
constructor(generator, map = new Map()) {
|
|
18
18
|
this.generator = generator;
|
|
19
19
|
this.internal = map;
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
* Sets a value for a given key.
|
|
23
|
+
* As you provide value, this does not invoke the generator!
|
|
24
|
+
*/
|
|
25
25
|
set(k, v) {
|
|
26
26
|
this.internal.set(k, v);
|
|
27
27
|
return this;
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
* Return a value for the given key, if the key does not exist within the default map,
|
|
31
|
+
* this will invoke the generator and assign the produced value.
|
|
32
|
+
*/
|
|
33
33
|
get(k) {
|
|
34
34
|
const potential = this.internal.get(k);
|
|
35
35
|
if (potential !== undefined) {
|
|
@@ -42,8 +42,8 @@ class DefaultMap {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
* Iterates over all entries that have been set (explicitly or by the generator)
|
|
46
|
+
*/
|
|
47
47
|
entries() {
|
|
48
48
|
return this.internal.entries();
|
|
49
49
|
}
|
package/util/containers.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { REnvironmentInformation } from '../dataflow/environments/environment';
|
|
2
2
|
import type { Identifier } from '../dataflow/environments/identifier';
|
|
3
|
-
import type
|
|
3
|
+
import { type ContainerIndices, type ContainerIndicesCollection, type IndexIdentifier } from '../dataflow/graph/vertex';
|
|
4
4
|
import type { RAccess } from '../r-bridge/lang-4.x/ast/model/nodes/r-access';
|
|
5
5
|
import type { RArgument } from '../r-bridge/lang-4.x/ast/model/nodes/r-argument';
|
|
6
|
-
import type
|
|
6
|
+
import { type RFunctionArgument } from '../r-bridge/lang-4.x/ast/model/nodes/r-function-call';
|
|
7
7
|
import type { ParentInformation } from '../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
8
8
|
/**
|
|
9
9
|
* Returns the accessed and access argument of an access operation by filtering the operation arguments.
|
|
@@ -14,7 +14,6 @@ export declare function getAccessOperands<OtherInfo>(args: readonly RFunctionArg
|
|
|
14
14
|
};
|
|
15
15
|
/**
|
|
16
16
|
* Resolves the passed name within the passed environment and returns the indicesCollection of the resolved definitions.
|
|
17
|
-
*
|
|
18
17
|
* @param name - Name to resolve
|
|
19
18
|
* @param environment - Environment in which name is resolved
|
|
20
19
|
* @returns The indicesCollection of the resolved definitions
|
|
@@ -24,7 +23,6 @@ export declare function resolveIndicesByName(name: Identifier, environment: REnv
|
|
|
24
23
|
* Resolves {@link accessedArg} in the {@link environment} and filters its indices according to {@link accessArg}.
|
|
25
24
|
*
|
|
26
25
|
* If no indices could be found that match the `accessArg`, the original indices are returned as overapproximation.
|
|
27
|
-
*
|
|
28
26
|
* @param accessedArg - The argument to resolve
|
|
29
27
|
* @param accessArg - The argument which is used to filter the indices
|
|
30
28
|
* @param environment - The environment in which {@link accessedArg} is resolved
|
|
@@ -38,7 +36,6 @@ export declare function resolveSingleIndex(accessedArg: {
|
|
|
38
36
|
}, environment: REnvironmentInformation, isIndexBasedAccess: boolean): ContainerIndicesCollection;
|
|
39
37
|
/**
|
|
40
38
|
* Filters the single indices of the {@link indicesCollection} according to the lexeme of the {@link accessArg}.
|
|
41
|
-
*
|
|
42
39
|
* @param indicesCollection - The {@link ContainerIndicesCollection} to filter
|
|
43
40
|
* @param accessArg - The argument which is used to filter {@link indicesCollection}
|
|
44
41
|
* @param isIndexBasedAccess - Whether the access is index-based (e.g. `x[1]`) or name-based (e.g. `x$name`)
|
|
@@ -55,7 +52,6 @@ export declare function filterIndices(indicesCollection: ContainerIndicesCollect
|
|
|
55
52
|
* person$credentials$username
|
|
56
53
|
* ```
|
|
57
54
|
* would result in a list with the index `credentials`, which has the subIndex `username`.
|
|
58
|
-
*
|
|
59
55
|
* @param accessedArg - The top level argument that is accessed
|
|
60
56
|
* @param leafIndices - The index at the end of the nested access i.e. `c` in `a$b$c`.
|
|
61
57
|
* @param constructIdentifier - A function that constructs the identifier for the index from the argument
|
|
@@ -64,7 +60,6 @@ export declare function filterIndices(indicesCollection: ContainerIndicesCollect
|
|
|
64
60
|
export declare function constructNestedAccess<OtherInfo>(accessedArg: RAccess<OtherInfo & ParentInformation>, leafIndices: ContainerIndices, constructIdentifier: (arg: RArgument<OtherInfo & ParentInformation>) => IndexIdentifier): ContainerIndices[];
|
|
65
61
|
/**
|
|
66
62
|
* Adds the passed list of {@link leafSubIndices} to the leaf (sub-)indices of {@link indicesCollection}.
|
|
67
|
-
*
|
|
68
63
|
* @param indicesCollection - Indices where to add the sub indices.
|
|
69
64
|
* @param leafSubIndices - Indices that are added to the leaf indices.
|
|
70
65
|
*/
|
package/util/containers.js
CHANGED
|
@@ -21,7 +21,6 @@ function getAccessOperands(args) {
|
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Resolves the passed name within the passed environment and returns the indicesCollection of the resolved definitions.
|
|
24
|
-
*
|
|
25
24
|
* @param name - Name to resolve
|
|
26
25
|
* @param environment - Environment in which name is resolved
|
|
27
26
|
* @returns The indicesCollection of the resolved definitions
|
|
@@ -34,7 +33,6 @@ function resolveIndicesByName(name, environment) {
|
|
|
34
33
|
* Resolves {@link accessedArg} in the {@link environment} and filters its indices according to {@link accessArg}.
|
|
35
34
|
*
|
|
36
35
|
* If no indices could be found that match the `accessArg`, the original indices are returned as overapproximation.
|
|
37
|
-
*
|
|
38
36
|
* @param accessedArg - The argument to resolve
|
|
39
37
|
* @param accessArg - The argument which is used to filter the indices
|
|
40
38
|
* @param environment - The environment in which {@link accessedArg} is resolved
|
|
@@ -55,7 +53,6 @@ function resolveSingleIndex(accessedArg, accessArg, environment, isIndexBasedAcc
|
|
|
55
53
|
}
|
|
56
54
|
/**
|
|
57
55
|
* Filters the single indices of the {@link indicesCollection} according to the lexeme of the {@link accessArg}.
|
|
58
|
-
*
|
|
59
56
|
* @param indicesCollection - The {@link ContainerIndicesCollection} to filter
|
|
60
57
|
* @param accessArg - The argument which is used to filter {@link indicesCollection}
|
|
61
58
|
* @param isIndexBasedAccess - Whether the access is index-based (e.g. `x[1]`) or name-based (e.g. `x$name`)
|
|
@@ -84,7 +81,6 @@ function filterIndices(indicesCollection, accessArg, isIndexBasedAccess) {
|
|
|
84
81
|
* person$credentials$username
|
|
85
82
|
* ```
|
|
86
83
|
* would result in a list with the index `credentials`, which has the subIndex `username`.
|
|
87
|
-
*
|
|
88
84
|
* @param accessedArg - The top level argument that is accessed
|
|
89
85
|
* @param leafIndices - The index at the end of the nested access i.e. `c` in `a$b$c`.
|
|
90
86
|
* @param constructIdentifier - A function that constructs the identifier for the index from the argument
|
|
@@ -117,7 +113,6 @@ function constructNestedAccess(accessedArg, leafIndices, constructIdentifier) {
|
|
|
117
113
|
}
|
|
118
114
|
/**
|
|
119
115
|
* Adds the passed list of {@link leafSubIndices} to the leaf (sub-)indices of {@link indicesCollection}.
|
|
120
|
-
*
|
|
121
116
|
* @param indicesCollection - Indices where to add the sub indices.
|
|
122
117
|
* @param leafSubIndices - Indices that are added to the leaf indices.
|
|
123
118
|
*/
|
package/util/diff-graph.d.ts
CHANGED
|
@@ -17,7 +17,6 @@ interface ProblematicEdge {
|
|
|
17
17
|
export type ProblematicDiffInfo = ProblematicVertex | ProblematicEdge;
|
|
18
18
|
/**
|
|
19
19
|
* To be produced by a function differencing two graphs (e.g., {@link DataflowGraph|DFGs} or {@link ControlFlowGraph|CFGs}).
|
|
20
|
-
*
|
|
21
20
|
* @see {@link GraphDifferenceReport#isEqual|isEqual} - to check whether the graphs are equal
|
|
22
21
|
* @see {@link GraphDifferenceReport#addComment|addComment} - to add comments to the report
|
|
23
22
|
* @see {@link GraphDifferenceReport#comments|comments} - to get the attached comments
|
package/util/diff-graph.js
CHANGED
|
@@ -4,7 +4,6 @@ exports.GraphDifferenceReport = void 0;
|
|
|
4
4
|
exports.initDiffContext = initDiffContext;
|
|
5
5
|
/**
|
|
6
6
|
* To be produced by a function differencing two graphs (e.g., {@link DataflowGraph|DFGs} or {@link ControlFlowGraph|CFGs}).
|
|
7
|
-
*
|
|
8
7
|
* @see {@link GraphDifferenceReport#isEqual|isEqual} - to check whether the graphs are equal
|
|
9
8
|
* @see {@link GraphDifferenceReport#addComment|addComment} - to add comments to the report
|
|
10
9
|
* @see {@link GraphDifferenceReport#comments|comments} - to get the attached comments
|
package/util/diff.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Provides utility types and functions to provide difference information if two structures
|
|
3
3
|
* are not equal. Maybe. Sometime, in the far future this will be as capable as the waldo package :dream:
|
|
4
|
-
*
|
|
5
4
|
* @module
|
|
6
5
|
*/
|
|
7
6
|
import type { MergeableRecord } from './objects';
|
|
@@ -52,4 +51,7 @@ export interface GenericDiffConfiguration {
|
|
|
52
51
|
*/
|
|
53
52
|
readonly leftIsSubgraph?: boolean;
|
|
54
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Computes the difference of two sets and adds human-readable information to the current report
|
|
56
|
+
*/
|
|
55
57
|
export declare function setDifference<T, Report extends WriteableDifferenceReport = WriteableDifferenceReport>(left: ReadonlySet<T>, right: ReadonlySet<T>, info: GenericDifferenceInformation<Report>): void;
|
package/util/diff.js
CHANGED
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Provides utility types and functions to provide difference information if two structures
|
|
4
4
|
* are not equal. Maybe. Sometime, in the far future this will be as capable as the waldo package :dream:
|
|
5
|
-
*
|
|
6
5
|
* @module
|
|
7
6
|
*/
|
|
8
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
8
|
exports.setDifference = setDifference;
|
|
10
9
|
const set_1 = require("./collections/set");
|
|
10
|
+
/**
|
|
11
|
+
* Computes the difference of two sets and adds human-readable information to the current report
|
|
12
|
+
*/
|
|
11
13
|
function setDifference(left, right, info) {
|
|
12
14
|
const lWithoutR = (0, set_1.setMinus)(left, right);
|
|
13
15
|
const rWithoutL = (0, set_1.setMinus)(right, left);
|