@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
|
@@ -3,7 +3,6 @@ import type { IdMessageBase, MessageDefinition } from './all-messages';
|
|
|
3
3
|
* Request the execution of the given expression as a REPL statement.
|
|
4
4
|
* We strongly recommend that you make use of a unique {@link IdMessageBase#id}
|
|
5
5
|
* in case the message responses happen in parallel.
|
|
6
|
-
*
|
|
7
6
|
* @see ExecuteIntermediateResponseMessage
|
|
8
7
|
* @see ExecuteEndMessage
|
|
9
8
|
*/
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { IdMessageBase } from './messages/all-messages';
|
|
2
2
|
import type { Socket } from './net';
|
|
3
|
+
/**
|
|
4
|
+
* Produce a new name for an unnamed socket connection
|
|
5
|
+
*/
|
|
3
6
|
export declare function getUnnamedSocketName(c: Socket): string;
|
|
7
|
+
/**
|
|
8
|
+
* Sends a message to the given socket
|
|
9
|
+
*/
|
|
4
10
|
export declare function sendMessage<T extends IdMessageBase>(c: Socket, message: T): void;
|
package/cli/repl/server/send.js
CHANGED
|
@@ -3,9 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getUnnamedSocketName = getUnnamedSocketName;
|
|
4
4
|
exports.sendMessage = sendMessage;
|
|
5
5
|
const json_1 = require("../../../util/json");
|
|
6
|
+
/**
|
|
7
|
+
* Produce a new name for an unnamed socket connection
|
|
8
|
+
*/
|
|
6
9
|
function getUnnamedSocketName(c) {
|
|
7
10
|
return `${c.remoteAddress ?? '?'}@${c.remotePort ?? '?'}`;
|
|
8
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Sends a message to the given socket
|
|
14
|
+
*/
|
|
9
15
|
function sendMessage(c, message) {
|
|
10
16
|
return (0, json_1.superBigJsonStringify)(message, '\n', msg => {
|
|
11
17
|
c.write(msg);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type * as Joi from 'joi';
|
|
2
|
-
import type
|
|
2
|
+
import { type FlowrMessage, type IdMessageBase, type MessageDefinition } from './messages/all-messages';
|
|
3
3
|
import type { Socket } from './net';
|
|
4
4
|
export interface ValidationErrorResult {
|
|
5
5
|
type: 'error';
|
|
@@ -10,6 +10,15 @@ export interface SuccessValidationResult<T extends IdMessageBase> {
|
|
|
10
10
|
message: T;
|
|
11
11
|
}
|
|
12
12
|
export type ValidationResult<T extends IdMessageBase> = SuccessValidationResult<T> | ValidationErrorResult;
|
|
13
|
+
/**
|
|
14
|
+
* Check that the serialized input is a valid base message.
|
|
15
|
+
*/
|
|
13
16
|
export declare function validateBaseMessageFormat(input: string): ValidationResult<IdMessageBase>;
|
|
17
|
+
/**
|
|
18
|
+
* Validates that the given input matches the given message definition.
|
|
19
|
+
*/
|
|
14
20
|
export declare function validateMessage<T extends FlowrMessage | IdMessageBase>(input: IdMessageBase, def: MessageDefinition<T>): ValidationResult<T>;
|
|
21
|
+
/**
|
|
22
|
+
* Sends an error message to the given client indicating a validation error.
|
|
23
|
+
*/
|
|
15
24
|
export declare function answerForValidationError(client: Socket, result: ValidationErrorResult, id?: string): void;
|
|
@@ -5,6 +5,9 @@ exports.validateMessage = validateMessage;
|
|
|
5
5
|
exports.answerForValidationError = answerForValidationError;
|
|
6
6
|
const send_1 = require("./send");
|
|
7
7
|
const all_messages_1 = require("./messages/all-messages");
|
|
8
|
+
/**
|
|
9
|
+
* Check that the serialized input is a valid base message.
|
|
10
|
+
*/
|
|
8
11
|
function validateBaseMessageFormat(input) {
|
|
9
12
|
try {
|
|
10
13
|
return validateMessage(JSON.parse(input), all_messages_1.baseMessage);
|
|
@@ -13,6 +16,9 @@ function validateBaseMessageFormat(input) {
|
|
|
13
16
|
return { type: 'error', reason: e };
|
|
14
17
|
}
|
|
15
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Validates that the given input matches the given message definition.
|
|
21
|
+
*/
|
|
16
22
|
function validateMessage(input, def) {
|
|
17
23
|
try {
|
|
18
24
|
const result = def.schema.validate(input);
|
|
@@ -22,6 +28,9 @@ function validateMessage(input, def) {
|
|
|
22
28
|
return { type: 'error', reason: e };
|
|
23
29
|
}
|
|
24
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Sends an error message to the given client indicating a validation error.
|
|
33
|
+
*/
|
|
25
34
|
function answerForValidationError(client, result, id) {
|
|
26
35
|
(0, send_1.sendMessage)(client, {
|
|
27
36
|
type: 'error',
|
package/cli/run-script.d.ts
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type StdioProcessor } from './repl/execute';
|
|
2
2
|
import { scripts } from './common/scripts-info';
|
|
3
3
|
/**
|
|
4
4
|
* Path-safe helper of {@link waitOnScript} for other flowR scripts.
|
|
5
|
-
*
|
|
6
5
|
* @see waitOnScript
|
|
7
6
|
*/
|
|
8
7
|
export declare function runScript(name: keyof typeof scripts, args: readonly string[], io?: StdioProcessor, exitOnError?: boolean): Promise<void>;
|
package/cli/run-script.js
CHANGED
|
@@ -9,7 +9,6 @@ const scripts_info_1 = require("./common/scripts-info");
|
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
10
|
/**
|
|
11
11
|
* Path-safe helper of {@link waitOnScript} for other flowR scripts.
|
|
12
|
-
*
|
|
13
12
|
* @see waitOnScript
|
|
14
13
|
*/
|
|
15
14
|
async function runScript(name, args, io, exitOnError = false) {
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { StatsCliOptions } from '../statistics-app';
|
|
2
2
|
import type { FlowrConfigOptions } from '../../config';
|
|
3
|
+
/**
|
|
4
|
+
* The core function for the 'flowr stats' script.
|
|
5
|
+
*/
|
|
3
6
|
export declare function flowrScriptGetStats(options: StatsCliOptions, config: FlowrConfigOptions): Promise<void>;
|
|
@@ -57,6 +57,9 @@ async function collectFileArguments(options, verboseAdd, dumpJson, features) {
|
|
|
57
57
|
console.log(`Total: ${counter} files (${skipped} skipped with archive existing)`);
|
|
58
58
|
return files;
|
|
59
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* The core function for the 'flowr stats' script.
|
|
62
|
+
*/
|
|
60
63
|
async function flowrScriptGetStats(options, config) {
|
|
61
64
|
if (options.input.length === 0) {
|
|
62
65
|
console.error('No input files given. Nothing to do. See \'--help\' if this is an error.');
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { StatsHelperCliOptions } from '../statistics-helper-app';
|
|
2
|
-
import type
|
|
2
|
+
import { type FlowrConfigOptions } from '../../config';
|
|
3
|
+
/**
|
|
4
|
+
* Get statistics for a single file
|
|
5
|
+
*/
|
|
3
6
|
export declare function getStatsForSingleFile(options: StatsHelperCliOptions, config: FlowrConfigOptions): Promise<void>;
|
|
@@ -21,6 +21,7 @@ const time_1 = require("../../util/text/time");
|
|
|
21
21
|
const tar_1 = require("tar");
|
|
22
22
|
const ansi_1 = require("../../util/text/ansi");
|
|
23
23
|
const config_1 = require("../../config");
|
|
24
|
+
const flowr_analyzer_context_1 = require("../../project/context/flowr-analyzer-context");
|
|
24
25
|
function compressFolder(folder, target) {
|
|
25
26
|
return (0, tar_1.create)({
|
|
26
27
|
gzip: true,
|
|
@@ -36,6 +37,9 @@ function compressFolder(folder, target) {
|
|
|
36
37
|
console.error('Error during compression:', e);
|
|
37
38
|
});
|
|
38
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Get statistics for a single file
|
|
42
|
+
*/
|
|
39
43
|
async function getStatsForSingleFile(options, config) {
|
|
40
44
|
if (options['no-ansi']) {
|
|
41
45
|
log_1.log.info('disabling ansi colors');
|
|
@@ -59,7 +63,7 @@ async function getStatsForSingleFile(options, config) {
|
|
|
59
63
|
if (stats.outputs.size === 1) {
|
|
60
64
|
if (options['dump-json']) {
|
|
61
65
|
const [, output] = [...stats.outputs.entries()][0];
|
|
62
|
-
const cfg = (0, extract_cfg_1.extractCfg)(output.normalize, config, output.dataflow.graph);
|
|
66
|
+
const cfg = (0, extract_cfg_1.extractCfg)(output.normalize, (0, flowr_analyzer_context_1.contextFromInput)('', config), output.dataflow.graph);
|
|
63
67
|
statistics_file_1.statisticsFileProvider.append('output-json', 'parse', await (0, print_1.printStepResult)(_00_parse_1.PARSE_WITH_R_SHELL_STEP, output.parse, 2 /* StepOutputFormat.Json */));
|
|
64
68
|
statistics_file_1.statisticsFileProvider.append('output-json', 'normalize', await (0, print_1.printStepResult)(_10_normalize_1.NORMALIZE, output.normalize, 2 /* StepOutputFormat.Json */));
|
|
65
69
|
statistics_file_1.statisticsFileProvider.append('output-json', 'dataflow', await (0, print_1.printStepResult)(_20_dataflow_1.STATIC_DATAFLOW, output.dataflow, 2 /* StepOutputFormat.Json */));
|
|
@@ -39,6 +39,9 @@ async function retrieveSummarizer(options, outputBase) {
|
|
|
39
39
|
process.exit(1);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* The core function for the 'flowr summarize' script.
|
|
44
|
+
*/
|
|
42
45
|
async function flowrScriptSummarizer(options) {
|
|
43
46
|
const outputBase = (options.output ?? options.input).replace(/\.json$|\/$/, '-summary');
|
|
44
47
|
console.log(`Writing outputs to base ${outputBase}`);
|
package/cli/slicer-app.js
CHANGED
|
@@ -15,7 +15,6 @@ const print_1 = require("../benchmark/stats/print");
|
|
|
15
15
|
const magic_comments_1 = require("../reconstruct/auto-select/magic-comments");
|
|
16
16
|
const auto_select_defaults_1 = require("../reconstruct/auto-select/auto-select-defaults");
|
|
17
17
|
const config_1 = require("../config");
|
|
18
|
-
const adapter_1 = require("../util/formats/adapter");
|
|
19
18
|
const options = (0, script_1.processCommandLineArgs)('slicer', ['input', 'criterion'], {
|
|
20
19
|
subtitle: 'Slice R code based on a given slicing criterion',
|
|
21
20
|
examples: [
|
|
@@ -32,8 +31,8 @@ async function getSlice() {
|
|
|
32
31
|
(0, assert_1.guard)(options.criterion !== undefined, 'a slicing criterion must be given');
|
|
33
32
|
const config = (0, config_1.getConfig)();
|
|
34
33
|
await slicer.init(options['input-is-text']
|
|
35
|
-
?
|
|
36
|
-
:
|
|
34
|
+
? { request: 'text', content: options.input.replaceAll('\\n', '\n') }
|
|
35
|
+
: { request: 'file', content: options.input }, config, options['no-magic-comments'] ? auto_select_defaults_1.doNotAutoSelect : (0, magic_comments_1.makeMagicCommentHandler)(auto_select_defaults_1.doNotAutoSelect));
|
|
37
36
|
let mappedSlices = [];
|
|
38
37
|
let reconstruct = undefined;
|
|
39
38
|
const doSlicing = options.criterion.trim() !== '';
|
|
@@ -77,7 +76,7 @@ async function getSlice() {
|
|
|
77
76
|
if (doSlicing && options.diff) {
|
|
78
77
|
let originalCode = options.input;
|
|
79
78
|
if (!options['input-is-text']) {
|
|
80
|
-
const request =
|
|
79
|
+
const request = { request: 'file', content: options.input };
|
|
81
80
|
originalCode = request.request === 'text' ? request.content : fs_1.default.readFileSync(request.content).toString();
|
|
82
81
|
}
|
|
83
82
|
console.log((0, slice_diff_ansi_1.sliceDiffAnsi)(slice.result, normalize, new Set(mappedSlices.map(({ id }) => id)), originalCode));
|
package/cli/summarizer-app.d.ts
CHANGED
package/cli/summarizer-app.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* The summarizer intends to post-process and summarize the results of
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* the benchmark tool, and
|
|
5
|
+
* the statistics extraction.
|
|
7
6
|
* @module
|
|
8
7
|
*/
|
|
9
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
package/cli/wiki.d.ts
ADDED
package/cli/wiki.js
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.makeAllWikis = makeAllWikis;
|
|
7
|
+
const doc_context_1 = require("../documentation/wiki-mk/doc-context");
|
|
8
|
+
const shell_1 = require("../r-bridge/shell");
|
|
9
|
+
const tree_sitter_executor_1 = require("../r-bridge/lang-4.x/tree-sitter/tree-sitter-executor");
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
const log_1 = require("../../test/functionality/_helper/log");
|
|
12
|
+
const command_line_usage_1 = __importDefault(require("command-line-usage"));
|
|
13
|
+
const command_line_args_1 = __importDefault(require("command-line-args"));
|
|
14
|
+
const version_1 = require("../util/version");
|
|
15
|
+
const wiki_faq_1 = require("../documentation/wiki-faq");
|
|
16
|
+
const ansi_1 = require("../util/text/ansi");
|
|
17
|
+
const documentation_1 = require("../documentation");
|
|
18
|
+
const wiki_cfg_1 = require("../documentation/wiki-cfg");
|
|
19
|
+
const wiki_onboarding_1 = require("../documentation/wiki-onboarding");
|
|
20
|
+
const wiki_analyzer_1 = require("../documentation/wiki-analyzer");
|
|
21
|
+
const issue_linting_rule_1 = require("../documentation/issue-linting-rule");
|
|
22
|
+
const doc_readme_1 = require("../documentation/doc-readme");
|
|
23
|
+
const wiki_linter_1 = require("../documentation/wiki-linter");
|
|
24
|
+
const os_1 = __importDefault(require("os"));
|
|
25
|
+
const Documents = [
|
|
26
|
+
new wiki_faq_1.WikiFaq(),
|
|
27
|
+
new documentation_1.WikiSearch(),
|
|
28
|
+
new wiki_cfg_1.WikiCfg(),
|
|
29
|
+
new documentation_1.WikiQuery(),
|
|
30
|
+
new wiki_onboarding_1.WikiOnboarding(),
|
|
31
|
+
new wiki_analyzer_1.WikiAnalyzer(),
|
|
32
|
+
new documentation_1.WikiEngine(),
|
|
33
|
+
new documentation_1.WikiNormalizedAst(),
|
|
34
|
+
new documentation_1.WikiCore(),
|
|
35
|
+
new documentation_1.WikiInterface(),
|
|
36
|
+
new documentation_1.WikiDataflowGraph(),
|
|
37
|
+
new documentation_1.WikiLintingAndTesting(),
|
|
38
|
+
new wiki_linter_1.WikiLinter(),
|
|
39
|
+
new issue_linting_rule_1.IssueLintingRule(),
|
|
40
|
+
new doc_readme_1.DocReadme(),
|
|
41
|
+
new documentation_1.DocCapabilities()
|
|
42
|
+
];
|
|
43
|
+
function sortByLeastRecentChanged(wikis) {
|
|
44
|
+
return wikis.slice().sort((a, b) => {
|
|
45
|
+
const aStat = fs_1.default.existsSync(a.getProducer()) ? fs_1.default.statSync(a.getProducer()) : undefined;
|
|
46
|
+
const bStat = fs_1.default.existsSync(b.getProducer()) ? fs_1.default.statSync(b.getProducer()) : undefined;
|
|
47
|
+
const aMTime = aStat ? aStat.mtime.getTime() : 0;
|
|
48
|
+
const bMTime = bStat ? bStat.mtime.getTime() : 0;
|
|
49
|
+
return bMTime - aMTime;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Updates and optionally re-creates all flowR wikis.
|
|
54
|
+
*/
|
|
55
|
+
async function makeAllWikis(force, filter) {
|
|
56
|
+
const setupStart = new Date();
|
|
57
|
+
console.log('Setting up wiki generation...');
|
|
58
|
+
const shell = new shell_1.RShell();
|
|
59
|
+
console.log(' * R shell initialized');
|
|
60
|
+
await tree_sitter_executor_1.TreeSitterExecutor.initTreeSitter();
|
|
61
|
+
const treeSitter = new tree_sitter_executor_1.TreeSitterExecutor();
|
|
62
|
+
console.log(' * Tree-sitter parser initialized');
|
|
63
|
+
const ctx = (0, doc_context_1.makeDocContextForTypes)(shell);
|
|
64
|
+
console.log(' * Wiki context prepared');
|
|
65
|
+
if (force) {
|
|
66
|
+
console.log(ansi_1.ansiFormatter.format('Forcing wiki regeneration (existing files will be overwritten)', { style: 1 /* FontStyles.Bold */, color: 3 /* Colors.Yellow */, effect: ansi_1.ColorEffect.Foreground }));
|
|
67
|
+
}
|
|
68
|
+
const info = {
|
|
69
|
+
ctx,
|
|
70
|
+
shell, treeSitter,
|
|
71
|
+
force,
|
|
72
|
+
readFileSync(f) {
|
|
73
|
+
try {
|
|
74
|
+
return fs_1.default.readFileSync(f);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
writeFileSync: fs_1.default.writeFileSync
|
|
81
|
+
};
|
|
82
|
+
console.log(`Setup for wiki generation took ${(new Date().getTime() - setupStart.getTime())}ms`);
|
|
83
|
+
const changedWikis = new Set();
|
|
84
|
+
try {
|
|
85
|
+
const sortedDocs = sortByLeastRecentChanged(Documents);
|
|
86
|
+
console.log(`Generating ${sortedDocs.length} wikis/docs, sorted by most recently updated...`);
|
|
87
|
+
for (const doc of sortedDocs) {
|
|
88
|
+
const type = doc.getTarget().toLowerCase().includes('wiki') ? 'Wiki' : 'Doc';
|
|
89
|
+
if (filter && !filter.some(f => doc.getTarget().includes(f))) {
|
|
90
|
+
console.log(` * Skipping ${type} (filtered out): ${doc.getTarget()}`);
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
const now = new Date();
|
|
94
|
+
console.log(ansi_1.ansiFormatter.format(` [${doc.getTarget()}] Updating ${type}...`, { style: 1 /* FontStyles.Bold */, color: 6 /* Colors.Cyan */, effect: ansi_1.ColorEffect.Foreground }));
|
|
95
|
+
const changed = await doc.make(info);
|
|
96
|
+
const text = changed ? `${type} updated` : `${type} identical, no changes made`;
|
|
97
|
+
if (changed) {
|
|
98
|
+
changedWikis.add(doc.getTarget());
|
|
99
|
+
}
|
|
100
|
+
const color = changed ? 2 /* Colors.Green */ : 7 /* Colors.White */;
|
|
101
|
+
console.log(ansi_1.ansiFormatter.format(` [${doc.getTarget()}] ${text}: ${doc.getTarget()} (took ${new Date().getTime() - now.getTime()}ms)`, { color, effect: ansi_1.ColorEffect.Foreground }));
|
|
102
|
+
for (const out of doc.getWrittenSubfiles()) {
|
|
103
|
+
changedWikis.add(out);
|
|
104
|
+
console.log(` - Also updated: ${out}`);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
console.error('Error while generating documents:', error);
|
|
110
|
+
}
|
|
111
|
+
finally {
|
|
112
|
+
shell.close();
|
|
113
|
+
}
|
|
114
|
+
console.log('All wikis processed in ' + (new Date().getTime() - setupStart.getTime()) + 'ms');
|
|
115
|
+
console.log(` * Changed ${changedWikis.size} wiki/doc files.`);
|
|
116
|
+
// write a temp file in the os temp dir with the changed wikis
|
|
117
|
+
const filename = `${os_1.default.tmpdir()}/flowr-wiki-changed-files.txt`;
|
|
118
|
+
fs_1.default.writeFileSync(`${filename}`, Array.from(changedWikis).join('\n'));
|
|
119
|
+
console.log(` * List of changed wikis/docs written to ${filename}`);
|
|
120
|
+
}
|
|
121
|
+
if (require.main === module) {
|
|
122
|
+
const wikiOptions = [
|
|
123
|
+
{ name: 'force', alias: 'F', type: Boolean, description: 'Overwrite existing wiki files, even if nothing changes' },
|
|
124
|
+
{ name: 'filter', alias: 'f', type: String, multiple: true, description: 'Only generate wikis whose target path contains the given string' },
|
|
125
|
+
{ name: 'help', alias: 'h', type: Boolean, description: 'Print this usage guide for the wiki generator' },
|
|
126
|
+
{ name: 'keep-alive', type: Boolean, description: 'Keep-alive wiki generator (only sensible with a reloading script like ts-node-dev)' },
|
|
127
|
+
];
|
|
128
|
+
const optionHelp = [
|
|
129
|
+
{
|
|
130
|
+
header: `flowR (version ${(0, version_1.flowrVersion)().toString()})`,
|
|
131
|
+
content: 'Documentation (wiki, issue, ...) generator for flowR'
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
header: 'Synopsis',
|
|
135
|
+
content: [
|
|
136
|
+
'$ wiki {bold --help}',
|
|
137
|
+
'$ wiki {bold --force}',
|
|
138
|
+
'$ wiki {bold --filter} {italic "dataflow"}'
|
|
139
|
+
]
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
header: 'Options',
|
|
143
|
+
optionList: wikiOptions
|
|
144
|
+
}
|
|
145
|
+
];
|
|
146
|
+
(0, log_1.setMinLevelOfAllLogs)(6 /* LogLevel.Fatal */);
|
|
147
|
+
// parse args
|
|
148
|
+
const options = (0, command_line_args_1.default)(wikiOptions);
|
|
149
|
+
if (options.help) {
|
|
150
|
+
console.log((0, command_line_usage_1.default)(optionHelp));
|
|
151
|
+
process.exit(0);
|
|
152
|
+
}
|
|
153
|
+
void makeAllWikis(options.force, options.filter).catch(err => {
|
|
154
|
+
console.error('Error while generating wikis:', err);
|
|
155
|
+
process.exit(1);
|
|
156
|
+
}).then(() => {
|
|
157
|
+
if (options['keep-alive']) {
|
|
158
|
+
console.log('Wiki generator running in keep-alive mode...');
|
|
159
|
+
setInterval(() => {
|
|
160
|
+
// do nothing, just keep alive
|
|
161
|
+
}, 100);
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=wiki.js.map
|
package/config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type MergeableRecord } from './util/objects';
|
|
2
2
|
import Joi from 'joi';
|
|
3
3
|
import type { BuiltInDefinitions } from './dataflow/environments/built-in-config';
|
|
4
4
|
import type { KnownParser } from './r-bridge/parser';
|
|
@@ -59,10 +59,9 @@ export interface FlowrLaxSourcingOptions extends MergeableRecord {
|
|
|
59
59
|
*/
|
|
60
60
|
readonly repeatedSourceLimit?: number;
|
|
61
61
|
/**
|
|
62
|
-
* sometimes files may have a different name in the source call
|
|
62
|
+
* sometimes files may have a different name in the source call (e.g., due to later replacements),
|
|
63
63
|
* with this setting you can provide a list of replacements to apply for each sourced file.
|
|
64
64
|
* Every replacement consists of a record that maps a regex to a replacement string.
|
|
65
|
-
*
|
|
66
65
|
* @example
|
|
67
66
|
* ```ts
|
|
68
67
|
* [
|
|
@@ -99,6 +98,10 @@ export interface FlowrConfigOptions extends MergeableRecord {
|
|
|
99
98
|
};
|
|
100
99
|
};
|
|
101
100
|
};
|
|
101
|
+
readonly project: {
|
|
102
|
+
/** Whether to resolve unknown paths loaded by the r project disk when trying to source/analyze files */
|
|
103
|
+
resolveUnknownPathsOnDisk: boolean;
|
|
104
|
+
};
|
|
102
105
|
/**
|
|
103
106
|
* The engines to use for interacting with R code. Currently, supports {@link TreeSitterEngineConfig} and {@link RShellEngineConfig}.
|
|
104
107
|
* An empty array means all available engines will be used.
|
|
@@ -205,14 +208,29 @@ export type KnownEngines = {
|
|
|
205
208
|
};
|
|
206
209
|
export declare const defaultConfigOptions: FlowrConfigOptions;
|
|
207
210
|
export declare const flowrConfigFileSchema: Joi.ObjectSchema<any>;
|
|
211
|
+
/**
|
|
212
|
+
* Parses the given JSON string as a flowR config file.
|
|
213
|
+
*/
|
|
208
214
|
export declare function parseConfig(jsonString: string): FlowrConfigOptions | undefined;
|
|
209
215
|
/**
|
|
210
216
|
* Creates a new flowr config that has the updated values.
|
|
211
217
|
*/
|
|
212
218
|
export declare function amendConfig(config: FlowrConfigOptions, amendmentFunc: (config: DeepWritable<FlowrConfigOptions>) => FlowrConfigOptions | void): FlowrConfigOptions;
|
|
219
|
+
/**
|
|
220
|
+
* Clones the given flowr config object.
|
|
221
|
+
*/
|
|
213
222
|
export declare function cloneConfig(config: FlowrConfigOptions): FlowrConfigOptions;
|
|
223
|
+
/**
|
|
224
|
+
* Loads the flowr config from the given file or the default locations.
|
|
225
|
+
*/
|
|
214
226
|
export declare function getConfig(configFile?: string, configWorkingDirectory?: string): FlowrConfigOptions;
|
|
227
|
+
/**
|
|
228
|
+
* Gets the configuration for the given engine type from the config.
|
|
229
|
+
*/
|
|
215
230
|
export declare function getEngineConfig<T extends EngineConfig['type']>(config: FlowrConfigOptions, engine: T): EngineConfig & {
|
|
216
231
|
type: T;
|
|
217
232
|
} | undefined;
|
|
233
|
+
/**
|
|
234
|
+
* Checks whether the given count is over the pointer analysis threshold configured in the config.
|
|
235
|
+
*/
|
|
218
236
|
export declare function isOverPointerAnalysisThreshold(config: FlowrConfigOptions, count: number): boolean;
|
package/config.js
CHANGED
|
@@ -65,6 +65,9 @@ exports.defaultConfigOptions = {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
|
+
project: {
|
|
69
|
+
resolveUnknownPathsOnDisk: true
|
|
70
|
+
},
|
|
68
71
|
engines: [],
|
|
69
72
|
defaultEngine: 'tree-sitter',
|
|
70
73
|
solver: {
|
|
@@ -103,6 +106,9 @@ exports.flowrConfigFileSchema = joi_1.default.object({
|
|
|
103
106
|
}).optional().description('Do you want to overwrite (parts) of the builtin definition?')
|
|
104
107
|
}).optional().description('Semantics regarding how to handle the R environment.')
|
|
105
108
|
}).description('Configure language semantics and how flowR handles them.'),
|
|
109
|
+
project: joi_1.default.object({
|
|
110
|
+
resolveUnknownPathsOnDisk: joi_1.default.boolean().optional().description('Whether to resolve unknown paths loaded by the r project disk when trying to source/analyze files.')
|
|
111
|
+
}).description('Project specific configuration options.'),
|
|
106
112
|
engines: joi_1.default.array().items(joi_1.default.alternatives(joi_1.default.object({
|
|
107
113
|
type: joi_1.default.string().required().valid('tree-sitter').description('Use the tree sitter engine.'),
|
|
108
114
|
wasmPath: joi_1.default.string().optional().description('The path to the tree-sitter-r WASM binary to use. If this is undefined, this uses the default path.'),
|
|
@@ -142,6 +148,9 @@ exports.flowrConfigFileSchema = joi_1.default.object({
|
|
|
142
148
|
}).description('The configuration of the shape inference for data frames.')
|
|
143
149
|
}).description('The configuration options for abstract interpretation.')
|
|
144
150
|
}).description('The configuration file format for flowR.');
|
|
151
|
+
/**
|
|
152
|
+
* Parses the given JSON string as a flowR config file.
|
|
153
|
+
*/
|
|
145
154
|
function parseConfig(jsonString) {
|
|
146
155
|
try {
|
|
147
156
|
const parsed = JSON.parse(jsonString);
|
|
@@ -168,9 +177,15 @@ function amendConfig(config, amendmentFunc) {
|
|
|
168
177
|
amendmentFunc(newConfig);
|
|
169
178
|
return newConfig;
|
|
170
179
|
}
|
|
180
|
+
/**
|
|
181
|
+
* Clones the given flowr config object.
|
|
182
|
+
*/
|
|
171
183
|
function cloneConfig(config) {
|
|
172
184
|
return JSON.parse(JSON.stringify(config));
|
|
173
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* Loads the flowr config from the given file or the default locations.
|
|
188
|
+
*/
|
|
174
189
|
function getConfig(configFile, configWorkingDirectory = process.cwd()) {
|
|
175
190
|
try {
|
|
176
191
|
return loadConfigFromFile(configFile, configWorkingDirectory);
|
|
@@ -180,6 +195,9 @@ function getConfig(configFile, configWorkingDirectory = process.cwd()) {
|
|
|
180
195
|
return exports.defaultConfigOptions;
|
|
181
196
|
}
|
|
182
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Gets the configuration for the given engine type from the config.
|
|
200
|
+
*/
|
|
183
201
|
function getEngineConfig(config, engine) {
|
|
184
202
|
const engines = config.engines;
|
|
185
203
|
if (!engines.length) {
|
|
@@ -198,6 +216,9 @@ function getPointerAnalysisThreshold(config) {
|
|
|
198
216
|
return pointerTracking ? 'unlimited' : 'disabled';
|
|
199
217
|
}
|
|
200
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Checks whether the given count is over the pointer analysis threshold configured in the config.
|
|
221
|
+
*/
|
|
201
222
|
function isOverPointerAnalysisThreshold(config, count) {
|
|
202
223
|
const threshold = getPointerAnalysisThreshold(config);
|
|
203
224
|
return threshold !== 'unlimited' && (threshold === 'disabled' || count > threshold);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type CfgBasicBlockVertex, type CfgEndMarkerVertex, type CfgExpressionVertex, type CfgSimpleVertex, type CfgStatementVertex, type ControlFlowInformation } from './control-flow-graph';
|
|
2
2
|
import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
3
3
|
export interface BasicCfgGuidedVisitorConfiguration<ControlFlow extends ControlFlowInformation = ControlFlowInformation> {
|
|
4
4
|
readonly controlFlow: ControlFlow;
|
|
@@ -17,7 +17,6 @@ export declare class BasicCfgGuidedVisitor<ControlFlow extends ControlFlowInform
|
|
|
17
17
|
constructor(config: Config);
|
|
18
18
|
/**
|
|
19
19
|
* call this function to indicate that a node is to be considered visited.
|
|
20
|
-
*
|
|
21
20
|
* @returns `true` if the node was not visited before, `false` otherwise
|
|
22
21
|
*/
|
|
23
22
|
protected visitNode(node: NodeId): boolean;
|
|
@@ -54,7 +54,12 @@ class CfgConditionalDeadCodeRemoval extends semantic_cfg_guided_visitor_1.Semant
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
handleValuesFor(id, valueId) {
|
|
57
|
-
const values = (0, general_1.valueSetGuard)((0, alias_tracking_1.resolveIdToValue)(valueId, {
|
|
57
|
+
const values = (0, general_1.valueSetGuard)((0, alias_tracking_1.resolveIdToValue)(valueId, {
|
|
58
|
+
graph: this.config.dfg,
|
|
59
|
+
full: true,
|
|
60
|
+
idMap: this.config.normalizedAst.idMap,
|
|
61
|
+
resolve: this.config.ctx.config.solver.variables
|
|
62
|
+
}));
|
|
58
63
|
if (values === undefined || values.elements.length !== 1 || values.elements[0].type != 'logical' || !(0, r_value_1.isValue)(values.elements[0].value)) {
|
|
59
64
|
this.unableToCalculateValue(id);
|
|
60
65
|
return;
|
|
@@ -74,7 +79,12 @@ class CfgConditionalDeadCodeRemoval extends semantic_cfg_guided_visitor_1.Semant
|
|
|
74
79
|
if (data.call.args.length !== 1 || data.call.args[0] === r_function_call_1.EmptyArgument) {
|
|
75
80
|
return undefined;
|
|
76
81
|
}
|
|
77
|
-
const values = (0, general_1.valueSetGuard)((0, alias_tracking_1.resolveIdToValue)(data.call.args[0].nodeId, {
|
|
82
|
+
const values = (0, general_1.valueSetGuard)((0, alias_tracking_1.resolveIdToValue)(data.call.args[0].nodeId, {
|
|
83
|
+
graph: this.config.dfg,
|
|
84
|
+
full: true,
|
|
85
|
+
idMap: this.config.normalizedAst.idMap,
|
|
86
|
+
resolve: this.config.ctx.config.solver.variables
|
|
87
|
+
}));
|
|
78
88
|
if (values === undefined || values.elements.length !== 1 || values.elements[0].type != 'logical' || !(0, r_value_1.isValue)(values.elements[0].value)) {
|
|
79
89
|
return undefined;
|
|
80
90
|
}
|
|
@@ -115,7 +125,7 @@ function cfgAnalyzeDeadCode(cfg, info) {
|
|
|
115
125
|
controlFlow: cfg,
|
|
116
126
|
normalizedAst: info.ast,
|
|
117
127
|
dfg: info.dfg,
|
|
118
|
-
|
|
128
|
+
ctx: info.ctx,
|
|
119
129
|
defaultVisitingOrder: 'forward',
|
|
120
130
|
});
|
|
121
131
|
visitor.start();
|
|
@@ -3,13 +3,16 @@ import type { NormalizedAst } from '../r-bridge/lang-4.x/ast/model/processing/de
|
|
|
3
3
|
import type { DataflowGraph } from '../dataflow/graph/graph';
|
|
4
4
|
import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
5
5
|
import { cfgAnalyzeDeadCode } from './cfg-dead-code';
|
|
6
|
-
import type {
|
|
6
|
+
import type { ReadOnlyFlowrAnalyzerContext } from '../project/context/flowr-analyzer-context';
|
|
7
7
|
export interface CfgPassInfo {
|
|
8
8
|
ast?: NormalizedAst;
|
|
9
9
|
dfg?: DataflowGraph;
|
|
10
|
-
|
|
10
|
+
ctx: ReadOnlyFlowrAnalyzerContext;
|
|
11
11
|
}
|
|
12
12
|
export type CfgSimplificationPass = (cfg: ControlFlowInformation, info: CfgPassInfo) => ControlFlowInformation;
|
|
13
|
+
/**
|
|
14
|
+
* All available control flow graph simplification passes.
|
|
15
|
+
*/
|
|
13
16
|
export declare const CfgSimplificationPasses: {
|
|
14
17
|
readonly 'unique-cf-sets': typeof uniqueControlFlowSets;
|
|
15
18
|
readonly 'analyze-dead-code': typeof cfgAnalyzeDeadCode;
|
|
@@ -6,6 +6,9 @@ exports.cfgFindAllReachable = cfgFindAllReachable;
|
|
|
6
6
|
const cfg_to_basic_blocks_1 = require("./cfg-to-basic-blocks");
|
|
7
7
|
const simple_visitor_1 = require("./simple-visitor");
|
|
8
8
|
const cfg_dead_code_1 = require("./cfg-dead-code");
|
|
9
|
+
/**
|
|
10
|
+
* All available control flow graph simplification passes.
|
|
11
|
+
*/
|
|
9
12
|
exports.CfgSimplificationPasses = {
|
|
10
13
|
'unique-cf-sets': uniqueControlFlowSets,
|
|
11
14
|
'analyze-dead-code': cfg_dead_code_1.cfgAnalyzeDeadCode,
|