@eagleoutice/flowr 2.6.0 → 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 +142 -45
- package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
- package/abstract-interpretation/data-frame/absint-visitor.d.ts +3 -4
- package/abstract-interpretation/data-frame/absint-visitor.js +16 -11
- 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/flowr.js +8 -4
- package/cli/repl/commands/repl-cfg.js +4 -4
- package/cli/repl/commands/repl-commands.d.ts +13 -0
- package/cli/repl/commands/repl-commands.js +15 -4
- package/cli/repl/commands/repl-dataflow.js +4 -4
- package/cli/repl/commands/repl-execute.d.ts +5 -1
- package/cli/repl/commands/repl-execute.js +12 -8
- package/cli/repl/commands/repl-main.d.ts +17 -14
- package/cli/repl/commands/repl-normalize.js +2 -2
- package/cli/repl/commands/repl-parse.js +4 -3
- package/cli/repl/commands/repl-query.js +18 -7
- package/cli/repl/commands/repl-quit.js +1 -1
- package/cli/repl/commands/repl-version.d.ts +1 -16
- package/cli/repl/commands/repl-version.js +2 -19
- package/cli/repl/core.d.ts +32 -14
- package/cli/repl/core.js +38 -35
- 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 +8 -2
- 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 +9 -33
- 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-hello.d.ts +1 -1
- 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/server.js +2 -2
- 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/all/core/20-dataflow.d.ts +3 -1
- package/core/steps/pipeline/create-pipeline.d.ts +1 -1
- package/core/steps/pipeline/default-pipelines.d.ts +29 -13
- 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 +12 -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 +13 -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 +3 -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 +16 -1
- package/dataflow/eval/values/r-value.js +14 -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 +5 -2
- package/dataflow/extractor.js +7 -5
- package/dataflow/fn/higher-order-function.d.ts +9 -0
- package/dataflow/fn/higher-order-function.js +75 -0
- 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 +11 -2
- 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 +7 -7
- 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 +24 -34
- package/documentation/print-readme.js +106 -1
- 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 +8 -14
- package/project/cache/flowr-analyzer-cache.js +21 -19
- package/project/cfg-kind.d.ts +17 -0
- package/project/cfg-kind.js +22 -0
- package/project/context/abstract-flowr-analyzer-context.d.ts +4 -0
- package/project/context/flowr-analyzer-context.d.ts +9 -6
- package/project/context/flowr-analyzer-context.js +11 -0
- package/project/context/flowr-analyzer-dependencies-context.d.ts +1 -1
- package/project/context/flowr-analyzer-dependencies-context.js +4 -0
- package/project/context/flowr-analyzer-files-context.d.ts +3 -4
- package/project/context/flowr-analyzer-files-context.js +4 -0
- package/project/context/flowr-analyzer-loading-order-context.d.ts +1 -0
- package/project/context/flowr-analyzer-loading-order-context.js +6 -0
- 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 +42 -32
- package/project/flowr-analyzer.js +14 -8
- 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 +5 -1
- 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 +6 -3
- 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 +5 -1
- 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 +6 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +48 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +22 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.js +32 -0
- 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 +91 -53
- package/queries/query.js +37 -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 +30 -2
- 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 +5 -1
- 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 +11 -2
- package/util/r-value.js +23 -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 +26 -0
- package/util/version.js +37 -1
- 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 -67
- package/cli/repl/server/messages/message-lineage.d.ts +0 -17
- package/cli/repl/server/messages/message-lineage.js +0 -25
- package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
- package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
package/benchmark/stopwatch.js
CHANGED
|
@@ -29,9 +29,9 @@ class Stopwatch {
|
|
|
29
29
|
class Measurements {
|
|
30
30
|
measurements = new Map();
|
|
31
31
|
/**
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
* Start a timer for the given key, and guards that this is the first time this key is started.
|
|
33
|
+
* Call {@link IStoppableStopwatch#stop} on the returned stopwatch to stop the timer.
|
|
34
|
+
*/
|
|
35
35
|
start(key) {
|
|
36
36
|
// we guard *before* starting so there is no additional time penalty
|
|
37
37
|
(0, assert_1.guard)(!this.measurements.has(key), `already started stop watch for ${JSON.stringify(key)}`);
|
|
@@ -41,9 +41,9 @@ class Measurements {
|
|
|
41
41
|
return stopwatch;
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
* Automatically call {@link Measurements#start | start} and the corresponding stop to measure the execution time of the given function.
|
|
45
|
+
* @see {@link measureAsync}
|
|
46
|
+
*/
|
|
47
47
|
measure(key, fn) {
|
|
48
48
|
const stopwatch = this.start(key);
|
|
49
49
|
const result = fn();
|
|
@@ -51,13 +51,11 @@ class Measurements {
|
|
|
51
51
|
return result;
|
|
52
52
|
}
|
|
53
53
|
/**
|
|
54
|
-
|
|
55
|
-
*
|
|
54
|
+
* Similar to {@link measure}, but await the promise as part of the measurement
|
|
56
55
|
* @param key - The key to write the resulting measurement to
|
|
57
56
|
* @param fn - The function to measure
|
|
58
|
-
*
|
|
59
|
-
|
|
60
|
-
*/
|
|
57
|
+
* @see measure
|
|
58
|
+
*/
|
|
61
59
|
async measureAsync(key, fn) {
|
|
62
60
|
const stopwatch = this.start(key);
|
|
63
61
|
const result = await fn();
|
|
@@ -65,8 +63,8 @@ class Measurements {
|
|
|
65
63
|
return result;
|
|
66
64
|
}
|
|
67
65
|
/**
|
|
68
|
-
|
|
69
|
-
|
|
66
|
+
* Retrieve all measure-results, requires that all stop-watches that have been started have also been stopped.
|
|
67
|
+
*/
|
|
70
68
|
get() {
|
|
71
69
|
const result = new Map();
|
|
72
70
|
for (const [key, stopwatch] of this.measurements) {
|
|
@@ -1,2 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Processes a single run measurement line from the benchmark output.
|
|
3
|
+
*/
|
|
1
4
|
export declare function processRunMeasurement(line: Buffer, fileNum: number, lineNum: number, textOutputAppendPath: string, rawOutputPath: string): Promise<void>;
|
|
5
|
+
/**
|
|
6
|
+
* Processes multiple summarized run measurement files and appends an overall summary to the given path.
|
|
7
|
+
*/
|
|
2
8
|
export declare function processSummarizedRunMeasurement(runNum: number, summarizedFiles: string[], appendPath: string): void;
|
|
@@ -12,6 +12,9 @@ const assert_1 = require("../../../util/assert");
|
|
|
12
12
|
const ansi_1 = require("../../../util/text/ansi");
|
|
13
13
|
const json_1 = require("../../../util/json");
|
|
14
14
|
const print_1 = require("../../stats/print");
|
|
15
|
+
/**
|
|
16
|
+
* Processes a single run measurement line from the benchmark output.
|
|
17
|
+
*/
|
|
15
18
|
async function processRunMeasurement(line, fileNum, lineNum, textOutputAppendPath, rawOutputPath) {
|
|
16
19
|
let got = JSON.parse(line.toString());
|
|
17
20
|
console.log(`[file ${fileNum}, line ${lineNum}] Summarize for ${got.filename}`);
|
|
@@ -54,6 +57,9 @@ async function processRunMeasurement(line, fileNum, lineNum, textOutputAppendPat
|
|
|
54
57
|
console.log(` - Append textual summary to ${textOutputAppendPath}`);
|
|
55
58
|
fs_1.default.appendFileSync(textOutputAppendPath, `${(0, print_1.stats2string)(summarized)}\n`);
|
|
56
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* Processes multiple summarized run measurement files and appends an overall summary to the given path.
|
|
62
|
+
*/
|
|
57
63
|
function processSummarizedRunMeasurement(runNum, summarizedFiles, appendPath) {
|
|
58
64
|
console.log(`Summarizing all file statistics for run ${runNum}`);
|
|
59
65
|
const summaries = [];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Reduction, SummarizedSlicerStats, TimePerToken } from '../data';
|
|
2
|
-
import type
|
|
2
|
+
import { type SummarizedMeasurement } from '../../../util/summarizer';
|
|
3
3
|
import type { PerSliceStats, SlicerStats } from '../../stats/stats';
|
|
4
4
|
import type { SlicingCriteria } from '../../../slicing/criterion/parse';
|
|
5
5
|
import type { RShellEngineConfig } from '../../../config';
|
|
@@ -8,7 +8,19 @@ import type { RShellEngineConfig } from '../../../config';
|
|
|
8
8
|
* @see Slicer
|
|
9
9
|
*/
|
|
10
10
|
export declare function summarizeSlicerStats(stats: SlicerStats, report?: (criteria: SlicingCriteria, stats: PerSliceStats) => void, engineConf?: RShellEngineConfig): Promise<Readonly<SummarizedSlicerStats>>;
|
|
11
|
+
/**
|
|
12
|
+
* Summarizes the given measurements by calculating the min, max, median, mean, standard deviation, and total.
|
|
13
|
+
*/
|
|
11
14
|
export declare function summarizeSummarizedMeasurement(data: SummarizedMeasurement[]): SummarizedMeasurement;
|
|
15
|
+
/**
|
|
16
|
+
* Summarizes the given reductions of summarized measurements.
|
|
17
|
+
*/
|
|
12
18
|
export declare function summarizeSummarizedReductions(reductions: Reduction<SummarizedMeasurement>[]): Reduction<SummarizedMeasurement>;
|
|
19
|
+
/**
|
|
20
|
+
* Summarizes the given times per token by calculating the min, max, median, mean, and standard deviation for each measurement.
|
|
21
|
+
*/
|
|
13
22
|
export declare function summarizeSummarizedTimePerToken(times: TimePerToken[]): TimePerToken;
|
|
23
|
+
/**
|
|
24
|
+
* Summarizes the given times per token by calculating the min, max, median, mean, and standard deviation for each measurement.
|
|
25
|
+
*/
|
|
14
26
|
export declare function summarizeTimePerToken(times: TimePerToken<number>[]): TimePerToken;
|
|
@@ -299,6 +299,9 @@ function summarizePerOperationStats(nodeStats) {
|
|
|
299
299
|
}
|
|
300
300
|
return perOperationNumber;
|
|
301
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* Summarizes the given measurements by calculating the min, max, median, mean, standard deviation, and total.
|
|
304
|
+
*/
|
|
302
305
|
function summarizeSummarizedMeasurement(data) {
|
|
303
306
|
data = data.filter(assert_1.isNotUndefined);
|
|
304
307
|
const min = Math.min(...data.map(d => d.min).filter(assert_1.isNotUndefined));
|
|
@@ -312,6 +315,9 @@ function summarizeSummarizedMeasurement(data) {
|
|
|
312
315
|
const total = (0, arrays_1.arraySum)(data.map(d => d.total).filter(assert_1.isNotUndefined));
|
|
313
316
|
return { min, max, median, mean, std, total };
|
|
314
317
|
}
|
|
318
|
+
/**
|
|
319
|
+
* Summarizes the given reductions of summarized measurements.
|
|
320
|
+
*/
|
|
315
321
|
function summarizeSummarizedReductions(reductions) {
|
|
316
322
|
return {
|
|
317
323
|
numberOfDataflowNodes: summarizeSummarizedMeasurement(reductions.map(r => r.numberOfDataflowNodes)),
|
|
@@ -334,12 +340,18 @@ function summarizeReductions(reductions) {
|
|
|
334
340
|
numberOfDataflowNodes: (0, summarizer_1.summarizeMeasurement)(reductions.map(r => r.numberOfDataflowNodes).filter(assert_1.isNotUndefined))
|
|
335
341
|
};
|
|
336
342
|
}
|
|
343
|
+
/**
|
|
344
|
+
* Summarizes the given times per token by calculating the min, max, median, mean, and standard deviation for each measurement.
|
|
345
|
+
*/
|
|
337
346
|
function summarizeSummarizedTimePerToken(times) {
|
|
338
347
|
return {
|
|
339
348
|
raw: summarizeSummarizedMeasurement(times.map(t => t.raw)),
|
|
340
349
|
normalized: summarizeSummarizedMeasurement(times.map(t => t.normalized)),
|
|
341
350
|
};
|
|
342
351
|
}
|
|
352
|
+
/**
|
|
353
|
+
* Summarizes the given times per token by calculating the min, max, median, mean, and standard deviation for each measurement.
|
|
354
|
+
*/
|
|
343
355
|
function summarizeTimePerToken(times) {
|
|
344
356
|
return {
|
|
345
357
|
raw: (0, summarizer_1.summarizeMeasurement)(times.map(t => t.raw)),
|
|
@@ -6,6 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.writeGraphOutput = writeGraphOutput;
|
|
7
7
|
const fs_1 = __importDefault(require("fs"));
|
|
8
8
|
const json_1 = require("../../../util/json");
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
9
12
|
function writeGraphOutput(ultimate, outputGraphPath) {
|
|
10
13
|
console.log(`Producing benchmark graph data (${outputGraphPath})...`);
|
|
11
14
|
const data = [];
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import type { SummarizedSlicerStats, UltimateSlicerStats } from '../data';
|
|
2
|
+
/**
|
|
3
|
+
* This big function summarizes multiple summarized stats into one ultimate stat.
|
|
4
|
+
*/
|
|
2
5
|
export declare function summarizeAllSummarizedStats(stats: SummarizedSlicerStats[]): UltimateSlicerStats;
|
|
6
|
+
/**
|
|
7
|
+
* This big function summarizes multiple ultimate stats into one.
|
|
8
|
+
*/
|
|
3
9
|
export declare function summarizeAllUltimateStats(stats: UltimateSlicerStats[]): UltimateSlicerStats;
|
|
10
|
+
/**
|
|
11
|
+
* Processes the next summary line.
|
|
12
|
+
*/
|
|
4
13
|
export declare function processNextSummary(line: Buffer, allSummarized: SummarizedSlicerStats[]): void;
|
|
14
|
+
/**
|
|
15
|
+
* Processes the next ultimate summary line.
|
|
16
|
+
*/
|
|
5
17
|
export declare function processNextUltimateSummary(line: Buffer, allSummarized: UltimateSlicerStats[]): void;
|
|
@@ -11,6 +11,9 @@ const assert_1 = require("../../../util/assert");
|
|
|
11
11
|
const stats_1 = require("../../stats/stats");
|
|
12
12
|
const semantics_1 = require("../../../abstract-interpretation/data-frame/semantics");
|
|
13
13
|
const arrays_1 = require("../../../util/collections/arrays");
|
|
14
|
+
/**
|
|
15
|
+
* This big function summarizes multiple summarized stats into one ultimate stat.
|
|
16
|
+
*/
|
|
14
17
|
function summarizeAllSummarizedStats(stats) {
|
|
15
18
|
const commonMeasurements = new defaultmap_1.DefaultMap(() => []);
|
|
16
19
|
const perSliceMeasurements = new defaultmap_1.DefaultMap(() => []);
|
|
@@ -144,6 +147,9 @@ function summarizeAllSummarizedStats(stats) {
|
|
|
144
147
|
} : undefined
|
|
145
148
|
};
|
|
146
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* This big function summarizes multiple ultimate stats into one.
|
|
152
|
+
*/
|
|
147
153
|
function summarizeAllUltimateStats(stats) {
|
|
148
154
|
return {
|
|
149
155
|
// these should be deterministic, so we don't technically need to use max, but we do just in case something unexpected happens :)
|
|
@@ -225,6 +231,9 @@ function summarizeAllUltimateStats(stats) {
|
|
|
225
231
|
} : undefined
|
|
226
232
|
};
|
|
227
233
|
}
|
|
234
|
+
/**
|
|
235
|
+
* Processes the next summary line.
|
|
236
|
+
*/
|
|
228
237
|
function processNextSummary(line, allSummarized) {
|
|
229
238
|
let got = JSON.parse(line.toString());
|
|
230
239
|
got = {
|
|
@@ -251,6 +260,9 @@ function processNextSummary(line, allSummarized) {
|
|
|
251
260
|
};
|
|
252
261
|
allSummarized.push(got.summarize);
|
|
253
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* Processes the next ultimate summary line.
|
|
265
|
+
*/
|
|
254
266
|
function processNextUltimateSummary(line, allSummarized) {
|
|
255
267
|
let got = JSON.parse(line.toString());
|
|
256
268
|
got = {
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
* @module
|
|
4
4
|
*/
|
|
5
5
|
import type { UltimateSlicerStats } from './data';
|
|
6
|
-
import type
|
|
7
|
-
import { Summarizer } from '../../util/summarizer';
|
|
6
|
+
import { type CommonSummarizerConfiguration, Summarizer } from '../../util/summarizer';
|
|
8
7
|
export interface BenchmarkSummarizerConfiguration extends CommonSummarizerConfiguration {
|
|
9
8
|
/**
|
|
10
9
|
* If given, produce graph data output (e.g., for the benchmark visualization) to the given path
|
package/cli/benchmark-app.js
CHANGED
|
@@ -90,7 +90,6 @@ async function benchmark() {
|
|
|
90
90
|
}
|
|
91
91
|
/**
|
|
92
92
|
* Collect all R files from the given paths.
|
|
93
|
-
*
|
|
94
93
|
* @param files - list of files to append to
|
|
95
94
|
* @param paths - list of paths to search for R files
|
|
96
95
|
* @param getBaseDir - function to get the base directory of a path
|
|
@@ -104,7 +103,6 @@ async function collectFiles(files, paths, getBaseDir) {
|
|
|
104
103
|
}
|
|
105
104
|
/**
|
|
106
105
|
* Find the common base directory of a list of paths.
|
|
107
|
-
*
|
|
108
106
|
* @param paths - list of paths
|
|
109
107
|
* @returns the common base directory
|
|
110
108
|
*/
|
package/cli/common/features.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type FeatureKey } from '../../statistics/features/feature';
|
|
2
|
+
/**
|
|
3
|
+
* Validate that the given features are known by flowR.
|
|
4
|
+
*/
|
|
2
5
|
export declare function validateFeatures(features: (string[] | ['all'] | FeatureKey[])): Set<FeatureKey>;
|
|
6
|
+
/**
|
|
7
|
+
* Retrieve the archive name for the given path.
|
|
8
|
+
*/
|
|
3
9
|
export declare function retrieveArchiveName(p: string): string;
|
package/cli/common/features.js
CHANGED
|
@@ -7,6 +7,9 @@ exports.validateFeatures = validateFeatures;
|
|
|
7
7
|
exports.retrieveArchiveName = retrieveArchiveName;
|
|
8
8
|
const path_1 = __importDefault(require("path"));
|
|
9
9
|
const feature_1 = require("../../statistics/features/feature");
|
|
10
|
+
/**
|
|
11
|
+
* Validate that the given features are known by flowR.
|
|
12
|
+
*/
|
|
10
13
|
function validateFeatures(features) {
|
|
11
14
|
for (const feature of features) {
|
|
12
15
|
if (feature === 'all') {
|
|
@@ -22,6 +25,9 @@ function validateFeatures(features) {
|
|
|
22
25
|
}
|
|
23
26
|
return features[0] === 'all' ? feature_1.allFeatureNames : new Set(features);
|
|
24
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Retrieve the archive name for the given path.
|
|
30
|
+
*/
|
|
25
31
|
function retrieveArchiveName(p) {
|
|
26
32
|
const basepath = path_1.default.normalize(p);
|
|
27
33
|
return `${basepath.endsWith(path_1.default.sep) ? basepath.substring(0, basepath.length - 1) : basepath}.tar.gz`;
|
package/cli/common/script.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The goal of this module is simply to streamline the creation of new scripts.
|
|
3
|
-
*
|
|
4
3
|
* @module
|
|
5
4
|
*/
|
|
6
5
|
import { scripts } from './scripts-info';
|
|
@@ -18,4 +17,7 @@ export interface HelpContent {
|
|
|
18
17
|
* Additionally, you can pass usage examples that may make use of the formatting instructions `{italic x}` and `{bold x}`.
|
|
19
18
|
*/
|
|
20
19
|
export declare function helpForOptions(script: keyof typeof scripts, content: HelpContent): string;
|
|
20
|
+
/**
|
|
21
|
+
* Processes the command line arguments for a given script.
|
|
22
|
+
*/
|
|
21
23
|
export declare function processCommandLineArgs<T extends CommonOptions>(script: keyof typeof scripts, requireAdditionally: (keyof T)[], help: HelpContent): T;
|
package/cli/common/script.js
CHANGED
|
@@ -7,7 +7,6 @@ exports.helpForOptions = helpForOptions;
|
|
|
7
7
|
exports.processCommandLineArgs = processCommandLineArgs;
|
|
8
8
|
/**
|
|
9
9
|
* The goal of this module is simply to streamline the creation of new scripts.
|
|
10
|
-
*
|
|
11
10
|
* @module
|
|
12
11
|
*/
|
|
13
12
|
const scripts_info_1 = require("./scripts-info");
|
|
@@ -35,6 +34,9 @@ function helpForOptions(script, content) {
|
|
|
35
34
|
}
|
|
36
35
|
]);
|
|
37
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Processes the command line arguments for a given script.
|
|
39
|
+
*/
|
|
38
40
|
function processCommandLineArgs(script, requireAdditionally, help) {
|
|
39
41
|
const options = (0, command_line_args_1.default)(scripts_info_1.scripts[script].options);
|
|
40
42
|
if (options.help) {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* This file contains the references to all scripts, as well as their explanations and arguments.
|
|
3
|
-
*
|
|
4
3
|
* @module
|
|
5
4
|
*/
|
|
6
5
|
import type { OptionDefinition } from 'command-line-usage';
|
|
@@ -89,5 +88,8 @@ declare const _scripts: {
|
|
|
89
88
|
};
|
|
90
89
|
};
|
|
91
90
|
export declare const scripts: Record<keyof typeof _scripts, ScriptInformation>;
|
|
91
|
+
/**
|
|
92
|
+
* Given a set of option definitions and previously provided arguments, determine which options can still be added.
|
|
93
|
+
*/
|
|
92
94
|
export declare function getValidOptionsForCompletion(options: readonly OptionDefinition[], prevArgs: readonly string[]): string[];
|
|
93
95
|
export {};
|
|
@@ -68,6 +68,9 @@ const _scripts = {
|
|
|
68
68
|
}
|
|
69
69
|
};
|
|
70
70
|
exports.scripts = _scripts;
|
|
71
|
+
/**
|
|
72
|
+
* Given a set of option definitions and previously provided arguments, determine which options can still be added.
|
|
73
|
+
*/
|
|
71
74
|
function getValidOptionsForCompletion(options, prevArgs) {
|
|
72
75
|
return options.filter(o => canAddOption(o, prevArgs)).flatMap(o => {
|
|
73
76
|
const args = [(0, repl_commands_1.asOptionName)(o.name)];
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { OptionDefinition } from 'command-line-usage';
|
|
2
|
+
/**
|
|
3
|
+
* Returns a comma-separated list of all available master scripts.
|
|
4
|
+
*/
|
|
2
5
|
export declare function getScriptsText(): string;
|
|
3
6
|
export declare const flowrMainOptionDefinitions: OptionDefinition[];
|
|
4
7
|
export declare const defaultConfigFile = "flowr.json";
|
|
@@ -4,6 +4,9 @@ exports.defaultConfigFile = exports.flowrMainOptionDefinitions = void 0;
|
|
|
4
4
|
exports.getScriptsText = getScriptsText;
|
|
5
5
|
const scripts_info_1 = require("./common/scripts-info");
|
|
6
6
|
let _scriptsText;
|
|
7
|
+
/**
|
|
8
|
+
* Returns a comma-separated list of all available master scripts.
|
|
9
|
+
*/
|
|
7
10
|
function getScriptsText() {
|
|
8
11
|
if (_scriptsText === undefined) {
|
|
9
12
|
_scriptsText = Array.from(Object.entries(scripts_info_1.scripts).filter(([, { type }]) => type === 'master script'), ([k]) => k).join(', ');
|
package/cli/flowr.js
CHANGED
|
@@ -17,12 +17,12 @@ const scripts_info_1 = require("./common/scripts-info");
|
|
|
17
17
|
const execute_1 = require("./repl/execute");
|
|
18
18
|
const repl_main_1 = require("./repl/commands/repl-main");
|
|
19
19
|
const core_1 = require("./repl/core");
|
|
20
|
-
const repl_version_1 = require("./repl/commands/repl-version");
|
|
21
20
|
const print_version_1 = require("./repl/print-version");
|
|
22
21
|
const flowr_main_options_1 = require("./flowr-main-options");
|
|
23
22
|
const fs_1 = __importDefault(require("fs"));
|
|
24
23
|
const path_1 = __importDefault(require("path"));
|
|
25
24
|
const engines_1 = require("../engines");
|
|
25
|
+
const flowr_analyzer_builder_1 = require("../project/flowr-analyzer-builder");
|
|
26
26
|
exports.toolName = 'flowr';
|
|
27
27
|
exports.optionHelp = [
|
|
28
28
|
{
|
|
@@ -120,19 +120,23 @@ async function mainRepl() {
|
|
|
120
120
|
const defaultEngine = engines.engines[engines.default];
|
|
121
121
|
if (options.version) {
|
|
122
122
|
for (const engine of Object.values(engines.engines)) {
|
|
123
|
-
await (0,
|
|
123
|
+
await (0, version_1.printVersionInformation)(repl_main_1.standardReplOutput, engine);
|
|
124
124
|
engine?.close();
|
|
125
125
|
}
|
|
126
126
|
process.exit(0);
|
|
127
127
|
}
|
|
128
128
|
hookSignalHandlers(engines);
|
|
129
|
+
const analyzer = new flowr_analyzer_builder_1.FlowrAnalyzerBuilder()
|
|
130
|
+
.setParser(defaultEngine)
|
|
131
|
+
.setConfig(config)
|
|
132
|
+
.buildSync();
|
|
129
133
|
const allowRSessionAccess = options['r-session-access'] ?? false;
|
|
130
134
|
if (options.execute) {
|
|
131
|
-
await (0, core_1.replProcessAnswer)(
|
|
135
|
+
await (0, core_1.replProcessAnswer)(analyzer, repl_main_1.standardReplOutput, options.execute, allowRSessionAccess);
|
|
132
136
|
}
|
|
133
137
|
else {
|
|
134
138
|
await (0, print_version_1.printVersionRepl)(defaultEngine);
|
|
135
|
-
await (0, core_1.repl)(
|
|
139
|
+
await (0, core_1.repl)({ analyzer: analyzer, allowRSessionAccess });
|
|
136
140
|
}
|
|
137
141
|
process.exit(0);
|
|
138
142
|
}
|
|
@@ -57,7 +57,7 @@ async function produceAndPrintCfg(analyzer, output, simplifications, cfgConverte
|
|
|
57
57
|
}
|
|
58
58
|
exports.controlflowCommand = {
|
|
59
59
|
description: `Get mermaid code for the control-flow graph of R code, start with '${retriever_1.fileProtocol}' to indicate a file`,
|
|
60
|
-
|
|
60
|
+
isCodeCommand: true,
|
|
61
61
|
usageExample: ':controlflow',
|
|
62
62
|
aliases: ['cfg', 'cf'],
|
|
63
63
|
script: false,
|
|
@@ -68,7 +68,7 @@ exports.controlflowCommand = {
|
|
|
68
68
|
};
|
|
69
69
|
exports.controlflowStarCommand = {
|
|
70
70
|
description: 'Returns the URL to mermaid.live',
|
|
71
|
-
|
|
71
|
+
isCodeCommand: true,
|
|
72
72
|
usageExample: ':controlflow*',
|
|
73
73
|
aliases: ['cfg*', 'cf*'],
|
|
74
74
|
script: false,
|
|
@@ -79,7 +79,7 @@ exports.controlflowStarCommand = {
|
|
|
79
79
|
};
|
|
80
80
|
exports.controlflowBbCommand = {
|
|
81
81
|
description: `Get mermaid code for the control-flow graph with basic blocks, start with '${retriever_1.fileProtocol}' to indicate a file`,
|
|
82
|
-
|
|
82
|
+
isCodeCommand: true,
|
|
83
83
|
usageExample: ':controlflowbb',
|
|
84
84
|
aliases: ['cfgb', 'cfb'],
|
|
85
85
|
script: false,
|
|
@@ -90,7 +90,7 @@ exports.controlflowBbCommand = {
|
|
|
90
90
|
};
|
|
91
91
|
exports.controlflowBbStarCommand = {
|
|
92
92
|
description: 'Returns the URL to mermaid.live',
|
|
93
|
-
|
|
93
|
+
isCodeCommand: true,
|
|
94
94
|
usageExample: ':controlflowbb*',
|
|
95
95
|
aliases: ['cfgb*', 'cfb*'],
|
|
96
96
|
script: false,
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import type { ReplCodeCommand, ReplCommand } from './repl-main';
|
|
2
2
|
export declare const helpCommand: ReplCommand;
|
|
3
|
+
/**
|
|
4
|
+
* Retrieve all REPL commands (including those generated from master scripts)
|
|
5
|
+
*/
|
|
3
6
|
export declare function getReplCommands(): Record<string, ReplCommand | ReplCodeCommand>;
|
|
4
7
|
/**
|
|
5
8
|
* The names of all commands including their aliases (but without the leading `:`)
|
|
@@ -10,6 +13,16 @@ export declare function getCommandNames(): string[];
|
|
|
10
13
|
* @param command - The name of the command (without the leading `:`)
|
|
11
14
|
*/
|
|
12
15
|
export declare function getCommand(command: string): ReplCodeCommand | ReplCommand | undefined;
|
|
16
|
+
/**
|
|
17
|
+
* Formats the given argument name as a command line option (with single or double dashes).
|
|
18
|
+
*/
|
|
13
19
|
export declare function asOptionName(argument: string): string;
|
|
20
|
+
/**
|
|
21
|
+
* Retrieve the length of the longest command name (including star and brackets if applicable)
|
|
22
|
+
*/
|
|
14
23
|
export declare function longestCommandName(): number;
|
|
24
|
+
/**
|
|
25
|
+
* Pad the given command string to the length of the longest command name plus two spaces.
|
|
26
|
+
* @see {@link longestCommandName}
|
|
27
|
+
*/
|
|
15
28
|
export declare function padCmd<T>(string: T): string;
|
|
@@ -20,7 +20,6 @@ const ansi_1 = require("../../../util/text/ansi");
|
|
|
20
20
|
const args_1 = require("../../../util/text/args");
|
|
21
21
|
const assert_1 = require("../../../util/assert");
|
|
22
22
|
const scripts_info_1 = require("../../common/scripts-info");
|
|
23
|
-
const repl_lineage_1 = require("./repl-lineage");
|
|
24
23
|
const repl_query_1 = require("./repl-query");
|
|
25
24
|
function printHelpForScript(script, f, starredVersion) {
|
|
26
25
|
let base = ` ${(0, ansi_1.bold)(padCmd(':' + script[0] + (starredVersion ? '[*]' : '')), f)}${script[1].description}`;
|
|
@@ -47,7 +46,7 @@ function printCommandHelp(formatter) {
|
|
|
47
46
|
}
|
|
48
47
|
exports.helpCommand = {
|
|
49
48
|
description: 'Show help information',
|
|
50
|
-
|
|
49
|
+
isCodeCommand: false,
|
|
51
50
|
script: false,
|
|
52
51
|
usageExample: ':help',
|
|
53
52
|
aliases: ['h', '?'],
|
|
@@ -88,7 +87,6 @@ const _commands = {
|
|
|
88
87
|
'controlflow*': repl_cfg_1.controlflowStarCommand,
|
|
89
88
|
'controlflowbb': repl_cfg_1.controlflowBbCommand,
|
|
90
89
|
'controlflowbb*': repl_cfg_1.controlflowBbStarCommand,
|
|
91
|
-
'lineage': repl_lineage_1.lineageCommand,
|
|
92
90
|
'query': repl_query_1.queryCommand,
|
|
93
91
|
'query*': repl_query_1.queryStarCommand
|
|
94
92
|
};
|
|
@@ -102,6 +100,9 @@ function hasModule(path) {
|
|
|
102
100
|
return false;
|
|
103
101
|
}
|
|
104
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Retrieve all REPL commands (including those generated from master scripts)
|
|
105
|
+
*/
|
|
105
106
|
function getReplCommands() {
|
|
106
107
|
if (commandsInitialized) {
|
|
107
108
|
return _commands;
|
|
@@ -114,7 +115,7 @@ function getReplCommands() {
|
|
|
114
115
|
aliases: [],
|
|
115
116
|
script: true,
|
|
116
117
|
usageExample: `:${script} --help`,
|
|
117
|
-
|
|
118
|
+
isCodeCommand: false,
|
|
118
119
|
fn: async ({ output, remainingLine }) => {
|
|
119
120
|
// check if the target *module* exists in the current directory, else try two dirs up, otherwise, fail with a message
|
|
120
121
|
let path = `${__dirname}/${target}`;
|
|
@@ -168,6 +169,9 @@ function getCommand(command) {
|
|
|
168
169
|
}
|
|
169
170
|
return getReplCommands()[commandMapping[command]];
|
|
170
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Formats the given argument name as a command line option (with single or double dashes).
|
|
174
|
+
*/
|
|
171
175
|
function asOptionName(argument) {
|
|
172
176
|
if (argument.length == 1) {
|
|
173
177
|
return `-${argument}`;
|
|
@@ -177,12 +181,19 @@ function asOptionName(argument) {
|
|
|
177
181
|
}
|
|
178
182
|
}
|
|
179
183
|
let _longestCommandName = undefined;
|
|
184
|
+
/**
|
|
185
|
+
* Retrieve the length of the longest command name (including star and brackets if applicable)
|
|
186
|
+
*/
|
|
180
187
|
function longestCommandName() {
|
|
181
188
|
if (_longestCommandName === undefined) {
|
|
182
189
|
_longestCommandName = Array.from(Object.keys(getReplCommands()), k => k.endsWith('*') ? k.length + 3 : k.length).reduce((p, n) => Math.max(p, n), 0);
|
|
183
190
|
}
|
|
184
191
|
return _longestCommandName;
|
|
185
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* Pad the given command string to the length of the longest command name plus two spaces.
|
|
195
|
+
* @see {@link longestCommandName}
|
|
196
|
+
*/
|
|
186
197
|
function padCmd(string) {
|
|
187
198
|
return String(string).padEnd(longestCommandName() + 2, ' ');
|
|
188
199
|
}
|
|
@@ -43,7 +43,7 @@ function formatInfo(out, type, meta) {
|
|
|
43
43
|
}
|
|
44
44
|
exports.dataflowCommand = {
|
|
45
45
|
description: `Get mermaid code for the dataflow graph, start with '${retriever_1.fileProtocol}' to indicate a file`,
|
|
46
|
-
|
|
46
|
+
isCodeCommand: true,
|
|
47
47
|
usageExample: ':dataflow',
|
|
48
48
|
aliases: ['d', 'df'],
|
|
49
49
|
script: false,
|
|
@@ -62,7 +62,7 @@ exports.dataflowCommand = {
|
|
|
62
62
|
};
|
|
63
63
|
exports.dataflowStarCommand = {
|
|
64
64
|
description: 'Returns the URL to mermaid.live',
|
|
65
|
-
|
|
65
|
+
isCodeCommand: true,
|
|
66
66
|
usageExample: ':dataflow*',
|
|
67
67
|
aliases: ['d*', 'df*'],
|
|
68
68
|
script: false,
|
|
@@ -81,7 +81,7 @@ exports.dataflowStarCommand = {
|
|
|
81
81
|
};
|
|
82
82
|
exports.dataflowSimplifiedCommand = {
|
|
83
83
|
description: `Get mermaid code for the simplified dataflow graph, start with '${retriever_1.fileProtocol}' to indicate a file`,
|
|
84
|
-
|
|
84
|
+
isCodeCommand: true,
|
|
85
85
|
usageExample: ':dataflowsimple',
|
|
86
86
|
aliases: ['ds', 'dfs'],
|
|
87
87
|
script: false,
|
|
@@ -100,7 +100,7 @@ exports.dataflowSimplifiedCommand = {
|
|
|
100
100
|
};
|
|
101
101
|
exports.dataflowSimpleStarCommand = {
|
|
102
102
|
description: 'Returns the URL to mermaid.live',
|
|
103
|
-
|
|
103
|
+
isCodeCommand: true,
|
|
104
104
|
usageExample: ':dataflowsimple*',
|
|
105
105
|
aliases: ['ds*', 'dfs*'],
|
|
106
106
|
script: false,
|
|
@@ -1,3 +1,7 @@
|
|
|
1
1
|
import type { ReplCommand, ReplCommandInformation } from './repl-main';
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Tries to execute the given R shell command.
|
|
4
|
+
* If not allowed, an error message is printed to the output.
|
|
5
|
+
*/
|
|
6
|
+
export declare function tryExecuteRShellCommand({ output, analyzer, allowRSessionAccess, remainingLine }: ReplCommandInformation): Promise<void>;
|
|
3
7
|
export declare const executeCommand: ReplCommand;
|
|
@@ -3,22 +3,26 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.executeCommand = void 0;
|
|
4
4
|
exports.tryExecuteRShellCommand = tryExecuteRShellCommand;
|
|
5
5
|
const ansi_1 = require("../../../util/text/ansi");
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Tries to execute the given R shell command.
|
|
8
|
+
* If not allowed, an error message is printed to the output.
|
|
9
|
+
*/
|
|
10
|
+
async function tryExecuteRShellCommand({ output, analyzer, allowRSessionAccess, remainingLine }) {
|
|
11
|
+
const parserInfo = analyzer.parserInformation();
|
|
8
12
|
if (!allowRSessionAccess) {
|
|
9
13
|
output.stderr(`${output.formatter.format('You are not allowed to execute arbitrary R code.', { style: 1 /* FontStyles.Bold */, color: 1 /* Colors.Red */, effect: ansi_1.ColorEffect.Foreground })}
|
|
10
|
-
If you want to do so, please restart flowR with the ${output.formatter.format('--r-session-access', { style: 1 /* FontStyles.Bold */ })} flag${
|
|
14
|
+
If you want to do so, please restart flowR with the ${output.formatter.format('--r-session-access', { style: 1 /* FontStyles.Bold */ })} flag${parserInfo.name !== 'r-shell' ? '. Additionally, please enable the r-shell engine, e.g., with ' + output.formatter.format('--default-engine r-shell', { style: 1 /* FontStyles.Bold */ }) : ''}. Please be careful of the security implications of this action. When running flowR with npm, you have to use an extra ${output.formatter.format('--', { style: 1 /* FontStyles.Bold */ })} to separate flowR from npm arguments.`);
|
|
11
15
|
}
|
|
12
|
-
else if (
|
|
13
|
-
await executeRShellCommand(output,
|
|
16
|
+
else if (parserInfo.name === 'r-shell') {
|
|
17
|
+
await executeRShellCommand(output, analyzer, remainingLine);
|
|
14
18
|
}
|
|
15
19
|
else {
|
|
16
20
|
output.stderr(`Executing arbitrary R code is only possible when using the r-shell engine as the default engine. Enable it using the configuration file or the ${output.formatter.format('--default-engine r-shell', { style: 1 /* FontStyles.Bold */ })} command line option. When running flowR with npm, you have to use an extra ${output.formatter.format('--', { style: 1 /* FontStyles.Bold */ })} to separate flowR from npm arguments.`);
|
|
17
21
|
}
|
|
18
22
|
}
|
|
19
|
-
async function executeRShellCommand(output,
|
|
23
|
+
async function executeRShellCommand(output, analyzer, statement) {
|
|
20
24
|
try {
|
|
21
|
-
const result = await
|
|
25
|
+
const result = await analyzer.parserInformation().sendCommandWithOutput(statement, {
|
|
22
26
|
from: 'both',
|
|
23
27
|
automaticallyTrimOutput: true
|
|
24
28
|
});
|
|
@@ -30,7 +34,7 @@ async function executeRShellCommand(output, shell, statement) {
|
|
|
30
34
|
}
|
|
31
35
|
exports.executeCommand = {
|
|
32
36
|
description: 'Execute the given code as R code (essentially similar to using now command). This requires the `--r-session-access` flag to be set and requires the r-shell engine.',
|
|
33
|
-
|
|
37
|
+
isCodeCommand: false,
|
|
34
38
|
usageExample: ':execute',
|
|
35
39
|
aliases: ['e', 'r'],
|
|
36
40
|
script: false,
|