@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/dataflow/processor.js
CHANGED
|
@@ -10,7 +10,6 @@ exports.processDataflowFor = processDataflowFor;
|
|
|
10
10
|
* <p>
|
|
11
11
|
* Now this method can be called recursively within the other processors to parse the dataflow for nodes that you cannot narrow down
|
|
12
12
|
* in type or context.
|
|
13
|
-
*
|
|
14
13
|
* @param current - The current node to start processing from
|
|
15
14
|
* @param data - The initial (/current) information to be passed down
|
|
16
15
|
*/
|
|
@@ -16,5 +16,11 @@ export interface ExplanationParameters {
|
|
|
16
16
|
readonly code: string;
|
|
17
17
|
readonly expectedSubgraph: DataflowGraph;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
19
22
|
export declare function getAllVertices(): [string, VertexType][];
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
20
26
|
export declare function getAllEdges(): [string, EdgeType][];
|
|
@@ -4,9 +4,15 @@ exports.getAllVertices = getAllVertices;
|
|
|
4
4
|
exports.getAllEdges = getAllEdges;
|
|
5
5
|
const vertex_1 = require("../../../dataflow/graph/vertex");
|
|
6
6
|
const edge_1 = require("../../../dataflow/graph/edge");
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
7
10
|
function getAllVertices() {
|
|
8
11
|
return Object.entries(vertex_1.VertexType);
|
|
9
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
10
16
|
function getAllEdges() {
|
|
11
17
|
return Object.entries(edge_1.EdgeType).filter(([, v]) => Number.isInteger(v));
|
|
12
18
|
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.registerFaqs = registerFaqs;
|
|
4
|
+
const wiki_faq_store_1 = require("./wiki-faq-store");
|
|
5
|
+
const doc_files_1 = require("../../doc-util/doc-files");
|
|
6
|
+
const doc_code_1 = require("../../doc-util/doc-code");
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
function registerFaqs() {
|
|
11
|
+
const wikiFaq = new wiki_faq_store_1.FaqStore();
|
|
12
|
+
wikiFaq.withTopic('flowr.development')
|
|
13
|
+
.addFaq('What are *test labels*?', `
|
|
14
|
+
Tests are labeled based on the *flowR* capabilities that they test for.
|
|
15
|
+
The list of supported capabilities can be found on the [Capabilities](${doc_files_1.FlowrWikiBaseRef}/Capabilities) wiki page.
|
|
16
|
+
For more extensive information on test labels, see the [test labels wiki section](${doc_files_1.FlowrWikiBaseRef}/Linting-and-Testing#test-labels).
|
|
17
|
+
`)
|
|
18
|
+
.addFaq('How to get a REPL with debug-info/*hot-reload*?', `
|
|
19
|
+
To enter the development repl, execute \`npm run main-dev\` in contrast to \`npm run flowr\`
|
|
20
|
+
this will use an unminified build (keeping debug info) and also watches the source files for changes.
|
|
21
|
+
In case of a change, this mode automatically recompiles.
|
|
22
|
+
Please note, that this may have negative performance implications (so do not use this for e.g., benchmarking).
|
|
23
|
+
`)
|
|
24
|
+
.addFaq('How to generate *mermaid diagrams*?', `
|
|
25
|
+
There are several ways to generate mermaid diagrams based on the input data that you want to use.
|
|
26
|
+
- From the AST (abstract syntax tree): ${(0, doc_files_1.getFilePathMd)('../util/mermaid/ast.ts')}
|
|
27
|
+
- From the CFG (control flow graph): ${(0, doc_files_1.getFilePathMd)('../util/mermaid/cfg.ts')}
|
|
28
|
+
- From the DFG (dataflow graph): ${(0, doc_files_1.getFilePathMd)('../util/mermaid/dfg.ts')}
|
|
29
|
+
`)
|
|
30
|
+
.addFaq('How to create *new wiki* pages?', `
|
|
31
|
+
To create an automatically generated wiki page, you can follow these steps:
|
|
32
|
+
- Create a new file in \`src/documentation\` with a name like \`print-my-page-wiki.ts\`.
|
|
33
|
+
- Add a new wiki generation script to the ${(0, doc_files_1.getFilePathMd)('../../package.json')}. You can copy one of the existing ones of the form \`"wiki:my-page": "ts-node src/documentation/print-my-page-wiki.ts"\`.
|
|
34
|
+
- Add the wiki generation script to the \`broken-links-and-wiki.yml\` GitHub workflow file to enable automatic generation through the CI. You can copy one of the existing ones of the form \`update_page wiki/"My page" wiki:my-page\`.
|
|
35
|
+
|
|
36
|
+
You can test your page by piping the wiki generation script to a file. For example, you can run the following command:
|
|
37
|
+
${(0, doc_code_1.codeBlock)('shell', 'npm run --silent wiki:my-page > __my-page.md')}
|
|
38
|
+
|
|
39
|
+
Remember not to commit this file, as it's only meant for testing.
|
|
40
|
+
`)
|
|
41
|
+
.addFaq('Why can\'t I pass *arguments* when running flowR *with npm*?', `
|
|
42
|
+
With \`npm\` you have to pass arguments in a specific way. The \`--\` operator is used to separate the \`npm\` arguments from the script arguments. For example, if you want to run \`flowR\` with the \`--help\` argument, you can use the following command:
|
|
43
|
+
${(0, doc_code_1.codeBlock)('shell', 'npm run flowR -- --help')}
|
|
44
|
+
`)
|
|
45
|
+
.addFaq('How to do *logging* in flowR?', `
|
|
46
|
+
Check out the [Logging Section in the Linting and Testing wiki page](${doc_files_1.FlowrWikiBaseRef}/Linting-and-Testing#logging) for more information on how to do logging in *flowR*.
|
|
47
|
+
`);
|
|
48
|
+
wikiFaq.withTopic('flowr.use')
|
|
49
|
+
.addFaq('How to *query* an R project?', `
|
|
50
|
+
For this you can use flowR's [Query API](${doc_files_1.FlowrWikiBaseRef}/Query-API).
|
|
51
|
+
If you want to create your own project using flowR as a library, check out the
|
|
52
|
+
[${doc_files_1.FlowrGithubGroupName}/sample-analyzer-project-query](${doc_files_1.FlowrGithubBaseRef}/sample-analyzer-project-query) repository for an example project setup.
|
|
53
|
+
`);
|
|
54
|
+
wikiFaq.withTopic('r.packages')
|
|
55
|
+
.addFaq('What is the R *prelude* and R *base* package?', `
|
|
56
|
+
The base package contains lots of base functions like \`source\` for example.
|
|
57
|
+
The R prelude includes the base package along with several other packages.
|
|
58
|
+
Packages that were loaded by the prelude can be called without prefixing the
|
|
59
|
+
function call with the package name and the \`::\` operator.
|
|
60
|
+
|
|
61
|
+
The packages loaded by the R prelude can be seen in the \`attached base packages\`
|
|
62
|
+
sections in the output of \`sessionInfo()\`.
|
|
63
|
+
`)
|
|
64
|
+
.addFaq('How to get *documentation* for a function or package?', `
|
|
65
|
+
There are a couple of ways to get documentation for a function or package.
|
|
66
|
+
|
|
67
|
+
🖥️ Firstly, if you have already installed the package the function originated from you can simply run \`?<package name>::<function name>\` in an R session to print the
|
|
68
|
+
relevant documentation. If you don't know the origin of the package, you can use
|
|
69
|
+
\`??<function name>\` in an R shell to fuzzy find all documentations containing
|
|
70
|
+
\`<function name>\` or something similar.
|
|
71
|
+
|
|
72
|
+
🌐 Secondly, if you don't have or don't want to install the package you can simply google the fully qualified name of the function. Good sources include [rdrr.io](https://rdrr.io/)
|
|
73
|
+
or [rdocumentation.org](https://rdocumentation.org/). Additionally, the package documentation PDF can also
|
|
74
|
+
be downloaded directly from [cran](https://cran.r-project.org/).
|
|
75
|
+
`);
|
|
76
|
+
return wikiFaq;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=faqs.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
declare const FlowrFaqTopics: {
|
|
2
|
+
readonly 'flowr.use': "✨ Using <i>flowR</i>";
|
|
3
|
+
readonly 'flowr.development': "🧑💻 <i>flowR</i> Development";
|
|
4
|
+
readonly 'r.packages': "📦 R Packages";
|
|
5
|
+
};
|
|
6
|
+
type Topic = keyof typeof FlowrFaqTopics;
|
|
7
|
+
/**
|
|
8
|
+
* Manage all questions and answers by topic.
|
|
9
|
+
*/
|
|
10
|
+
export declare class FaqStore {
|
|
11
|
+
private faqs;
|
|
12
|
+
private currTopic;
|
|
13
|
+
withTopic(topic: Topic): this;
|
|
14
|
+
addFaq(question: string, answer: string): this;
|
|
15
|
+
private printAllTopics;
|
|
16
|
+
toMarkdown(): string;
|
|
17
|
+
}
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FaqStore = void 0;
|
|
4
|
+
const doc_structure_1 = require("../../doc-util/doc-structure");
|
|
5
|
+
const defaultmap_1 = require("../../../util/collections/defaultmap");
|
|
6
|
+
const assert_1 = require("../../../util/assert");
|
|
7
|
+
const FlowrFaqTopics = {
|
|
8
|
+
'flowr.use': '✨ Using <i>flowR</i>',
|
|
9
|
+
'flowr.development': '🧑💻 <i>flowR</i> Development',
|
|
10
|
+
'r.packages': '📦 R Packages'
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Manage all questions and answers by topic.
|
|
14
|
+
*/
|
|
15
|
+
class FaqStore {
|
|
16
|
+
faqs = new defaultmap_1.DefaultMap(() => []);
|
|
17
|
+
currTopic = undefined;
|
|
18
|
+
withTopic(topic) {
|
|
19
|
+
this.currTopic = topic;
|
|
20
|
+
return this;
|
|
21
|
+
}
|
|
22
|
+
addFaq(question, answer) {
|
|
23
|
+
(0, assert_1.guard)(this.currTopic !== undefined, 'Current topic is not set use withTopic first');
|
|
24
|
+
question = question.replace(/\*([^*]+)\*/g, '<b>$1</b>');
|
|
25
|
+
const store = this.faqs.get(this.currTopic);
|
|
26
|
+
if (store.find(([q]) => q === question)) {
|
|
27
|
+
throw new Error(`FAQ for question "${question}" in topic "${this.currTopic}" already exists`);
|
|
28
|
+
}
|
|
29
|
+
store.push([question, answer]);
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
printAllTopics(topicsRegex) {
|
|
33
|
+
const topics = Array.from(this.faqs.keys())
|
|
34
|
+
.filter(topic => topicsRegex.test(topic))
|
|
35
|
+
.sort((a, b) => a.localeCompare(b));
|
|
36
|
+
let output = '';
|
|
37
|
+
for (const topic of topics) {
|
|
38
|
+
const faqs = this.faqs.get(topic).sort(([q1], [q2]) => q1.localeCompare(q2));
|
|
39
|
+
if (faqs.length === 0) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
output += (0, doc_structure_1.section)(FlowrFaqTopics[topic], 3) + '\n\n';
|
|
43
|
+
for (const [question, answer] of faqs) {
|
|
44
|
+
output += qAndA(question, answer) + '\n\n';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return output;
|
|
48
|
+
}
|
|
49
|
+
toMarkdown() {
|
|
50
|
+
return `
|
|
51
|
+
${(0, doc_structure_1.collapsibleToc)({
|
|
52
|
+
['💮 *flowR* FAQ']: {
|
|
53
|
+
[FlowrFaqTopics['flowr.development']]: {},
|
|
54
|
+
[FlowrFaqTopics['flowr.use']]: {}
|
|
55
|
+
},
|
|
56
|
+
['🇷 R FAQ']: {
|
|
57
|
+
[FlowrFaqTopics['r.packages']]: {}
|
|
58
|
+
}
|
|
59
|
+
})}
|
|
60
|
+
|
|
61
|
+
${(0, doc_structure_1.section)('💮 <i>flowR</i> FAQ', 2)}
|
|
62
|
+
|
|
63
|
+
${this.printAllTopics(/^flowr.*$/)}
|
|
64
|
+
|
|
65
|
+
${(0, doc_structure_1.section)('🇷 R FAQ', 2)}
|
|
66
|
+
|
|
67
|
+
${this.printAllTopics(/^r.*$/)}
|
|
68
|
+
`;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.FaqStore = FaqStore;
|
|
72
|
+
function qAndA(question, answer) {
|
|
73
|
+
return (0, doc_structure_1.details)(question.trim(), answer.trim(), { hideIfEmpty: true });
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=wiki-faq-store.js.map
|
|
@@ -16,8 +16,10 @@ const message_slice_1 = require("../../../cli/repl/server/messages/message-slice
|
|
|
16
16
|
const message_repl_1 = require("../../../cli/repl/server/messages/message-repl");
|
|
17
17
|
const message_query_1 = require("../../../cli/repl/server/messages/message-query");
|
|
18
18
|
const example_query_code_1 = require("../query/example-query-code");
|
|
19
|
-
const message_lineage_1 = require("../../../cli/repl/server/messages/message-lineage");
|
|
20
19
|
const identify_link_to_last_call_relation_1 = require("../../../queries/catalog/call-context-query/identify-link-to-last-call-relation");
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
21
23
|
function documentAllServerMessages() {
|
|
22
24
|
(0, doc_server_message_1.documentServerMessage)({
|
|
23
25
|
title: 'Hello',
|
|
@@ -67,7 +69,7 @@ Requests for the [REPL](#message-request-repl) are independent of that.
|
|
|
67
69
|
return `
|
|
68
70
|
|
|
69
71
|
The request allows the server to analyze a file and prepare it for slicing.
|
|
70
|
-
The message can contain a \`filetoken\`, which is used to identify the file in later slice or
|
|
72
|
+
The message can contain a \`filetoken\`, which is used to identify the file in later slice or query requests (if you do not add one, the request will not be stored and therefore, it is not available for subsequent requests).
|
|
71
73
|
|
|
72
74
|
> **Please note!**\\
|
|
73
75
|
> If you want to send and process a lot of analysis requests, but do not want to slice them, please do not pass the \`filetoken\` field. This will save the server a lot of memory allocation.
|
|
@@ -478,66 +480,5 @@ See [above](#message-request-file-analysis) for the general structure of the res
|
|
|
478
480
|
`;
|
|
479
481
|
}
|
|
480
482
|
});
|
|
481
|
-
(0, doc_server_message_1.documentServerMessage)({
|
|
482
|
-
title: 'Lineage',
|
|
483
|
-
type: 'request',
|
|
484
|
-
definitionPath: '../cli/repl/server/messages/message-lineage.ts',
|
|
485
|
-
defRequest: message_lineage_1.requestLineageMessage,
|
|
486
|
-
defResponse: message_lineage_1.responseLineageMessage,
|
|
487
|
-
mermaidSequenceDiagram: `
|
|
488
|
-
Client->>+Server: request-lineage
|
|
489
|
-
|
|
490
|
-
alt
|
|
491
|
-
Server-->>Client: response-lineage
|
|
492
|
-
else
|
|
493
|
-
Server-->>Client: error
|
|
494
|
-
end
|
|
495
|
-
deactivate Server
|
|
496
|
-
`,
|
|
497
|
-
shortDescription: `${deprecatedByQuery} Obtain the lineage of a given slicing criterion.`,
|
|
498
|
-
text: async (shell) => {
|
|
499
|
-
return `
|
|
500
|
-
|
|
501
|
-
**We deprecated the lineage request in favor of the \`lineage\` [Query](${doc_files_1.FlowrWikiBaseRef}/Query%20API).**
|
|
502
|
-
|
|
503
|
-
In order to retrieve the lineage of an object, you have to send a file analysis request first. The \`filetoken\` you assign is of use here as you can re-use it to repeatedly retrieve the lineage of the same file.
|
|
504
|
-
Besides that, you will need to add a [criterion](${doc_files_1.FlowrWikiBaseRef}/Terminology#slicing-criterion) that specifies the object whose lineage you're interested in.
|
|
505
|
-
|
|
506
|
-
${await (0, doc_server_message_1.documentServerMessageResponse)({
|
|
507
|
-
shell,
|
|
508
|
-
messageType: 'request-query',
|
|
509
|
-
messages: [{
|
|
510
|
-
type: 'request',
|
|
511
|
-
message: {
|
|
512
|
-
type: 'request-file-analysis',
|
|
513
|
-
id: '1',
|
|
514
|
-
filetoken: 'x',
|
|
515
|
-
content: 'x <- 1\nx + 1'
|
|
516
|
-
}
|
|
517
|
-
}, {
|
|
518
|
-
type: 'response',
|
|
519
|
-
expectedType: 'response-file-analysis',
|
|
520
|
-
description: `
|
|
521
|
-
See [above](#message-request-file-analysis) for the general structure of the response.
|
|
522
|
-
`
|
|
523
|
-
}, {
|
|
524
|
-
type: 'request',
|
|
525
|
-
message: {
|
|
526
|
-
type: 'request-lineage',
|
|
527
|
-
id: '2',
|
|
528
|
-
filetoken: 'x',
|
|
529
|
-
criterion: '2@x'
|
|
530
|
-
},
|
|
531
|
-
mark: true
|
|
532
|
-
}, {
|
|
533
|
-
type: 'response',
|
|
534
|
-
expectedType: 'response-lineage',
|
|
535
|
-
description: 'The response contains the lineage of the desired object in form of an array of IDs (as the representation of a set).'
|
|
536
|
-
}]
|
|
537
|
-
})}
|
|
538
|
-
|
|
539
|
-
`;
|
|
540
|
-
}
|
|
541
|
-
});
|
|
542
483
|
}
|
|
543
484
|
//# sourceMappingURL=doc-data-server-messages.js.map
|
|
@@ -4,5 +4,11 @@ export interface AutoGenHeaderArguments {
|
|
|
4
4
|
readonly filename: string;
|
|
5
5
|
readonly purpose: string;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
7
10
|
export declare function autoGenHeader({ rVersion, filename, purpose, currentDateAndTime }: AutoGenHeaderArguments): string;
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
8
14
|
export declare function fileNameForGenHeader(filename: string): string;
|
|
@@ -4,9 +4,15 @@ exports.autoGenHeader = autoGenHeader;
|
|
|
4
4
|
exports.fileNameForGenHeader = fileNameForGenHeader;
|
|
5
5
|
const version_1 = require("../../util/version");
|
|
6
6
|
const doc_files_1 = require("./doc-files");
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
7
10
|
function autoGenHeader({ rVersion, filename, purpose, currentDateAndTime = new Date().toISOString().replace('T', ', ').replace(/\.\d+Z$/, ' UTC') }) {
|
|
8
11
|
return `_This document was generated from '${fileNameForGenHeader(filename)}' on ${currentDateAndTime} presenting an overview of flowR's ${purpose} (v${(0, version_1.flowrVersion)().format()}${rVersion ? ', using R v' + rVersion : ''}). Please do not edit this file/wiki page directly._`;
|
|
9
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
10
16
|
function fileNameForGenHeader(filename) {
|
|
11
17
|
const shortenFilename = filename.replace(/^.*src\//, 'src/');
|
|
12
18
|
return (0, doc_files_1.linkFlowRSourceFile)(shortenFilename);
|
|
@@ -16,8 +16,20 @@ interface BenchmarkElementBench {
|
|
|
16
16
|
readonly range: number;
|
|
17
17
|
readonly extra: string;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
19
22
|
export declare function loadBenchmarkData(): Promise<BenchmarkData>;
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
20
26
|
export declare function getLatestBenchmark(suite: string): Promise<BenchmarkElement>;
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
21
30
|
export declare function getLastBenchmarkUpdate(): Promise<number>;
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
22
34
|
export declare function getLatestDfAnalysisTime(suite: string): Promise<number>;
|
|
23
35
|
export {};
|
|
@@ -44,6 +44,9 @@ const path_1 = __importDefault(require("path"));
|
|
|
44
44
|
const assert_1 = require("../../util/assert");
|
|
45
45
|
const BenchmarkDataPath = path_1.default.resolve(__dirname, '..', '..', '..', 'wiki', 'stats', 'benchmark', 'data.js');
|
|
46
46
|
let benchmarkData = null;
|
|
47
|
+
/**
|
|
48
|
+
*
|
|
49
|
+
*/
|
|
47
50
|
async function loadBenchmarkData() {
|
|
48
51
|
if (benchmarkData === null) {
|
|
49
52
|
// provide a window object to attach to in the import
|
|
@@ -54,12 +57,18 @@ async function loadBenchmarkData() {
|
|
|
54
57
|
}
|
|
55
58
|
return benchmarkData;
|
|
56
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
*
|
|
62
|
+
*/
|
|
57
63
|
async function getLatestBenchmark(suite) {
|
|
58
64
|
// provide a window object to attach to in the import
|
|
59
65
|
const suiteData = (await loadBenchmarkData()).entries[suite];
|
|
60
66
|
(0, assert_1.guard)(suiteData, `No benchmark data for suite '${suite}' found!`);
|
|
61
67
|
return suiteData.sort((a, b) => b.date - a.date)[0];
|
|
62
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
*
|
|
71
|
+
*/
|
|
63
72
|
async function getLastBenchmarkUpdate() {
|
|
64
73
|
return (await loadBenchmarkData()).lastUpdate;
|
|
65
74
|
}
|
|
@@ -68,6 +77,9 @@ function getBenchmarkElement(bench, name) {
|
|
|
68
77
|
(0, assert_1.guard)(element, `No benchmark data for '${name}' found!`);
|
|
69
78
|
return element;
|
|
70
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
*
|
|
82
|
+
*/
|
|
71
83
|
async function getLatestDfAnalysisTime(suite) {
|
|
72
84
|
const elem = await getLatestBenchmark(suite);
|
|
73
85
|
const [parse, normalize, analyze] = ['Retrieve AST from R code', 'Normalize R AST', 'Produce dataflow information'].map(name => getBenchmarkElement(elem, name));
|
|
@@ -2,7 +2,7 @@ import type { NormalizedAst } from '../../r-bridge/lang-4.x/ast/model/processing
|
|
|
2
2
|
import type { KnownParser } from '../../r-bridge/parser';
|
|
3
3
|
import type { DataflowInformation } from '../../dataflow/info';
|
|
4
4
|
import type { ControlFlowInformation } from '../../control-flow/control-flow-graph';
|
|
5
|
-
import type
|
|
5
|
+
import { type CfgSimplificationPassName } from '../../control-flow/cfg-simplification';
|
|
6
6
|
type GetCfgReturn = {
|
|
7
7
|
info: ControlFlowInformation;
|
|
8
8
|
ast: NormalizedAst;
|
|
@@ -10,6 +10,9 @@ type GetCfgReturn = {
|
|
|
10
10
|
};
|
|
11
11
|
export declare function getCfg(parser: KnownParser, code: string, simplifications?: readonly CfgSimplificationPassName[], useDfg?: true): Promise<Required<GetCfgReturn>>;
|
|
12
12
|
export declare function getCfg(parser: KnownParser, code: string, simplifications?: readonly CfgSimplificationPassName[], useDfg?: boolean): Promise<GetCfgReturn>;
|
|
13
|
+
/**
|
|
14
|
+
* Serializes the given control flow graph to a mermaid diagram.
|
|
15
|
+
*/
|
|
13
16
|
export declare function printCfg(cfg: ControlFlowInformation, ast: NormalizedAst, prefix?: string, simplify?: boolean): string;
|
|
14
17
|
export interface PrintCfgOptions {
|
|
15
18
|
readonly showCode?: boolean;
|
|
@@ -19,5 +22,8 @@ export interface PrintCfgOptions {
|
|
|
19
22
|
readonly simplify?: boolean;
|
|
20
23
|
readonly useDfg?: boolean;
|
|
21
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Generates and prints the control flow graph for the given code, along with optional metadata and the original code.
|
|
27
|
+
*/
|
|
22
28
|
export declare function printCfgCode(parser: KnownParser, code: string, { showCode, openCode, prefix, simplifications, simplify, useDfg }?: PrintCfgOptions): Promise<string>;
|
|
23
29
|
export {};
|
|
@@ -12,6 +12,9 @@ const cfg_1 = require("../../util/mermaid/cfg");
|
|
|
12
12
|
const doc_code_1 = require("./doc-code");
|
|
13
13
|
const cfg_simplification_1 = require("../../control-flow/cfg-simplification");
|
|
14
14
|
const config_1 = require("../../config");
|
|
15
|
+
/**
|
|
16
|
+
* Returns the control flow graph for the given code.
|
|
17
|
+
*/
|
|
15
18
|
async function getCfg(parser, code, simplifications = [], useDfg = true) {
|
|
16
19
|
const result = useDfg ? await (0, default_pipelines_1.createDataflowPipeline)(parser, {
|
|
17
20
|
request: (0, retriever_1.requestFromInput)(code)
|
|
@@ -25,11 +28,17 @@ async function getCfg(parser, code, simplifications = [], useDfg = true) {
|
|
|
25
28
|
dataflow: 'dataflow' in result ? result.dataflow : undefined
|
|
26
29
|
};
|
|
27
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Serializes the given control flow graph to a mermaid diagram.
|
|
33
|
+
*/
|
|
28
34
|
function printCfg(cfg, ast, prefix = 'flowchart BT\n', simplify = false) {
|
|
29
35
|
return `
|
|
30
36
|
${(0, doc_code_1.codeBlock)('mermaid', (0, cfg_1.cfgToMermaid)(cfg, ast, prefix, simplify))}
|
|
31
37
|
`;
|
|
32
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Generates and prints the control flow graph for the given code, along with optional metadata and the original code.
|
|
41
|
+
*/
|
|
33
42
|
async function printCfgCode(parser, code, { showCode = true, openCode = false, prefix = 'flowchart BT\n', simplifications = [], simplify = false, useDfg = true } = {}) {
|
|
34
43
|
const now = performance.now();
|
|
35
44
|
const res = await getCfg(parser, code, simplifications, useDfg);
|
|
@@ -2,7 +2,16 @@
|
|
|
2
2
|
import { scripts } from '../../cli/common/scripts-info';
|
|
3
3
|
import { flowrMainOptionDefinitions } from '../../cli/flowr-main-options';
|
|
4
4
|
type ScriptOptions<Type extends keyof typeof scripts | 'flowr'> = Type extends keyof typeof scripts ? typeof scripts[Type]['options'][number]['name'] : Type extends 'flowr' ? typeof flowrMainOptionDefinitions[number]['name'] : never;
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
5
8
|
export declare function getCliLongOptionOf<ScriptName extends keyof typeof scripts | 'flowr', OptionName extends ScriptOptions<ScriptName>>(scriptName: ScriptName, optionName: OptionName, withAlias?: boolean, quote?: boolean): string;
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
6
12
|
export declare function multipleCliOptions<ScriptName extends keyof typeof scripts | 'flowr', OptionName extends ScriptOptions<ScriptName>>(scriptName: ScriptName, ...options: OptionName[]): string;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
7
16
|
export declare function getReplCommand(commandName: string, quote?: boolean, showStar?: boolean): string;
|
|
8
17
|
export {};
|
|
@@ -10,6 +10,9 @@ const html_hover_over_1 = require("../../util/html-hover-over");
|
|
|
10
10
|
const flowr_main_options_1 = require("../../cli/flowr-main-options");
|
|
11
11
|
const repl_commands_1 = require("../../cli/repl/commands/repl-commands");
|
|
12
12
|
const doc_escape_1 = require("./doc-escape");
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
13
16
|
function getCliLongOptionOf(scriptName, optionName, withAlias = false, quote = true) {
|
|
14
17
|
const script = scriptName === 'flowr' ? flowr_main_options_1.flowrMainOptionDefinitions : scripts_info_1.scripts[scriptName].options;
|
|
15
18
|
(0, assert_1.guard)(script !== undefined, () => `Unknown script ${scriptName}, pick one of ${JSON.stringify(Object.keys(scripts_info_1.scripts))}.`);
|
|
@@ -22,9 +25,15 @@ function getCliLongOptionOf(scriptName, optionName, withAlias = false, quote = t
|
|
|
22
25
|
// span ensures split even with ligatures
|
|
23
26
|
return (0, html_hover_over_1.textWithTooltip)(`${char}-${ligatureBreaker}-${optionName}${char}`, 'Description (Command Line Argument): ' + description) + alias;
|
|
24
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
25
31
|
function multipleCliOptions(scriptName, ...options) {
|
|
26
32
|
return options.map(o => getCliLongOptionOf(scriptName, o, false, true)).join(' ');
|
|
27
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
*
|
|
36
|
+
*/
|
|
28
37
|
function getReplCommand(commandName, quote = true, showStar = false) {
|
|
29
38
|
const availableNames = (0, repl_commands_1.getReplCommands)();
|
|
30
39
|
const commands = availableNames[commandName];
|
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Produces a code block in markdown format.
|
|
3
|
+
* @example
|
|
4
|
+
* ```typescript
|
|
5
|
+
* codeBlock('ts', 'const x = 42;');
|
|
6
|
+
* // Produces:
|
|
7
|
+
* //
|
|
8
|
+
* // ```ts
|
|
9
|
+
* // const x = 42;
|
|
10
|
+
* // ```
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
1
13
|
export declare function codeBlock(language: string, code: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Produces an inline code span in markdown format.
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* codeInline('const x = 42;');
|
|
19
|
+
* // Produces: `<code>const x = 42;</code>`
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
2
22
|
export declare function codeInline(code: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* Produces a JSON code block in markdown format, with optional length limit.
|
|
25
|
+
* If the pretty-printed JSON exceeds the limit, a message is shown instead of the full JSON.
|
|
26
|
+
*/
|
|
3
27
|
export declare function jsonWithLimit(object: object, maxLength?: number, tooLongText?: string): string;
|
|
@@ -5,12 +5,36 @@ exports.codeInline = codeInline;
|
|
|
5
5
|
exports.jsonWithLimit = jsonWithLimit;
|
|
6
6
|
const json_1 = require("../../util/json");
|
|
7
7
|
const environment_1 = require("../../dataflow/environments/environment");
|
|
8
|
+
/**
|
|
9
|
+
* Produces a code block in markdown format.
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* codeBlock('ts', 'const x = 42;');
|
|
13
|
+
* // Produces:
|
|
14
|
+
* //
|
|
15
|
+
* // ```ts
|
|
16
|
+
* // const x = 42;
|
|
17
|
+
* // ```
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
8
20
|
function codeBlock(language, code) {
|
|
9
21
|
return `\n\`\`\`${language}\n${code?.trim() ?? ''}\n\`\`\`\n`;
|
|
10
22
|
}
|
|
23
|
+
/**
|
|
24
|
+
* Produces an inline code span in markdown format.
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* codeInline('const x = 42;');
|
|
28
|
+
* // Produces: `<code>const x = 42;</code>`
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
11
31
|
function codeInline(code) {
|
|
12
32
|
return `<code>${code}</code>`;
|
|
13
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Produces a JSON code block in markdown format, with optional length limit.
|
|
36
|
+
* If the pretty-printed JSON exceeds the limit, a message is shown instead of the full JSON.
|
|
37
|
+
*/
|
|
14
38
|
function jsonWithLimit(object, maxLength = 5_000, tooLongText = '_As the code is pretty long, we inhibit pretty printing and syntax highlighting (JSON, hiding built-in):_') {
|
|
15
39
|
const prettyPrinted = JSON.stringify(object, json_1.jsonReplacer, 2);
|
|
16
40
|
return `
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { DataflowGraph, UnknownSidEffect } from '../../dataflow/graph/graph';
|
|
2
2
|
import type { RShell } from '../../r-bridge/shell';
|
|
3
|
-
import type
|
|
3
|
+
import { type MermaidMarkdownMark } from '../../util/mermaid/dfg';
|
|
4
4
|
import { DEFAULT_DATAFLOW_PIPELINE } from '../../core/steps/pipeline/default-pipelines';
|
|
5
5
|
import type { PipelineOutput } from '../../core/steps/pipeline/pipeline';
|
|
6
6
|
import type { KnownParser } from '../../r-bridge/parser';
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
7
10
|
export declare function printDfGraph(graph: DataflowGraph, mark?: ReadonlySet<MermaidMarkdownMark>, simplified?: boolean): string;
|
|
8
11
|
export interface PrintDataflowGraphOptions {
|
|
9
12
|
readonly mark?: ReadonlySet<MermaidMarkdownMark>;
|
|
@@ -13,6 +16,9 @@ export interface PrintDataflowGraphOptions {
|
|
|
13
16
|
readonly switchCodeAndGraph?: boolean;
|
|
14
17
|
readonly simplified?: boolean;
|
|
15
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
16
22
|
export declare function formatSideEffect(ef: UnknownSidEffect): string;
|
|
17
23
|
export declare function printDfGraphForCode(parser: KnownParser, code: string, options: PrintDataflowGraphOptions & {
|
|
18
24
|
exposeResult: true;
|
|
@@ -16,6 +16,9 @@ const time_1 = require("../../util/text/time");
|
|
|
16
16
|
const doc_files_1 = require("./doc-files");
|
|
17
17
|
const doc_code_1 = require("./doc-code");
|
|
18
18
|
const config_1 = require("../../config");
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
19
22
|
function printDfGraph(graph, mark, simplified = false) {
|
|
20
23
|
return `
|
|
21
24
|
${(0, doc_code_1.codeBlock)('mermaid', (0, dfg_1.graphToMermaid)({
|
|
@@ -26,6 +29,9 @@ ${(0, doc_code_1.codeBlock)('mermaid', (0, dfg_1.graphToMermaid)({
|
|
|
26
29
|
}).string)}
|
|
27
30
|
`;
|
|
28
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
29
35
|
function formatSideEffect(ef) {
|
|
30
36
|
if (typeof ef === 'object') {
|
|
31
37
|
return `${ef.id} (linked)`;
|
|
@@ -34,6 +40,9 @@ function formatSideEffect(ef) {
|
|
|
34
40
|
return `${ef}`;
|
|
35
41
|
}
|
|
36
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
37
46
|
async function printDfGraphForCode(parser, code, { simplified = false, mark, showCode = true, codeOpen = false, exposeResult, switchCodeAndGraph = false } = {}) {
|
|
38
47
|
const now = performance.now();
|
|
39
48
|
const result = await (0, default_pipelines_1.createDataflowPipeline)(parser, {
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.printEnvironmentToMarkdown = printEnvironmentToMarkdown;
|
|
4
4
|
const dfg_1 = require("../../util/mermaid/dfg");
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
5
8
|
function printEnvironmentToMarkdown(env) {
|
|
6
9
|
if (env === undefined) {
|
|
7
10
|
return '?? (error)';
|