@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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type SummarizedMeasurement } from '../../util/summarizer';
|
|
2
2
|
import { RFalse, RTrue } from '../../r-bridge/lang-4.x/convert-values';
|
|
3
3
|
import type { RArgument } from '../../r-bridge/lang-4.x/ast/model/nodes/r-argument';
|
|
4
4
|
import type { RNode } from '../../r-bridge/lang-4.x/ast/model/model';
|
|
@@ -20,10 +20,19 @@ export interface CommonSyntaxTypeCounts<Measurement = bigint> {
|
|
|
20
20
|
unaryOp: Record<string, Measurement>;
|
|
21
21
|
other: Record<string, Measurement>;
|
|
22
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
23
26
|
export declare function emptyCommonSyntaxTypeCounts<T = bigint>(init?: () => T): CommonSyntaxTypeCounts<T>;
|
|
24
27
|
/**
|
|
25
28
|
* Updates the given counts based on the type of the given node.
|
|
26
29
|
*/
|
|
27
30
|
export declare function updateCommonSyntaxTypeCounts(current: CommonSyntaxTypeCounts, ...nodes: (RNode | RArgument)[]): CommonSyntaxTypeCounts;
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
28
34
|
export declare function appendCommonSyntaxTypeCounter(a: CommonSyntaxTypeCounts<number[][]>, b: CommonSyntaxTypeCounts): void;
|
|
35
|
+
/**
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
29
38
|
export declare function summarizeCommonSyntaxTypeCounter(a: CommonSyntaxTypeCounts<number[][]>): CommonSyntaxTypeCounts<SummarizedMeasurement>;
|
|
@@ -11,6 +11,9 @@ const numbers_1 = require("../../util/numbers");
|
|
|
11
11
|
const summarizer_1 = require("../../util/summarizer");
|
|
12
12
|
const convert_values_1 = require("../../r-bridge/lang-4.x/convert-values");
|
|
13
13
|
const type_1 = require("../../r-bridge/lang-4.x/ast/model/type");
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
14
17
|
function emptyCommonSyntaxTypeCounts(init = () => 0n) {
|
|
15
18
|
return {
|
|
16
19
|
total: init(),
|
|
@@ -115,6 +118,9 @@ function appendRecord(a, b) {
|
|
|
115
118
|
get.push([(0, numbers_1.bigint2number)(val)]);
|
|
116
119
|
}
|
|
117
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
*
|
|
123
|
+
*/
|
|
118
124
|
function appendCommonSyntaxTypeCounter(a, b) {
|
|
119
125
|
a.total.push([(0, numbers_1.bigint2number)(b.total)]);
|
|
120
126
|
a.empty.push([(0, numbers_1.bigint2number)(b.empty)]);
|
|
@@ -136,6 +142,9 @@ function appendCommonSyntaxTypeCounter(a, b) {
|
|
|
136
142
|
function summarizeRecord(a) {
|
|
137
143
|
return Object.fromEntries(Object.entries(a).map(([key, val]) => [key, (0, summarizer_1.summarizeMeasurement)(val.flat(), val.length)]));
|
|
138
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
*
|
|
147
|
+
*/
|
|
139
148
|
function summarizeCommonSyntaxTypeCounter(a) {
|
|
140
149
|
return {
|
|
141
150
|
total: (0, summarizer_1.summarizeMeasurement)(a.total.flat(), a.total.length),
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* This module holds the definition of what a {@link Feature} that can be extracted from an R AST is.
|
|
3
3
|
*
|
|
4
4
|
* Furthermore, it contains the definition of all features that are known in {@link ALL_FEATURES}.
|
|
5
|
-
*
|
|
6
5
|
* @module
|
|
7
6
|
*/
|
|
8
7
|
import type { EvalOptions } from 'xpath-ts2/src/parse-api';
|
|
@@ -38,9 +37,7 @@ export interface FeatureProcessorInput extends MergeableRecord {
|
|
|
38
37
|
export type FeatureProcessor<T extends FeatureInfo> = (existing: T, input: FeatureProcessorInput) => T;
|
|
39
38
|
/**
|
|
40
39
|
* A feature is something to be retrieved by the statistics.
|
|
41
|
-
*
|
|
42
40
|
* @typeParam T - The type of what should be collected for the feature
|
|
43
|
-
*
|
|
44
41
|
* @see ALL_FEATURES
|
|
45
42
|
*/
|
|
46
43
|
export interface Feature<T extends FeatureInfo> {
|
|
@@ -54,7 +51,6 @@ export interface Feature<T extends FeatureInfo> {
|
|
|
54
51
|
* If present, this feature allows to post-process the results of the feature extraction (for the summarizer).
|
|
55
52
|
* <p>
|
|
56
53
|
* The extraction can use the output path to write files to, and should return the final output.
|
|
57
|
-
*
|
|
58
54
|
* @param featureRoot - The root path to the feature directory which should contain all the files the feature can write to (already merged for every file processed)
|
|
59
55
|
* @param info - The feature statistic maps each file name/context encountered to the feature information as well as the meta statistics for the file
|
|
60
56
|
* @param outputPath - The path to write the output to (besides what is collected in the output and meta information)
|
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
* This module holds the definition of what a {@link Feature} that can be extracted from an R AST is.
|
|
4
4
|
*
|
|
5
5
|
* Furthermore, it contains the definition of all features that are known in {@link ALL_FEATURES}.
|
|
6
|
-
*
|
|
7
6
|
* @module
|
|
8
7
|
*/
|
|
9
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -5,8 +5,14 @@ export interface SummarizedWithProject<Uniques = Set<string>, Count = number[]>
|
|
|
5
5
|
uniqueFiles: Uniques;
|
|
6
6
|
count: Count;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
8
11
|
export declare function emptySummarizedWithProject(): SummarizedWithProject;
|
|
9
12
|
export type ReplaceKeysForSummary<Source, Target> = MergeableRecord & {
|
|
10
13
|
[K in keyof Source]: Target;
|
|
11
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
12
18
|
export declare function recordFilePath(summarize: SummarizedWithProject, filepath: string, config: StatisticsSummarizerConfiguration): void;
|
|
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.emptySummarizedWithProject = emptySummarizedWithProject;
|
|
7
7
|
exports.recordFilePath = recordFilePath;
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
9
12
|
function emptySummarizedWithProject() {
|
|
10
13
|
return {
|
|
11
14
|
uniqueProjects: new Set(),
|
|
@@ -13,6 +16,9 @@ function emptySummarizedWithProject() {
|
|
|
13
16
|
count: []
|
|
14
17
|
};
|
|
15
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
16
22
|
function recordFilePath(summarize, filepath, config) {
|
|
17
23
|
summarize.uniqueFiles.add(filepath);
|
|
18
24
|
summarize.uniqueProjects.add(filepath.split(path_1.default.sep)[config.projectSkip] ?? '');
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { FeatureStatisticsWithMeta } from '../../feature';
|
|
2
2
|
import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { FeatureStatisticsWithMeta } from '../../feature';
|
|
2
2
|
import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
|
|
@@ -30,6 +30,9 @@ function mapComments(data, fn) {
|
|
|
30
30
|
}
|
|
31
31
|
return collected;
|
|
32
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
33
36
|
function postProcess(featureRoot, info, outputPath, config) {
|
|
34
37
|
// for each we collect the count and the number of files that contain them
|
|
35
38
|
const collected = mapComments(comments_1.initialCommentInfo, initialCommentsMeta);
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { FeatureStatisticsWithMeta } from '../../feature';
|
|
2
2
|
import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
|
|
@@ -9,6 +9,9 @@ const post_processing_1 = require("../../post-processing");
|
|
|
9
9
|
const fs_1 = __importDefault(require("fs"));
|
|
10
10
|
const path_1 = __importDefault(require("path"));
|
|
11
11
|
const summarizer_1 = require("../../../../util/summarizer");
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
12
15
|
function postProcess(featureRoot, info, outputPath, config) {
|
|
13
16
|
const collected = {
|
|
14
17
|
ifThen: (0, common_syntax_probability_1.emptyCommonSyntaxTypeCounts)(() => []),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Feature } from '../../feature';
|
|
2
2
|
import type { Writable } from 'ts-essentials';
|
|
3
|
-
import type
|
|
3
|
+
import { type CommonSyntaxTypeCounts } from '../../common-syntax-probability';
|
|
4
4
|
declare const initialDataAccessInfo: {
|
|
5
5
|
singleBracket: Record<number, bigint | CommonSyntaxTypeCounts>;
|
|
6
6
|
doubleBracket: Record<number, bigint | CommonSyntaxTypeCounts>;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { FeatureStatisticsWithMeta } from '../../feature';
|
|
2
2
|
import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Feature } from '../../feature';
|
|
2
2
|
import type { Writable } from 'ts-essentials';
|
|
3
3
|
import type { MergeableRecord } from '../../../../util/objects';
|
|
4
|
-
import type
|
|
4
|
+
import { type SourcePosition } from '../../../../util/range';
|
|
5
5
|
declare const initialFunctionDefinitionInfo: {
|
|
6
6
|
/** all, anonymous, assigned, non-assigned, ... */
|
|
7
7
|
total: number;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { FeatureStatisticsWithMeta } from '../../feature';
|
|
2
2
|
import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
|
|
@@ -8,6 +8,9 @@ const post_processing_1 = require("../../post-processing");
|
|
|
8
8
|
const fs_1 = __importDefault(require("fs"));
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
10
|
const summarizer_1 = require("../../../../util/summarizer");
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
11
14
|
function postProcess(featureRoot, info, outputPath, config) {
|
|
12
15
|
const collected = {};
|
|
13
16
|
const deepestNestingOut = fs_1.default.createWriteStream(path_1.default.join(outputPath, 'deepest-nesting-per-file.csv'));
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { FeatureStatisticsWithMeta } from '../../feature';
|
|
2
2
|
import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
|
|
@@ -10,6 +10,9 @@ const path_1 = __importDefault(require("path"));
|
|
|
10
10
|
const fs_1 = __importDefault(require("fs"));
|
|
11
11
|
const numbers_1 = require("../../../../util/numbers");
|
|
12
12
|
const summarizer_1 = require("../../../../util/summarizer");
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
13
16
|
function postProcess(featureRoot, info, outputPath, config) {
|
|
14
17
|
const collected = {
|
|
15
18
|
forLoops: (0, common_syntax_probability_1.emptyCommonSyntaxTypeCounts)(() => []),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Feature } from '../../feature';
|
|
2
2
|
import type { Writable } from 'ts-essentials';
|
|
3
|
-
import type
|
|
3
|
+
import { type CommonSyntaxTypeCounts } from '../../common-syntax-probability';
|
|
4
4
|
declare const initialFunctionUsageInfo: {
|
|
5
5
|
allFunctionCalls: number;
|
|
6
6
|
args: Record<number, bigint | CommonSyntaxTypeCounts>;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { FeatureStatisticsWithMeta } from '../../feature';
|
|
2
2
|
import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
|
|
@@ -12,6 +12,9 @@ const summarizer_1 = require("../../../../util/summarizer");
|
|
|
12
12
|
const files_1 = require("../../../../util/files");
|
|
13
13
|
const strings_1 = require("../../../../util/text/strings");
|
|
14
14
|
const arrays_1 = require("../../../../util/collections/arrays");
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
15
18
|
function postProcess(featureRoot, info, outputPath, config) {
|
|
16
19
|
const collected = {};
|
|
17
20
|
for (const [filepath, data] of info.entries()) {
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { FeatureStatisticsWithMeta } from '../../feature';
|
|
2
2
|
import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
|
|
@@ -11,6 +11,9 @@ const summarizer_1 = require("../../../../util/summarizer");
|
|
|
11
11
|
const time_1 = require("../../../../util/text/time");
|
|
12
12
|
const files_1 = require("../../../../util/files");
|
|
13
13
|
const arrays_1 = require("../../../../util/collections/arrays");
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
14
17
|
function postProcess(featureRoot, info, outputPath, config) {
|
|
15
18
|
const collected = {};
|
|
16
19
|
for (const [filepath, data] of info.entries()) {
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { FeatureStatisticsWithMeta } from '../../feature';
|
|
2
|
-
import type
|
|
2
|
+
import { type SummarizedWithProject } from '../../post-processing';
|
|
3
3
|
import type { StatisticsSummarizerConfiguration } from '../../../summarizer/summarizer';
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
4
7
|
export declare function postProcess(featureRoot: string, info: Map<string, FeatureStatisticsWithMeta>, outputPath: string, config: StatisticsSummarizerConfiguration): void;
|
|
5
8
|
type VariableInfoMap = Map<string, SummarizedWithProject & {
|
|
6
9
|
linePercentageInFile: number[][];
|
|
7
10
|
}>;
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
8
14
|
export declare function writeVariableInfoToCsv(outputPath: string, filename: `${string}.csv`, data: VariableInfoMap): void;
|
|
9
15
|
export {};
|
|
@@ -58,6 +58,9 @@ function collectInformation(info, config) {
|
|
|
58
58
|
}
|
|
59
59
|
return collected;
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
*
|
|
63
|
+
*/
|
|
61
64
|
function postProcess(featureRoot, info, outputPath, config) {
|
|
62
65
|
const collected = collectInformation(info, config);
|
|
63
66
|
writeVariableCountsToCsv(outputPath, collected);
|
|
@@ -65,6 +68,9 @@ function postProcess(featureRoot, info, outputPath, config) {
|
|
|
65
68
|
collectDefinedVariables(featureRoot, info, config, outputPath);
|
|
66
69
|
collectRedefinedVariables(featureRoot, info, config, outputPath);
|
|
67
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
*
|
|
73
|
+
*/
|
|
68
74
|
function writeVariableInfoToCsv(outputPath, filename, data) {
|
|
69
75
|
const out = fs_1.default.createWriteStream(path_1.default.join(outputPath, filename));
|
|
70
76
|
out.write(`variable,unique-projects,unique-files,${(0, summarizer_1.summarizedMeasurement2CsvHeader)('count')},${(0, summarizer_1.summarizedMeasurement2CsvHeader)('line-frac')}\n`);
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
import type { RParseRequestFromFile, RParseRequestFromText } from '../r-bridge/retriever';
|
|
2
2
|
/**
|
|
3
3
|
* Statistics on skipped files, the time required, and more.
|
|
4
|
-
*
|
|
5
4
|
* @see extractUsageStatistics
|
|
6
5
|
* @see initialMetaStatistics
|
|
7
6
|
*/
|
|
8
7
|
export interface MetaStatistics {
|
|
9
8
|
/**
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
* The number of requests that were parsed successfully
|
|
10
|
+
*/
|
|
12
11
|
successfulParsed: number;
|
|
13
12
|
/**
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
* The processing time for each request
|
|
14
|
+
*/
|
|
16
15
|
processingTimeMs: number[];
|
|
17
16
|
/**
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
* All failed requests (e.g., if they can not be converted to XML)
|
|
18
|
+
*/
|
|
20
19
|
failedRequests: (RParseRequestFromText | RParseRequestFromFile)[];
|
|
21
20
|
/**
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
* Number of lines with each individual line length consumed for each request
|
|
22
|
+
*/
|
|
24
23
|
lines: number[][];
|
|
25
24
|
/**
|
|
26
25
|
* The number of nodes in the normalized AST
|
|
@@ -7,7 +7,6 @@ export declare class DummyAppendProvider implements StatisticAppendProvider {
|
|
|
7
7
|
private readonly map;
|
|
8
8
|
/**
|
|
9
9
|
* If you pass a map the dummy will log all append calls to the map, using the feature name and the appendage type as keys
|
|
10
|
-
*
|
|
11
10
|
* @param map - The map to log to
|
|
12
11
|
*/
|
|
13
12
|
constructor(map?: DummyAppendMemoryMap | undefined);
|
|
@@ -25,13 +24,13 @@ export declare class StatisticFileProvider implements StatisticAppendProvider {
|
|
|
25
24
|
private readonly connections;
|
|
26
25
|
constructor(statisticsDirectory: string | undefined);
|
|
27
26
|
/**
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
* @param name - the name of the feature {@link Feature#name}
|
|
28
|
+
* @param fn - the name of the feature-aspect to record
|
|
29
|
+
*/
|
|
31
30
|
private statisticsFile;
|
|
32
31
|
/**
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
* Append the given content to the information for a feature of the given name and function.
|
|
33
|
+
*/
|
|
35
34
|
append(name: string, fn: AppendFnType, content: string): void;
|
|
36
35
|
private getHandle;
|
|
37
36
|
}
|
|
@@ -12,7 +12,6 @@ class DummyAppendProvider {
|
|
|
12
12
|
map;
|
|
13
13
|
/**
|
|
14
14
|
* If you pass a map the dummy will log all append calls to the map, using the feature name and the appendage type as keys
|
|
15
|
-
*
|
|
16
15
|
* @param map - The map to log to
|
|
17
16
|
*/
|
|
18
17
|
constructor(map = undefined) {
|
|
@@ -63,15 +62,15 @@ class StatisticFileProvider {
|
|
|
63
62
|
});
|
|
64
63
|
}
|
|
65
64
|
/**
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
* @param name - the name of the feature {@link Feature#name}
|
|
66
|
+
* @param fn - the name of the feature-aspect to record
|
|
67
|
+
*/
|
|
69
68
|
statisticsFile(name, fn) {
|
|
70
69
|
return path_1.default.join(this.statisticsDirectory, name, `${fn}${exports.defaultStatisticsFileSuffix}`);
|
|
71
70
|
}
|
|
72
71
|
/**
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
* Append the given content to the information for a feature of the given name and function.
|
|
73
|
+
*/
|
|
75
74
|
append(name, fn, content) {
|
|
76
75
|
const descriptor = this.getHandle(name, String(fn));
|
|
77
76
|
fs_1.default.appendFileSync(descriptor, content + '\n', 'utf8');
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MetaStatistics } from '../meta-statistics';
|
|
2
|
-
import type
|
|
2
|
+
import { type FeatureKey, type FeatureStatistics } from '../features/feature';
|
|
3
3
|
interface MinMaxAvgMedian {
|
|
4
4
|
sum: number;
|
|
5
5
|
min: number;
|
|
@@ -7,11 +7,23 @@ interface MinMaxAvgMedian {
|
|
|
7
7
|
avg: number;
|
|
8
8
|
median: number;
|
|
9
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Calculates the min, max, average and median of the given data set.
|
|
12
|
+
*/
|
|
10
13
|
export declare function minMaxAvgAndMedian(data: number[]): MinMaxAvgMedian;
|
|
14
|
+
/**
|
|
15
|
+
* Formats the given statistics as a string.
|
|
16
|
+
*/
|
|
11
17
|
export declare function statsString(data: MinMaxAvgMedian, suffix?: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Prints the given feature statistics to the console.
|
|
20
|
+
*/
|
|
12
21
|
export declare function printFeatureStatistics(statistics: {
|
|
13
22
|
features: FeatureStatistics;
|
|
14
23
|
meta: MetaStatistics;
|
|
15
24
|
}, features?: 'all' | Set<FeatureKey>): void;
|
|
25
|
+
/**
|
|
26
|
+
* Prints a single feature statistics entry to the console.
|
|
27
|
+
*/
|
|
16
28
|
export declare function printFeatureStatisticsEntry(info: Record<string, unknown>): void;
|
|
17
29
|
export {};
|
|
@@ -8,6 +8,9 @@ const ansi_1 = require("../../util/text/ansi");
|
|
|
8
8
|
const json_1 = require("../../util/json");
|
|
9
9
|
const feature_1 = require("../features/feature");
|
|
10
10
|
const arrays_1 = require("../../util/collections/arrays");
|
|
11
|
+
/**
|
|
12
|
+
* Calculates the min, max, average and median of the given data set.
|
|
13
|
+
*/
|
|
11
14
|
function minMaxAvgAndMedian(data) {
|
|
12
15
|
data = data.sort((a, b) => a - b);
|
|
13
16
|
const sum = (0, arrays_1.arraySum)(data);
|
|
@@ -22,9 +25,15 @@ function minMaxAvgAndMedian(data) {
|
|
|
22
25
|
function formatStatNumber(num) {
|
|
23
26
|
return num === undefined ? '<?>' : Number(num.toFixed(3)).toLocaleString();
|
|
24
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Formats the given statistics as a string.
|
|
30
|
+
*/
|
|
25
31
|
function statsString(data, suffix = '') {
|
|
26
32
|
return `[${formatStatNumber(data.min)}${suffix} .. ${formatStatNumber(data.max)}${suffix}] (avg: ${formatStatNumber(data.avg)}${suffix}, median: ${formatStatNumber(data.median)}${suffix})`;
|
|
27
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Prints the given feature statistics to the console.
|
|
36
|
+
*/
|
|
28
37
|
function printFeatureStatistics(statistics, features = 'all') {
|
|
29
38
|
for (const feature of Object.keys(statistics.features)) {
|
|
30
39
|
if (features !== 'all' && !features.has(feature)) {
|
|
@@ -48,6 +57,9 @@ function printFeatureStatistics(statistics, features = 'all') {
|
|
|
48
57
|
`);
|
|
49
58
|
}
|
|
50
59
|
const pad = 3;
|
|
60
|
+
/**
|
|
61
|
+
* Prints a single feature statistics entry to the console.
|
|
62
|
+
*/
|
|
51
63
|
function printFeatureStatisticsEntry(info) {
|
|
52
64
|
let longestKey = 0;
|
|
53
65
|
let longestValue = 0;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type DummyAppendMemoryMap, type StatisticAppendProvider } from './file-provider';
|
|
2
2
|
/**
|
|
3
3
|
* Requires source information to be attached on parsing!
|
|
4
4
|
* <p>
|
|
@@ -13,7 +13,6 @@ export declare let statisticsFileProvider: StatisticAppendProvider;
|
|
|
13
13
|
export declare function initFileProvider(outputDirectory: string): void;
|
|
14
14
|
/**
|
|
15
15
|
* Either ignore the statistics or write them to a given map (e.g., for testing).
|
|
16
|
-
*
|
|
17
16
|
* @param map - The map to write to, will not persist calls if no map is given
|
|
18
17
|
*/
|
|
19
18
|
export declare function initDummyFileProvider(map?: DummyAppendMemoryMap): void;
|
|
@@ -32,7 +32,6 @@ function initFileProvider(outputDirectory) {
|
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
34
34
|
* Either ignore the statistics or write them to a given map (e.g., for testing).
|
|
35
|
-
*
|
|
36
35
|
* @param map - The map to write to, will not persist calls if no map is given
|
|
37
36
|
*/
|
|
38
37
|
function initDummyFileProvider(map) {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type MetaStatistics } from './meta-statistics';
|
|
2
2
|
import type { RParseRequestFromFile, RParseRequestFromText } from '../r-bridge/retriever';
|
|
3
3
|
import type { PipelineOutput } from '../core/steps/pipeline/pipeline';
|
|
4
4
|
import { DEFAULT_DATAFLOW_PIPELINE } from '../core/steps/pipeline/default-pipelines';
|
|
5
5
|
import type { RShell } from '../r-bridge/shell';
|
|
6
|
-
import type
|
|
6
|
+
import { type FeatureSelection, type FeatureStatistics } from './features/feature';
|
|
7
7
|
import type { FlowrConfigOptions } from '../config';
|
|
8
8
|
/**
|
|
9
9
|
* By default, {@link extractUsageStatistics} requires a generator, but sometimes you already know all the files
|
|
@@ -13,13 +13,12 @@ export declare function staticRequests(...requests: (RParseRequestFromText | RPa
|
|
|
13
13
|
type DataflowResult = PipelineOutput<typeof DEFAULT_DATAFLOW_PIPELINE>;
|
|
14
14
|
/**
|
|
15
15
|
* Extract all wanted statistic information from a set of requests using the presented R session.
|
|
16
|
-
*
|
|
17
16
|
* @param shell - The R session to use
|
|
18
17
|
* @param config - The flowr config
|
|
19
18
|
* @param onRequest - A callback that is called at the beginning of each request, this may be used to debug the requests.
|
|
20
19
|
* @param features - The features to extract (see {@link allFeatureNames}).
|
|
21
20
|
* @param requests - The requests to extract the features from. May generate them on demand (e.g., by traversing a folder).
|
|
22
|
-
*
|
|
21
|
+
* If your request is statically known, you can use {@link staticRequests} to create this generator.
|
|
23
22
|
* @param rootPath - The root path to the project, this is used to relativize the file paths in the statistics.
|
|
24
23
|
*/
|
|
25
24
|
export declare function extractUsageStatistics<T extends RParseRequestFromText | RParseRequestFromFile>(shell: RShell, config: FlowrConfigOptions, onRequest: (request: T) => void, features: FeatureSelection, requests: AsyncGenerator<T>, rootPath?: string): Promise<{
|
package/statistics/statistics.js
CHANGED
|
@@ -28,13 +28,12 @@ function staticRequests(...requests) {
|
|
|
28
28
|
}
|
|
29
29
|
/**
|
|
30
30
|
* Extract all wanted statistic information from a set of requests using the presented R session.
|
|
31
|
-
*
|
|
32
31
|
* @param shell - The R session to use
|
|
33
32
|
* @param config - The flowr config
|
|
34
33
|
* @param onRequest - A callback that is called at the beginning of each request, this may be used to debug the requests.
|
|
35
34
|
* @param features - The features to extract (see {@link allFeatureNames}).
|
|
36
35
|
* @param requests - The requests to extract the features from. May generate them on demand (e.g., by traversing a folder).
|
|
37
|
-
*
|
|
36
|
+
* If your request is statically known, you can use {@link staticRequests} to create this generator.
|
|
38
37
|
* @param rootPath - The root path to the project, this is used to relativize the file paths in the statistics.
|
|
39
38
|
*/
|
|
40
39
|
async function extractUsageStatistics(shell, config, onRequest, features, requests, rootPath) {
|
|
@@ -7,6 +7,9 @@ exports.detectSummarizationType = detectSummarizationType;
|
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const summarizer_1 = require("./summarizer");
|
|
9
9
|
const log_1 = require("../../util/log");
|
|
10
|
+
/**
|
|
11
|
+
* Auto-detects the summarization type based on the input path.
|
|
12
|
+
*/
|
|
10
13
|
async function detectSummarizationType(inputPath) {
|
|
11
14
|
if (fs_1.default.statSync(inputPath).isFile()) {
|
|
12
15
|
log_1.log.info(`Detected benchmark summarization with single file ${inputPath}`);
|
|
@@ -11,14 +11,13 @@ export interface ClusterReport extends MergeableRecord {
|
|
|
11
11
|
/** Maps each context encountered (i.e., every file that contains something associated with the feature) to a unique id, used in the {@link ClusterReport#valueInfoMap|valueInfoMap}. */
|
|
12
12
|
contextIdMap: ClusterContextIdMap;
|
|
13
13
|
/**
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
* Counts which contexts contained which values of a feature.
|
|
15
|
+
* For example, that `<-` occurred in files with ids `[12, 42, 19, 19]` (i.e., the context with the id 19 contained it twice).
|
|
16
|
+
*/
|
|
17
17
|
valueInfoMap: ClusterValueInfoMap;
|
|
18
18
|
}
|
|
19
19
|
/**
|
|
20
20
|
* Takes a statistics file like `statistics-out/top-2023-01-01-00-00-00/Assignments/assignmentOperator.txt` and clusters the values by context
|
|
21
|
-
*
|
|
22
21
|
* @param filepath - Filepath of the statistics file
|
|
23
22
|
* @param contextIdMap - The id map to use, can use an existing one to reuse ids for same contexts spreading over multiple input files.
|
|
24
23
|
* `undefined` is used for unknown contexts. This map allows us to reference contexts with a way shorter identifier (vs. the full file path).
|
|
@@ -7,7 +7,6 @@ exports.clusterStatisticsOutput = clusterStatisticsOutput;
|
|
|
7
7
|
/**
|
|
8
8
|
* Reading the given file line by line and expecting constructs of {@link StatisticsOutputFormat},
|
|
9
9
|
* this module is responsible for identifying interesting groups of same data.
|
|
10
|
-
*
|
|
11
10
|
* @module
|
|
12
11
|
*/
|
|
13
12
|
const n_readlines_1 = __importDefault(require("n-readlines"));
|
|
@@ -15,7 +14,6 @@ const defaultmap_1 = require("../../../util/collections/defaultmap");
|
|
|
15
14
|
const decorate_1 = require("../../../r-bridge/lang-4.x/ast/model/processing/decorate");
|
|
16
15
|
/**
|
|
17
16
|
* Takes a statistics file like `statistics-out/top-2023-01-01-00-00-00/Assignments/assignmentOperator.txt` and clusters the values by context
|
|
18
|
-
*
|
|
19
17
|
* @param filepath - Filepath of the statistics file
|
|
20
18
|
* @param contextIdMap - The id map to use, can use an existing one to reuse ids for same contexts spreading over multiple input files.
|
|
21
19
|
* `undefined` is used for unknown contexts. This map allows us to reference contexts with a way shorter identifier (vs. the full file path).
|