@eagleoutice/flowr 2.6.1 → 2.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +142 -39
- package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
- package/abstract-interpretation/data-frame/absint-visitor.d.ts +2 -3
- package/abstract-interpretation/data-frame/absint-visitor.js +17 -12
- package/abstract-interpretation/data-frame/dataframe-domain.d.ts +18 -12
- package/abstract-interpretation/data-frame/dataframe-domain.js +25 -13
- package/abstract-interpretation/data-frame/mappers/access-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/access-mapper.js +0 -1
- package/abstract-interpretation/data-frame/mappers/arguments.d.ts +1 -10
- package/abstract-interpretation/data-frame/mappers/arguments.js +0 -7
- package/abstract-interpretation/data-frame/mappers/assignment-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/assignment-mapper.js +0 -1
- package/abstract-interpretation/data-frame/mappers/function-mapper.d.ts +9 -10
- package/abstract-interpretation/data-frame/mappers/function-mapper.js +21 -18
- package/abstract-interpretation/data-frame/mappers/replacement-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/replacement-mapper.js +0 -1
- package/abstract-interpretation/data-frame/resolve-args.d.ts +1 -1
- package/abstract-interpretation/data-frame/semantics.d.ts +3 -4
- package/abstract-interpretation/data-frame/semantics.js +179 -162
- package/abstract-interpretation/data-frame/shape-inference.d.ts +4 -7
- package/abstract-interpretation/data-frame/shape-inference.js +10 -12
- package/abstract-interpretation/domains/abstract-domain.d.ts +59 -18
- package/abstract-interpretation/domains/abstract-domain.js +74 -1
- package/abstract-interpretation/domains/bounded-set-domain.d.ts +37 -24
- package/abstract-interpretation/domains/bounded-set-domain.js +70 -47
- package/abstract-interpretation/domains/interval-domain.d.ts +33 -25
- package/abstract-interpretation/domains/interval-domain.js +109 -50
- package/abstract-interpretation/domains/lattice.d.ts +19 -11
- package/abstract-interpretation/domains/mapped-abstract-domain.d.ts +34 -0
- package/abstract-interpretation/domains/mapped-abstract-domain.js +189 -0
- package/abstract-interpretation/domains/positive-interval-domain.d.ts +16 -12
- package/abstract-interpretation/domains/positive-interval-domain.js +20 -11
- package/abstract-interpretation/domains/product-domain.d.ts +18 -23
- package/abstract-interpretation/domains/product-domain.js +11 -19
- package/abstract-interpretation/domains/satisfiable-domain.d.ts +29 -0
- package/abstract-interpretation/domains/satisfiable-domain.js +24 -0
- package/abstract-interpretation/domains/set-upper-bound-domain.d.ts +54 -0
- package/abstract-interpretation/domains/set-upper-bound-domain.js +197 -0
- package/abstract-interpretation/domains/singleton-domain.d.ts +24 -19
- package/abstract-interpretation/domains/singleton-domain.js +52 -37
- package/abstract-interpretation/domains/state-abstract-domain.d.ts +8 -24
- package/abstract-interpretation/domains/state-abstract-domain.js +2 -167
- package/abstract-interpretation/normalized-ast-fold.d.ts +2 -8
- package/abstract-interpretation/normalized-ast-fold.js +0 -5
- package/benchmark/slicer.d.ts +4 -7
- package/benchmark/slicer.js +27 -31
- package/benchmark/stats/print.d.ts +6 -0
- package/benchmark/stats/print.js +6 -0
- package/benchmark/stats/size-of.d.ts +0 -1
- package/benchmark/stats/size-of.js +0 -1
- package/benchmark/stats/stats.d.ts +2 -2
- package/benchmark/stopwatch.d.ts +11 -13
- package/benchmark/stopwatch.js +11 -13
- package/benchmark/summarizer/first-phase/input.d.ts +6 -0
- package/benchmark/summarizer/first-phase/input.js +6 -0
- package/benchmark/summarizer/first-phase/process.d.ts +13 -1
- package/benchmark/summarizer/first-phase/process.js +13 -1
- package/benchmark/summarizer/second-phase/graph.d.ts +5 -0
- package/benchmark/summarizer/second-phase/graph.js +5 -0
- package/benchmark/summarizer/second-phase/process.d.ts +12 -0
- package/benchmark/summarizer/second-phase/process.js +12 -0
- package/benchmark/summarizer/summarizer.d.ts +1 -2
- package/cli/benchmark-app.js +0 -2
- package/cli/common/features.d.ts +7 -1
- package/cli/common/features.js +6 -0
- package/cli/common/script.d.ts +3 -1
- package/cli/common/script.js +3 -1
- package/cli/common/scripts-info.d.ts +3 -1
- package/cli/common/scripts-info.js +3 -0
- package/cli/export-quads-app.js +1 -1
- package/cli/flowr-main-options.d.ts +3 -0
- package/cli/flowr-main-options.js +3 -0
- package/cli/repl/commands/repl-commands.d.ts +13 -0
- package/cli/repl/commands/repl-commands.js +13 -2
- package/cli/repl/commands/repl-dataflow.js +2 -1
- package/cli/repl/commands/repl-execute.d.ts +4 -0
- package/cli/repl/commands/repl-execute.js +6 -2
- package/cli/repl/commands/repl-main.d.ts +15 -9
- package/cli/repl/commands/repl-parse.js +18 -6
- package/cli/repl/commands/repl-query.js +16 -5
- package/cli/repl/core.d.ts +24 -6
- package/cli/repl/core.js +42 -30
- package/cli/repl/execute.d.ts +0 -2
- package/cli/repl/execute.js +0 -2
- package/cli/repl/parser/slice-query-parser.d.ts +14 -0
- package/cli/repl/parser/slice-query-parser.js +34 -0
- package/cli/repl/print-version.d.ts +6 -0
- package/cli/repl/print-version.js +6 -0
- package/cli/repl/server/compact.d.ts +8 -0
- package/cli/repl/server/compact.js +8 -0
- package/cli/repl/server/connection.d.ts +4 -3
- package/cli/repl/server/connection.js +5 -32
- package/cli/repl/server/messages/all-messages.d.ts +1 -3
- package/cli/repl/server/messages/all-messages.js +0 -1
- package/cli/repl/server/messages/message-analysis.d.ts +0 -2
- package/cli/repl/server/messages/message-query.d.ts +1 -1
- package/cli/repl/server/messages/message-repl.d.ts +0 -1
- package/cli/repl/server/send.d.ts +6 -0
- package/cli/repl/server/send.js +6 -0
- package/cli/repl/server/server.d.ts +1 -1
- package/cli/repl/server/validate.d.ts +10 -1
- package/cli/repl/server/validate.js +9 -0
- package/cli/run-script.d.ts +1 -2
- package/cli/run-script.js +0 -1
- package/cli/script-core/statistics-core.d.ts +3 -0
- package/cli/script-core/statistics-core.js +3 -0
- package/cli/script-core/statistics-helper-core.d.ts +4 -1
- package/cli/script-core/statistics-helper-core.js +5 -1
- package/cli/script-core/summarizer-core.d.ts +3 -0
- package/cli/script-core/summarizer-core.js +3 -0
- package/cli/slicer-app.js +3 -4
- package/cli/summarizer-app.d.ts +2 -3
- package/cli/summarizer-app.js +2 -3
- package/cli/wiki.d.ts +4 -0
- package/cli/wiki.js +165 -0
- package/config.d.ts +21 -3
- package/config.js +21 -0
- package/control-flow/basic-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/basic-cfg-guided-visitor.js +0 -1
- package/control-flow/cfg-dead-code.js +13 -3
- package/control-flow/cfg-simplification.d.ts +5 -2
- package/control-flow/cfg-simplification.js +3 -0
- package/control-flow/cfg-to-basic-blocks.d.ts +1 -1
- package/control-flow/control-flow-graph.d.ts +20 -12
- package/control-flow/control-flow-graph.js +16 -4
- package/control-flow/dfg-cfg-guided-visitor.d.ts +2 -3
- package/control-flow/diff-cfg.d.ts +3 -5
- package/control-flow/diff-cfg.js +0 -1
- package/control-flow/extract-cfg.d.ts +12 -9
- package/control-flow/extract-cfg.js +44 -7
- package/control-flow/happens-before.d.ts +1 -1
- package/control-flow/semantic-cfg-guided-visitor.d.ts +4 -33
- package/control-flow/semantic-cfg-guided-visitor.js +0 -28
- package/control-flow/simple-visitor.d.ts +1 -3
- package/control-flow/simple-visitor.js +2 -4
- package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/useless-loop.d.ts +3 -6
- package/control-flow/useless-loop.js +16 -10
- package/core/pipeline-executor.d.ts +11 -22
- package/core/pipeline-executor.js +13 -25
- package/core/print/dataflow-printer.d.ts +19 -0
- package/core/print/dataflow-printer.js +19 -0
- package/core/print/normalize-printer.d.ts +21 -1
- package/core/print/normalize-printer.js +21 -1
- package/core/print/parse-printer.d.ts +6 -1
- package/core/print/parse-printer.js +5 -0
- package/core/print/print.d.ts +0 -1
- package/core/print/print.js +0 -1
- package/core/print/slice-diff-ansi.d.ts +3 -0
- package/core/print/slice-diff-ansi.js +3 -0
- package/core/steps/all/core/00-parse.d.ts +2 -2
- package/core/steps/all/core/00-parse.js +1 -1
- package/core/steps/all/core/01-parse-tree-sitter.d.ts +1 -11
- package/core/steps/all/core/10-normalize.d.ts +3 -6
- package/core/steps/all/core/10-normalize.js +1 -13
- package/core/steps/all/core/11-normalize-tree-sitter.d.ts +5 -5
- package/core/steps/all/core/11-normalize-tree-sitter.js +2 -3
- package/core/steps/all/core/20-dataflow.d.ts +3 -4
- package/core/steps/all/core/20-dataflow.js +2 -2
- package/core/steps/all/static-slicing/00-slice.d.ts +1 -2
- package/core/steps/all/static-slicing/00-slice.js +1 -1
- package/core/steps/all/static-slicing/10-reconstruct.d.ts +8 -0
- package/core/steps/all/static-slicing/10-reconstruct.js +4 -1
- package/core/steps/pipeline/create-pipeline.d.ts +1 -1
- package/core/steps/pipeline/default-pipelines.d.ts +94 -95
- package/core/steps/pipeline/default-pipelines.js +8 -12
- package/core/steps/pipeline/pipeline.d.ts +1 -8
- package/core/steps/pipeline/pipeline.js +1 -3
- package/core/steps/pipeline-step.d.ts +0 -1
- package/core/steps/pipeline-step.js +0 -1
- package/dataflow/cluster.d.ts +3 -0
- package/dataflow/cluster.js +3 -0
- package/dataflow/environments/append.d.ts +1 -1
- package/dataflow/environments/built-in-config.d.ts +1 -5
- package/dataflow/environments/built-in-config.js +0 -1
- package/dataflow/environments/built-in.d.ts +10 -5
- package/dataflow/environments/built-in.js +6 -1
- package/dataflow/environments/clone.d.ts +1 -2
- package/dataflow/environments/clone.js +12 -2
- package/dataflow/environments/default-builtin-config.d.ts +3 -0
- package/dataflow/environments/default-builtin-config.js +4 -1
- package/dataflow/environments/diff.d.ts +11 -2
- package/dataflow/environments/diff.js +11 -2
- package/dataflow/environments/environment.d.ts +3 -3
- package/dataflow/environments/environment.js +8 -6
- package/dataflow/environments/identifier.d.ts +0 -4
- package/dataflow/environments/identifier.js +0 -1
- package/dataflow/environments/overwrite.d.ts +1 -2
- package/dataflow/environments/overwrite.js +3 -16
- package/dataflow/environments/resolve-by-name.d.ts +4 -4
- package/dataflow/environments/resolve-by-name.js +3 -2
- package/dataflow/environments/scoping.d.ts +9 -2
- package/dataflow/environments/scoping.js +8 -1
- package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
- package/dataflow/eval/resolve/alias-tracking.js +11 -14
- package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
- package/dataflow/eval/resolve/resolve-argument.js +2 -2
- package/dataflow/eval/resolve/resolve.d.ts +1 -7
- package/dataflow/eval/resolve/resolve.js +0 -5
- package/dataflow/eval/values/general.d.ts +1 -3
- package/dataflow/eval/values/general.js +0 -1
- package/dataflow/eval/values/intervals/interval-constants.d.ts +7 -1
- package/dataflow/eval/values/intervals/interval-constants.js +6 -0
- package/dataflow/eval/values/logical/logical-constants.d.ts +4 -1
- package/dataflow/eval/values/logical/logical-constants.js +3 -0
- package/dataflow/eval/values/r-value.d.ts +12 -0
- package/dataflow/eval/values/r-value.js +12 -0
- package/dataflow/eval/values/scalar/scalar-consatnts.d.ts +7 -1
- package/dataflow/eval/values/scalar/scalar-consatnts.js +6 -0
- package/dataflow/eval/values/sets/set-constants.d.ts +7 -2
- package/dataflow/eval/values/sets/set-constants.js +6 -0
- package/dataflow/eval/values/string/string-constants.d.ts +16 -1
- package/dataflow/eval/values/string/string-constants.js +15 -0
- package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
- package/dataflow/extractor.d.ts +3 -4
- package/dataflow/extractor.js +25 -22
- package/dataflow/graph/dataflowgraph-builder.d.ts +20 -38
- package/dataflow/graph/dataflowgraph-builder.js +6 -23
- package/dataflow/graph/diff-dataflow-graph.d.ts +16 -6
- package/dataflow/graph/diff-dataflow-graph.js +12 -1
- package/dataflow/graph/edge.d.ts +9 -0
- package/dataflow/graph/edge.js +9 -0
- package/dataflow/graph/graph.d.ts +9 -28
- package/dataflow/graph/graph.js +4 -28
- package/dataflow/graph/invert-dfg.d.ts +3 -0
- package/dataflow/graph/invert-dfg.js +3 -0
- package/dataflow/graph/quads.d.ts +1 -1
- package/dataflow/graph/unknown-replacement.d.ts +8 -0
- package/dataflow/graph/unknown-replacement.js +8 -0
- package/dataflow/graph/unknown-side-effect.d.ts +8 -0
- package/dataflow/graph/unknown-side-effect.js +8 -0
- package/dataflow/graph/vertex.d.ts +9 -9
- package/dataflow/graph/vertex.js +9 -1
- package/dataflow/info.d.ts +16 -10
- package/dataflow/info.js +27 -1
- package/dataflow/internal/linker.d.ts +25 -9
- package/dataflow/internal/linker.js +30 -11
- package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
- package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -1
- package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-access.js +6 -4
- package/dataflow/internal/process/functions/call/built-in/built-in-apply.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +2 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-assignment.js +4 -4
- package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +9 -6
- package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +10 -4
- package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +7 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-get.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +5 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-library.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-list.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-list.js +2 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +10 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +8 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +5 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-rm.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +34 -12
- package/dataflow/internal/process/functions/call/built-in/built-in-source.js +90 -68
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +5 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +5 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-vector.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-vector.js +2 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +4 -1
- package/dataflow/internal/process/functions/call/common.d.ts +11 -5
- package/dataflow/internal/process/functions/call/common.js +9 -3
- package/dataflow/internal/process/functions/call/default-call-handling.d.ts +5 -0
- package/dataflow/internal/process/functions/call/default-call-handling.js +5 -0
- package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
- package/dataflow/internal/process/functions/call/known-call-handling.js +10 -3
- package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
- package/dataflow/internal/process/functions/call/named-call-handling.js +10 -4
- package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +4 -1
- package/dataflow/internal/process/functions/call/unnamed-call-handling.js +3 -0
- package/dataflow/internal/process/functions/process-argument.d.ts +8 -2
- package/dataflow/internal/process/functions/process-argument.js +6 -0
- package/dataflow/internal/process/functions/process-parameter.d.ts +5 -2
- package/dataflow/internal/process/functions/process-parameter.js +7 -4
- package/dataflow/internal/process/process-symbol.d.ts +3 -0
- package/dataflow/internal/process/process-symbol.js +3 -0
- package/dataflow/internal/process/process-uninteresting-leaf.d.ts +3 -0
- package/dataflow/internal/process/process-uninteresting-leaf.js +3 -0
- package/dataflow/internal/process/process-value.d.ts +3 -0
- package/dataflow/internal/process/process-value.js +3 -0
- package/dataflow/origin/dfg-get-origin.d.ts +0 -2
- package/dataflow/origin/dfg-get-symbol-refs.d.ts +6 -8
- package/dataflow/origin/dfg-get-symbol-refs.js +7 -9
- package/dataflow/processor.d.ts +6 -12
- package/dataflow/processor.js +0 -1
- package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -2
- package/documentation/data/dfg/doc-data-dfg-util.js +6 -0
- package/documentation/data/faq/faqs.d.ts +5 -0
- package/documentation/data/faq/faqs.js +87 -0
- package/documentation/data/faq/recommended-configs.d.ts +36 -0
- package/documentation/data/faq/recommended-configs.js +40 -0
- package/documentation/data/faq/wiki-faq-store.d.ts +19 -0
- package/documentation/data/faq/wiki-faq-store.js +83 -0
- package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
- package/documentation/data/server/doc-data-server-messages.js +5 -64
- package/documentation/doc-capabilities.d.ts +9 -0
- package/documentation/{print-capabilities-markdown.js → doc-capabilities.js} +18 -21
- package/documentation/doc-readme.d.ts +9 -0
- package/documentation/{print-readme.js → doc-readme.js} +136 -35
- package/documentation/doc-util/doc-auto-gen.d.ts +6 -0
- package/documentation/doc-util/doc-auto-gen.js +6 -0
- package/documentation/doc-util/doc-benchmarks.d.ts +14 -0
- package/documentation/doc-util/doc-benchmarks.js +14 -0
- package/documentation/doc-util/doc-cfg.d.ts +7 -1
- package/documentation/doc-util/doc-cfg.js +14 -8
- package/documentation/doc-util/doc-cli-option.d.ts +9 -0
- package/documentation/doc-util/doc-cli-option.js +9 -0
- package/documentation/doc-util/doc-code.d.ts +24 -0
- package/documentation/doc-util/doc-code.js +24 -0
- package/documentation/doc-util/doc-dfg.d.ts +12 -6
- package/documentation/doc-util/doc-dfg.js +19 -10
- package/documentation/doc-util/doc-env.d.ts +3 -0
- package/documentation/doc-util/doc-env.js +3 -0
- package/documentation/doc-util/doc-escape.d.ts +6 -1
- package/documentation/doc-util/doc-escape.js +11 -1
- package/documentation/doc-util/doc-files.d.ts +11 -0
- package/documentation/doc-util/doc-files.js +15 -4
- package/documentation/doc-util/doc-general.d.ts +26 -0
- package/documentation/doc-util/doc-general.js +26 -0
- package/documentation/doc-util/doc-normalized-ast.d.ts +14 -3
- package/documentation/doc-util/doc-normalized-ast.js +16 -7
- package/documentation/doc-util/doc-query.d.ts +26 -3
- package/documentation/doc-util/doc-query.js +34 -12
- package/documentation/doc-util/doc-repl.d.ts +6 -0
- package/documentation/doc-util/doc-repl.js +6 -0
- package/documentation/doc-util/doc-search.d.ts +3 -18
- package/documentation/doc-util/doc-search.js +6 -62
- package/documentation/doc-util/doc-server-message.d.ts +18 -6
- package/documentation/doc-util/doc-server-message.js +17 -5
- package/documentation/doc-util/doc-structure.d.ts +9 -0
- package/documentation/doc-util/doc-structure.js +10 -1
- package/documentation/doc-util/doc-types.d.ts +90 -11
- package/documentation/doc-util/doc-types.js +128 -39
- package/documentation/index.d.ts +9 -9
- package/documentation/index.js +9 -9
- package/documentation/issue-linting-rule.d.ts +9 -0
- package/documentation/{print-linter-issue.js → issue-linting-rule.js} +20 -23
- package/documentation/wiki-analyzer.d.ts +9 -0
- package/documentation/wiki-analyzer.js +412 -0
- package/documentation/wiki-cfg.d.ts +9 -0
- package/documentation/{print-cfg-wiki.js → wiki-cfg.js} +144 -160
- package/documentation/wiki-core.d.ts +14 -0
- package/documentation/{print-core-wiki.js → wiki-core.js} +167 -175
- package/documentation/wiki-dataflow-graph.d.ts +9 -0
- package/documentation/{print-dataflow-graph-wiki.js → wiki-dataflow-graph.js} +145 -175
- package/documentation/wiki-engine.d.ts +9 -0
- package/documentation/{print-engines-wiki.js → wiki-engine.js} +27 -42
- package/documentation/wiki-faq.d.ts +8 -0
- package/documentation/wiki-faq.js +22 -0
- package/documentation/wiki-interface.d.ts +9 -0
- package/documentation/{print-interface-wiki.js → wiki-interface.js} +60 -57
- package/documentation/wiki-linter.d.ts +9 -0
- package/documentation/{print-linter-wiki.js → wiki-linter.js} +52 -48
- package/documentation/wiki-linting-and-testing.d.ts +9 -0
- package/documentation/{print-linting-and-testing-wiki.js → wiki-linting-and-testing.js} +25 -32
- package/documentation/wiki-mk/doc-context.d.ts +186 -0
- package/documentation/wiki-mk/doc-context.js +84 -0
- package/documentation/wiki-mk/doc-maker.d.ts +95 -0
- package/documentation/wiki-mk/doc-maker.js +133 -0
- package/documentation/wiki-normalized-ast.d.ts +9 -0
- package/documentation/{print-normalized-ast-wiki.js → wiki-normalized-ast.js} +64 -47
- package/documentation/wiki-onboarding.d.ts +8 -0
- package/documentation/{print-onboarding-wiki.js → wiki-onboarding.js} +18 -15
- package/documentation/wiki-query.d.ts +9 -0
- package/documentation/{print-query-wiki.js → wiki-query.js} +65 -80
- package/documentation/wiki-search.d.ts +9 -0
- package/documentation/wiki-search.js +61 -0
- package/engines.d.ts +1 -1
- package/linter/linter-executor.d.ts +6 -3
- package/linter/linter-executor.js +6 -2
- package/linter/linter-format.d.ts +10 -2
- package/linter/linter-format.js +8 -0
- package/linter/linter-rules.d.ts +13 -17
- package/linter/rules/absolute-path.d.ts +4 -6
- package/linter/rules/absolute-path.js +2 -2
- package/linter/rules/dataframe-access-validation.d.ts +4 -5
- package/linter/rules/dataframe-access-validation.js +21 -19
- package/linter/rules/dead-code.d.ts +2 -2
- package/linter/rules/deprecated-functions.d.ts +2 -6
- package/linter/rules/file-path-validity.d.ts +2 -3
- package/linter/rules/file-path-validity.js +4 -4
- package/linter/rules/function-finder-util.d.ts +2 -7
- package/linter/rules/naming-convention.d.ts +15 -4
- package/linter/rules/naming-convention.js +14 -2
- package/linter/rules/network-functions.d.ts +2 -2
- package/linter/rules/network-functions.js +1 -1
- package/linter/rules/seeded-randomness.d.ts +4 -4
- package/linter/rules/seeded-randomness.js +33 -13
- package/linter/rules/unused-definition.d.ts +3 -4
- package/linter/rules/useless-loop.d.ts +3 -4
- package/linter/rules/useless-loop.js +2 -2
- package/package.json +7 -18
- package/project/cache/flowr-analyzer-cache.d.ts +9 -19
- package/project/cache/flowr-analyzer-cache.js +17 -44
- package/project/cache/flowr-analyzer-controlflow-cache.d.ts +34 -0
- package/project/cache/flowr-analyzer-controlflow-cache.js +79 -0
- package/project/context/flowr-analyzer-context.d.ts +31 -9
- package/project/context/flowr-analyzer-context.js +48 -4
- package/project/context/flowr-analyzer-dependencies-context.d.ts +0 -1
- package/project/context/flowr-analyzer-files-context.d.ts +63 -15
- package/project/context/flowr-analyzer-files-context.js +110 -39
- package/project/context/flowr-file.d.ts +32 -11
- package/project/context/flowr-file.js +30 -9
- package/project/flowr-analyzer-builder.d.ts +23 -31
- package/project/flowr-analyzer-builder.js +35 -74
- package/project/flowr-analyzer.d.ts +79 -29
- package/project/flowr-analyzer.js +59 -15
- package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +8 -2
- package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.js +13 -5
- package/project/plugins/file-plugins/flowr-analyzer-file-plugin.d.ts +3 -3
- package/project/plugins/file-plugins/flowr-analyzer-file-plugin.js +11 -5
- package/project/plugins/file-plugins/flowr-description-file.d.ts +3 -5
- package/project/plugins/file-plugins/flowr-description-file.js +0 -1
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.d.ts +22 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.js +33 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.d.ts +22 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.js +33 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.d.ts +22 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.js +33 -0
- package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.d.ts +20 -0
- package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.js +42 -0
- package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.d.ts +59 -0
- package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.js +132 -0
- package/project/plugins/file-plugins/notebooks/notebook.d.ts +0 -0
- package/project/plugins/file-plugins/notebooks/notebook.js +2 -0
- package/project/plugins/flowr-analyzer-plugin-defaults.d.ts +5 -0
- package/project/plugins/flowr-analyzer-plugin-defaults.js +23 -0
- package/project/plugins/flowr-analyzer-plugin.d.ts +2 -0
- package/project/plugins/flowr-analyzer-plugin.js +2 -0
- package/project/plugins/loading-order-plugins/flowr-analyzer-loading-order-description-file-plugin.js +1 -1
- package/project/plugins/package-version-plugins/flowr-analyzer-package-versions-description-file-plugin.js +1 -1
- package/project/plugins/plugin-registry.d.ts +34 -0
- package/project/plugins/plugin-registry.js +62 -0
- package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
- package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.js +7 -1
- package/queries/base-query-format.d.ts +2 -2
- package/queries/catalog/call-context-query/call-context-query-executor.d.ts +3 -0
- package/queries/catalog/call-context-query/call-context-query-executor.js +7 -2
- package/queries/catalog/call-context-query/call-context-query-format.d.ts +3 -3
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +16 -4
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +34 -18
- package/queries/catalog/cluster-query/cluster-query-executor.d.ts +3 -0
- package/queries/catalog/cluster-query/cluster-query-executor.js +3 -0
- package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
- package/queries/catalog/config-query/config-query-executor.d.ts +3 -0
- package/queries/catalog/config-query/config-query-executor.js +3 -0
- package/queries/catalog/config-query/config-query-format.d.ts +5 -2
- package/queries/catalog/config-query/config-query-format.js +13 -16
- package/queries/catalog/control-flow-query/control-flow-query-executor.d.ts +3 -0
- package/queries/catalog/control-flow-query/control-flow-query-executor.js +3 -0
- package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +3 -3
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.d.ts +3 -0
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +3 -0
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
- package/queries/catalog/dataflow-query/dataflow-query-executor.d.ts +3 -0
- package/queries/catalog/dataflow-query/dataflow-query-executor.js +3 -0
- package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
- package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +4 -1
- package/queries/catalog/dependencies-query/dependencies-query-executor.js +7 -4
- package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +4 -1
- package/queries/catalog/dependencies-query/dependencies-query-format.js +5 -2
- package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +4 -1
- package/queries/catalog/df-shape-query/df-shape-query-executor.js +8 -4
- package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +10 -3
- package/queries/catalog/df-shape-query/df-shape-query-format.js +25 -5
- package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +4 -0
- package/queries/catalog/happens-before-query/happens-before-query-executor.js +4 -0
- package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
- package/queries/catalog/id-map-query/id-map-query-executor.d.ts +3 -0
- package/queries/catalog/id-map-query/id-map-query-executor.js +3 -0
- package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +3 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +3 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +2 -2
- package/queries/catalog/linter-query/linter-query-executor.d.ts +4 -0
- package/queries/catalog/linter-query/linter-query-executor.js +4 -0
- package/queries/catalog/linter-query/linter-query-format.d.ts +12 -3
- package/queries/catalog/linter-query/linter-query-format.js +80 -2
- package/queries/catalog/location-map-query/location-map-query-executor.d.ts +4 -0
- package/queries/catalog/location-map-query/location-map-query-executor.js +7 -2
- package/queries/catalog/location-map-query/location-map-query-format.d.ts +7 -1
- package/queries/catalog/location-map-query/location-map-query-format.js +12 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.d.ts +3 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.js +3 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
- package/queries/catalog/origin-query/origin-query-executor.d.ts +7 -1
- package/queries/catalog/origin-query/origin-query-executor.js +6 -0
- package/queries/catalog/origin-query/origin-query-format.d.ts +7 -1
- package/queries/catalog/origin-query/origin-query-format.js +17 -1
- package/queries/catalog/project-query/project-query-executor.d.ts +3 -0
- package/queries/catalog/project-query/project-query-executor.js +6 -1
- package/queries/catalog/project-query/project-query-format.d.ts +1 -1
- package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +6 -0
- package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +6 -0
- package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +7 -1
- package/queries/catalog/resolve-value-query/resolve-value-query-format.js +19 -1
- package/queries/catalog/search-query/search-query-executor.d.ts +3 -0
- package/queries/catalog/search-query/search-query-executor.js +3 -0
- package/queries/catalog/search-query/search-query-format.d.ts +1 -1
- package/queries/catalog/static-slice-query/static-slice-query-executor.d.ts +9 -0
- package/queries/catalog/static-slice-query/static-slice-query-executor.js +10 -1
- package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +7 -1
- package/queries/catalog/static-slice-query/static-slice-query-format.js +30 -1
- package/queries/query-print.d.ts +20 -4
- package/queries/query-print.js +18 -2
- package/queries/query.d.ts +93 -55
- package/queries/query.js +55 -23
- package/queries/virtual-query/virtual-queries.d.ts +1 -2
- package/r-bridge/data/get.d.ts +6 -0
- package/r-bridge/data/get.js +6 -0
- package/r-bridge/lang-4.x/ast/model/collect.d.ts +2 -2
- package/r-bridge/lang-4.x/ast/model/collect.js +4 -1
- package/r-bridge/lang-4.x/ast/model/model.d.ts +8 -11
- package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-project.d.ts +29 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-project.js +15 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +3 -0
- package/r-bridge/lang-4.x/ast/model/operators.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +11 -14
- package/r-bridge/lang-4.x/ast/model/processing/decorate.js +30 -17
- package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/node-id.js +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +1 -2
- package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/visitor.js +0 -1
- package/r-bridge/lang-4.x/ast/model/type.d.ts +6 -5
- package/r-bridge/lang-4.x/ast/model/type.js +6 -5
- package/r-bridge/lang-4.x/ast/model/versions.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/versions.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/json/format.js +1 -1
- package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +12 -12
- package/r-bridge/lang-4.x/ast/parser/json/parser.js +11 -11
- package/r-bridge/lang-4.x/ast/parser/main/internal/control/normalize-if-then.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.d.ts +1 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.d.ts +4 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.d.ts +4 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-binary.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.d.ts +9 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.js +9 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-root.d.ts +4 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-root.js +20 -11
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.d.ts +1 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.d.ts +1 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.d.ts +14 -5
- package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.js +13 -6
- package/r-bridge/lang-4.x/convert-values.d.ts +12 -1
- package/r-bridge/lang-4.x/convert-values.js +12 -1
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +7 -2
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +18 -0
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +15 -2
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +62 -24
- package/r-bridge/parser.d.ts +43 -12
- package/r-bridge/parser.js +27 -13
- package/r-bridge/retriever.d.ts +25 -16
- package/r-bridge/retriever.js +29 -5
- package/r-bridge/shell-executor.d.ts +3 -3
- package/r-bridge/shell-executor.js +6 -1
- package/r-bridge/shell.d.ts +24 -23
- package/r-bridge/shell.js +37 -31
- package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -2
- package/reconstruct/auto-select/magic-comments.d.ts +1 -2
- package/reconstruct/auto-select/magic-comments.js +2 -3
- package/reconstruct/reconstruct.d.ts +18 -12
- package/reconstruct/reconstruct.js +19 -10
- package/search/flowr-search-builder.d.ts +12 -5
- package/search/flowr-search-builder.js +7 -2
- package/search/flowr-search-executor.d.ts +3 -3
- package/search/flowr-search-filters.d.ts +14 -1
- package/search/flowr-search-filters.js +13 -0
- package/search/flowr-search-printer.d.ts +6 -0
- package/search/flowr-search-printer.js +6 -0
- package/search/flowr-search-traverse.d.ts +1 -1
- package/search/flowr-search.d.ts +15 -3
- package/search/search-executor/search-enrichers.d.ts +16 -6
- package/search/search-executor/search-enrichers.js +4 -3
- package/search/search-executor/search-generators.d.ts +19 -10
- package/search/search-executor/search-generators.js +57 -5
- package/search/search-executor/search-mappers.d.ts +8 -5
- package/search/search-executor/search-mappers.js +3 -0
- package/search/search-executor/search-transformer.d.ts +19 -16
- package/search/search-executor/search-transformer.js +3 -0
- package/slicing/criterion/collect-all.d.ts +13 -12
- package/slicing/criterion/collect-all.js +1 -1
- package/slicing/criterion/parse.d.ts +4 -2
- package/slicing/criterion/parse.js +8 -6
- package/slicing/static/fingerprint.d.ts +9 -1
- package/slicing/static/fingerprint.js +8 -0
- package/slicing/static/slice-call.d.ts +2 -2
- package/slicing/static/static-slicer.d.ts +8 -4
- package/slicing/static/static-slicer.js +5 -1
- package/slicing/static/visiting-queue.d.ts +1 -1
- package/statistics/features/common-syntax-probability.d.ts +10 -1
- package/statistics/features/common-syntax-probability.js +9 -0
- package/statistics/features/feature.d.ts +0 -4
- package/statistics/features/feature.js +0 -1
- package/statistics/features/post-processing.d.ts +6 -0
- package/statistics/features/post-processing.js +6 -0
- package/statistics/features/supported/assignments/assignments.js +1 -1
- package/statistics/features/supported/assignments/post-process.d.ts +3 -0
- package/statistics/features/supported/assignments/post-process.js +3 -0
- package/statistics/features/supported/comments/post-process.d.ts +3 -0
- package/statistics/features/supported/comments/post-process.js +3 -0
- package/statistics/features/supported/control-flow/control-flow.js +1 -1
- package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
- package/statistics/features/supported/control-flow/post-process.js +3 -0
- package/statistics/features/supported/data-access/data-access.d.ts +1 -1
- package/statistics/features/supported/data-access/data-access.js +1 -1
- package/statistics/features/supported/data-access/post-process.d.ts +3 -0
- package/statistics/features/supported/data-access/post-process.js +3 -0
- package/statistics/features/supported/defined-functions/defined-functions.d.ts +1 -1
- package/statistics/features/supported/defined-functions/defined-functions.js +1 -1
- package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
- package/statistics/features/supported/expression-list/post-process.js +3 -0
- package/statistics/features/supported/expression-list/statistics-expression-list.js +1 -1
- package/statistics/features/supported/loops/loops.js +1 -1
- package/statistics/features/supported/loops/post-process.d.ts +3 -0
- package/statistics/features/supported/loops/post-process.js +3 -0
- package/statistics/features/supported/used-functions/used-functions.d.ts +1 -1
- package/statistics/features/supported/used-functions/used-functions.js +1 -1
- package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
- package/statistics/features/supported/used-packages/post-process.js +3 -0
- package/statistics/features/supported/values/post-process.d.ts +3 -0
- package/statistics/features/supported/values/post-process.js +3 -0
- package/statistics/features/supported/variables/post-process.d.ts +7 -1
- package/statistics/features/supported/variables/post-process.js +6 -0
- package/statistics/features/supported/variables/variables.js +1 -1
- package/statistics/meta-statistics.d.ts +8 -9
- package/statistics/output/file-provider.d.ts +5 -6
- package/statistics/output/file-provider.js +5 -6
- package/statistics/output/print-stats.d.ts +13 -1
- package/statistics/output/print-stats.js +12 -0
- package/statistics/output/statistics-file.d.ts +1 -2
- package/statistics/output/statistics-file.js +0 -1
- package/statistics/statistics.d.ts +3 -4
- package/statistics/statistics.js +4 -4
- package/statistics/summarizer/auto-detect.d.ts +3 -0
- package/statistics/summarizer/auto-detect.js +3 -0
- package/statistics/summarizer/post-process/clusterer.d.ts +3 -4
- package/statistics/summarizer/post-process/clusterer.js +0 -2
- package/statistics/summarizer/post-process/file-based-count.d.ts +0 -1
- package/statistics/summarizer/post-process/file-based-count.js +0 -1
- package/statistics/summarizer/post-process/histogram.d.ts +0 -2
- package/statistics/summarizer/post-process/histogram.js +0 -2
- package/statistics/summarizer/post-process/post-process-output.d.ts +2 -4
- package/statistics/summarizer/post-process/post-process-output.js +0 -3
- package/statistics/summarizer/second-phase/process.d.ts +5 -3
- package/statistics/summarizer/second-phase/process.js +3 -1
- package/statistics/summarizer/summarizer.d.ts +1 -2
- package/util/assert.d.ts +56 -2
- package/util/assert.js +56 -2
- package/util/collections/arrays.d.ts +10 -5
- package/util/collections/arrays.js +10 -5
- package/util/collections/defaultmap.d.ts +11 -11
- package/util/collections/defaultmap.js +11 -11
- package/util/containers.d.ts +2 -7
- package/util/containers.js +0 -5
- package/util/diff-graph.d.ts +0 -1
- package/util/diff-graph.js +0 -1
- package/util/diff.d.ts +3 -1
- package/util/diff.js +3 -1
- package/util/files.d.ts +12 -12
- package/util/files.js +11 -11
- package/util/html-hover-over.d.ts +5 -0
- package/util/html-hover-over.js +5 -0
- package/util/json.d.ts +13 -0
- package/util/json.js +13 -0
- package/util/log.d.ts +2 -2
- package/util/log.js +2 -2
- package/util/mermaid/ast.d.ts +7 -3
- package/util/mermaid/ast.js +39 -8
- package/util/mermaid/cfg.d.ts +1 -1
- package/util/mermaid/cfg.js +1 -1
- package/util/mermaid/dfg.d.ts +12 -4
- package/util/mermaid/dfg.js +9 -1
- package/util/mermaid/mermaid.d.ts +6 -1
- package/util/mermaid/mermaid.js +6 -1
- package/util/numbers.d.ts +7 -0
- package/util/numbers.js +7 -0
- package/util/objects.d.ts +0 -2
- package/util/os.d.ts +3 -0
- package/util/os.js +3 -0
- package/util/parallel.d.ts +4 -4
- package/util/parallel.js +4 -4
- package/util/prefix.d.ts +0 -1
- package/util/prefix.js +0 -1
- package/util/quads.d.ts +14 -17
- package/util/quads.js +3 -5
- package/util/r-value.d.ts +10 -1
- package/util/r-value.js +21 -0
- package/util/random.d.ts +3 -0
- package/util/random.js +3 -0
- package/util/range.d.ts +9 -3
- package/util/range.js +15 -2
- package/util/schema.d.ts +14 -1
- package/util/schema.js +15 -2
- package/util/simple-df/dfg-view.d.ts +4 -1
- package/util/simple-df/dfg-view.js +4 -1
- package/util/summarizer.d.ts +9 -1
- package/util/summarizer.js +9 -0
- package/util/text/ansi.d.ts +3 -0
- package/util/text/ansi.js +3 -0
- package/util/text/args.d.ts +2 -4
- package/util/text/args.js +7 -5
- package/util/text/text.d.ts +4 -0
- package/util/text/text.js +4 -0
- package/util/text/time.d.ts +0 -1
- package/util/text/time.js +0 -1
- package/util/version.d.ts +12 -3
- package/util/version.js +12 -3
- package/abstract-interpretation/data-frame/domain.d.ts +0 -107
- package/abstract-interpretation/data-frame/domain.js +0 -315
- package/abstract-interpretation/domains/set-bounded-set-domain.d.ts +0 -43
- package/abstract-interpretation/domains/set-bounded-set-domain.js +0 -164
- package/cli/repl/commands/repl-lineage.d.ts +0 -15
- package/cli/repl/commands/repl-lineage.js +0 -66
- package/cli/repl/server/messages/message-lineage.d.ts +0 -17
- package/cli/repl/server/messages/message-lineage.js +0 -25
- package/documentation/print-analyzer-wiki.d.ts +0 -1
- package/documentation/print-analyzer-wiki.js +0 -137
- package/documentation/print-capabilities-markdown.d.ts +0 -1
- package/documentation/print-cfg-wiki.d.ts +0 -1
- package/documentation/print-core-wiki.d.ts +0 -2
- package/documentation/print-dataflow-graph-wiki.d.ts +0 -1
- package/documentation/print-engines-wiki.d.ts +0 -1
- package/documentation/print-faq-wiki.d.ts +0 -1
- package/documentation/print-faq-wiki.js +0 -90
- package/documentation/print-interface-wiki.d.ts +0 -1
- package/documentation/print-linter-issue.d.ts +0 -1
- package/documentation/print-linter-wiki.d.ts +0 -1
- package/documentation/print-linting-and-testing-wiki.d.ts +0 -1
- package/documentation/print-normalized-ast-wiki.d.ts +0 -1
- package/documentation/print-onboarding-wiki.d.ts +0 -1
- package/documentation/print-query-wiki.d.ts +0 -1
- package/documentation/print-readme.d.ts +0 -1
- package/documentation/print-search-wiki.d.ts +0 -1
- package/documentation/print-search-wiki.js +0 -74
- package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
- package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
- package/util/formats/adapter-format.d.ts +0 -6
- package/util/formats/adapter-format.js +0 -3
- package/util/formats/adapter.d.ts +0 -18
- package/util/formats/adapter.js +0 -49
- package/util/formats/adapters/r-adapter.d.ts +0 -4
- package/util/formats/adapters/r-adapter.js +0 -7
- package/util/formats/adapters/rmd-adapter.d.ts +0 -26
- package/util/formats/adapters/rmd-adapter.js +0 -91
|
@@ -45,7 +45,7 @@ function retrieveAllCallsites(input, node, recursiveCalls) {
|
|
|
45
45
|
function visitDefinitions(info, input) {
|
|
46
46
|
const definitionStack = [];
|
|
47
47
|
const allDefinitions = [];
|
|
48
|
-
(0, visitor_1.visitAst)(input.normalizedRAst.ast, node => {
|
|
48
|
+
(0, visitor_1.visitAst)(input.normalizedRAst.ast.files.map(f => f.root), node => {
|
|
49
49
|
if (node.type !== type_1.RType.FunctionDefinition) {
|
|
50
50
|
return;
|
|
51
51
|
}
|
|
@@ -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'));
|
|
@@ -11,7 +11,7 @@ const initialExpressionListInfo = {
|
|
|
11
11
|
function visitLists(info, input) {
|
|
12
12
|
let nest = -1; // we start with nesting 0
|
|
13
13
|
let total = 0;
|
|
14
|
-
(0, visitor_1.visitAst)(input.normalizedRAst.ast, node => {
|
|
14
|
+
(0, visitor_1.visitAst)(input.normalizedRAst.ast.files.map(f => f.root), node => {
|
|
15
15
|
if (node.type === type_1.RType.ExpressionList) {
|
|
16
16
|
nest++;
|
|
17
17
|
total++;
|
|
@@ -25,7 +25,7 @@ const isImplicitLoop = /[lsvmt]?apply/;
|
|
|
25
25
|
function visitLoops(info, input) {
|
|
26
26
|
// holds number of loops and their nesting depths
|
|
27
27
|
const loopStack = [];
|
|
28
|
-
(0, visitor_1.visitAst)(input.normalizedRAst.ast, node => {
|
|
28
|
+
(0, visitor_1.visitAst)(input.normalizedRAst.ast.files.map(f => f.root), node => {
|
|
29
29
|
switch (node.type) {
|
|
30
30
|
case type_1.RType.Next:
|
|
31
31
|
info.nextStatements++;
|
|
@@ -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>;
|
|
@@ -50,7 +50,7 @@ function classifyArguments(args, existing) {
|
|
|
50
50
|
function visitCalls(info, input) {
|
|
51
51
|
const calls = [];
|
|
52
52
|
const allCalls = [];
|
|
53
|
-
(0, visitor_1.visitAst)(input.normalizedRAst.ast, node => {
|
|
53
|
+
(0, visitor_1.visitAst)(input.normalizedRAst.ast.files.map(f => f.root), node => {
|
|
54
54
|
if (node.type !== type_1.RType.FunctionCall) {
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
@@ -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`);
|
|
@@ -15,7 +15,7 @@ const initialVariableInfo = {
|
|
|
15
15
|
unknownVariables: 0
|
|
16
16
|
};
|
|
17
17
|
function visitVariables(info, input) {
|
|
18
|
-
(0, visitor_1.visitAst)(input.normalizedRAst.ast, node => {
|
|
18
|
+
(0, visitor_1.visitAst)(input.normalizedRAst.ast.files.map(f => f.root), node => {
|
|
19
19
|
if (node.type !== type_1.RType.Symbol || (0, r_symbol_1.isSpecialSymbol)(node)) {
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
@@ -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
|
@@ -14,6 +14,7 @@ const pipeline_executor_1 = require("../core/pipeline-executor");
|
|
|
14
14
|
const default_pipelines_1 = require("../core/steps/pipeline/default-pipelines");
|
|
15
15
|
const feature_1 = require("./features/feature");
|
|
16
16
|
const convert_values_1 = require("../r-bridge/lang-4.x/convert-values");
|
|
17
|
+
const flowr_analyzer_context_1 = require("../project/context/flowr-analyzer-context");
|
|
17
18
|
/**
|
|
18
19
|
* By default, {@link extractUsageStatistics} requires a generator, but sometimes you already know all the files
|
|
19
20
|
* that you want to process. This function simply reps your requests as a generator.
|
|
@@ -28,13 +29,12 @@ function staticRequests(...requests) {
|
|
|
28
29
|
}
|
|
29
30
|
/**
|
|
30
31
|
* Extract all wanted statistic information from a set of requests using the presented R session.
|
|
31
|
-
*
|
|
32
32
|
* @param shell - The R session to use
|
|
33
33
|
* @param config - The flowr config
|
|
34
34
|
* @param onRequest - A callback that is called at the beginning of each request, this may be used to debug the requests.
|
|
35
35
|
* @param features - The features to extract (see {@link allFeatureNames}).
|
|
36
36
|
* @param requests - The requests to extract the features from. May generate them on demand (e.g., by traversing a folder).
|
|
37
|
-
*
|
|
37
|
+
* If your request is statically known, you can use {@link staticRequests} to create this generator.
|
|
38
38
|
* @param rootPath - The root path to the project, this is used to relativize the file paths in the statistics.
|
|
39
39
|
*/
|
|
40
40
|
async function extractUsageStatistics(shell, config, onRequest, features, requests, rootPath) {
|
|
@@ -83,8 +83,8 @@ function processMetaOnSuccessful(meta, request) {
|
|
|
83
83
|
const parser = new xmldom_1.DOMParser();
|
|
84
84
|
async function extractSingle(result, shell, request, features, suffixFilePath, config) {
|
|
85
85
|
const slicerOutput = await new pipeline_executor_1.PipelineExecutor(default_pipelines_1.DEFAULT_DATAFLOW_PIPELINE, {
|
|
86
|
-
request, parser: shell
|
|
87
|
-
}
|
|
86
|
+
context: (0, flowr_analyzer_context_1.contextFromInput)(request, config), parser: shell
|
|
87
|
+
}).allRemainingSteps();
|
|
88
88
|
// retrieve parsed xml through (legacy) xmlparsedata
|
|
89
89
|
const suffix = request.request === 'file' ? ', encoding="utf-8"' : '';
|
|
90
90
|
shell.sendCommands(`try(flowr_parsed<-parse(${request.request}=${JSON.stringify(request.content)},keep.source=TRUE${suffix}),silent=FALSE)`, 'try(flowr_output<-xmlparsedata::xml_parse_data(flowr_parsed,includeText=TRUE,pretty=FALSE),silent=FALSE)');
|
|
@@ -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).
|
|
@@ -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
|
/**
|