@eagleoutice/flowr 2.6.1 → 2.6.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +131 -30
- package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
- package/abstract-interpretation/data-frame/absint-visitor.d.ts +2 -3
- package/abstract-interpretation/data-frame/absint-visitor.js +15 -10
- package/abstract-interpretation/data-frame/dataframe-domain.d.ts +18 -12
- package/abstract-interpretation/data-frame/dataframe-domain.js +25 -13
- package/abstract-interpretation/data-frame/mappers/access-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/access-mapper.js +0 -1
- package/abstract-interpretation/data-frame/mappers/arguments.d.ts +1 -10
- package/abstract-interpretation/data-frame/mappers/arguments.js +0 -7
- package/abstract-interpretation/data-frame/mappers/assignment-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/assignment-mapper.js +0 -1
- package/abstract-interpretation/data-frame/mappers/function-mapper.d.ts +4 -5
- package/abstract-interpretation/data-frame/mappers/function-mapper.js +3 -4
- package/abstract-interpretation/data-frame/mappers/replacement-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/replacement-mapper.js +0 -1
- package/abstract-interpretation/data-frame/resolve-args.d.ts +1 -1
- package/abstract-interpretation/data-frame/semantics.d.ts +3 -4
- package/abstract-interpretation/data-frame/semantics.js +171 -162
- package/abstract-interpretation/data-frame/shape-inference.d.ts +1 -4
- package/abstract-interpretation/data-frame/shape-inference.js +7 -9
- package/abstract-interpretation/domains/abstract-domain.d.ts +59 -18
- package/abstract-interpretation/domains/abstract-domain.js +74 -1
- package/abstract-interpretation/domains/bounded-set-domain.d.ts +37 -24
- package/abstract-interpretation/domains/bounded-set-domain.js +70 -47
- package/abstract-interpretation/domains/interval-domain.d.ts +33 -25
- package/abstract-interpretation/domains/interval-domain.js +109 -50
- package/abstract-interpretation/domains/lattice.d.ts +19 -11
- package/abstract-interpretation/domains/mapped-abstract-domain.d.ts +34 -0
- package/abstract-interpretation/domains/mapped-abstract-domain.js +189 -0
- package/abstract-interpretation/domains/positive-interval-domain.d.ts +16 -12
- package/abstract-interpretation/domains/positive-interval-domain.js +20 -11
- package/abstract-interpretation/domains/product-domain.d.ts +18 -23
- package/abstract-interpretation/domains/product-domain.js +11 -19
- package/abstract-interpretation/domains/satisfiable-domain.d.ts +29 -0
- package/abstract-interpretation/domains/satisfiable-domain.js +24 -0
- package/abstract-interpretation/domains/set-upper-bound-domain.d.ts +54 -0
- package/abstract-interpretation/domains/set-upper-bound-domain.js +197 -0
- package/abstract-interpretation/domains/singleton-domain.d.ts +24 -19
- package/abstract-interpretation/domains/singleton-domain.js +52 -37
- package/abstract-interpretation/domains/state-abstract-domain.d.ts +8 -24
- package/abstract-interpretation/domains/state-abstract-domain.js +2 -167
- package/abstract-interpretation/normalized-ast-fold.d.ts +1 -7
- package/abstract-interpretation/normalized-ast-fold.js +0 -5
- package/benchmark/slicer.d.ts +3 -7
- package/benchmark/slicer.js +14 -19
- package/benchmark/stats/print.d.ts +6 -0
- package/benchmark/stats/print.js +6 -0
- package/benchmark/stats/size-of.d.ts +0 -1
- package/benchmark/stats/size-of.js +0 -1
- package/benchmark/stats/stats.d.ts +2 -2
- package/benchmark/stopwatch.d.ts +11 -13
- package/benchmark/stopwatch.js +11 -13
- package/benchmark/summarizer/first-phase/input.d.ts +6 -0
- package/benchmark/summarizer/first-phase/input.js +6 -0
- package/benchmark/summarizer/first-phase/process.d.ts +13 -1
- package/benchmark/summarizer/first-phase/process.js +12 -0
- package/benchmark/summarizer/second-phase/graph.d.ts +3 -0
- package/benchmark/summarizer/second-phase/graph.js +3 -0
- package/benchmark/summarizer/second-phase/process.d.ts +12 -0
- package/benchmark/summarizer/second-phase/process.js +12 -0
- package/benchmark/summarizer/summarizer.d.ts +1 -2
- package/cli/benchmark-app.js +0 -2
- package/cli/common/features.d.ts +7 -1
- package/cli/common/features.js +6 -0
- package/cli/common/script.d.ts +3 -1
- package/cli/common/script.js +3 -1
- package/cli/common/scripts-info.d.ts +3 -1
- package/cli/common/scripts-info.js +3 -0
- package/cli/flowr-main-options.d.ts +3 -0
- package/cli/flowr-main-options.js +3 -0
- package/cli/repl/commands/repl-commands.d.ts +13 -0
- package/cli/repl/commands/repl-commands.js +13 -2
- package/cli/repl/commands/repl-execute.d.ts +4 -0
- package/cli/repl/commands/repl-execute.js +6 -2
- package/cli/repl/commands/repl-main.d.ts +15 -9
- package/cli/repl/commands/repl-parse.js +2 -2
- package/cli/repl/commands/repl-query.js +16 -5
- package/cli/repl/core.d.ts +24 -6
- package/cli/repl/core.js +28 -19
- package/cli/repl/execute.d.ts +0 -2
- package/cli/repl/execute.js +0 -2
- package/cli/repl/parser/slice-query-parser.d.ts +14 -0
- package/cli/repl/parser/slice-query-parser.js +34 -0
- package/cli/repl/print-version.d.ts +6 -0
- package/cli/repl/print-version.js +6 -0
- package/cli/repl/server/compact.d.ts +8 -0
- package/cli/repl/server/compact.js +8 -0
- package/cli/repl/server/connection.d.ts +4 -3
- package/cli/repl/server/connection.js +3 -31
- package/cli/repl/server/messages/all-messages.d.ts +1 -3
- package/cli/repl/server/messages/all-messages.js +0 -1
- package/cli/repl/server/messages/message-analysis.d.ts +0 -2
- package/cli/repl/server/messages/message-query.d.ts +1 -1
- package/cli/repl/server/messages/message-repl.d.ts +0 -1
- package/cli/repl/server/send.d.ts +6 -0
- package/cli/repl/server/send.js +6 -0
- package/cli/repl/server/server.d.ts +1 -1
- package/cli/repl/server/validate.d.ts +10 -1
- package/cli/repl/server/validate.js +9 -0
- package/cli/run-script.d.ts +1 -2
- package/cli/run-script.js +0 -1
- package/cli/script-core/statistics-core.d.ts +3 -0
- package/cli/script-core/statistics-core.js +3 -0
- package/cli/script-core/statistics-helper-core.d.ts +4 -1
- package/cli/script-core/statistics-helper-core.js +3 -0
- package/cli/script-core/summarizer-core.d.ts +3 -0
- package/cli/script-core/summarizer-core.js +3 -0
- package/cli/summarizer-app.d.ts +2 -3
- package/cli/summarizer-app.js +2 -3
- package/config.d.ts +17 -3
- package/config.js +15 -0
- package/control-flow/basic-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/basic-cfg-guided-visitor.js +0 -1
- package/control-flow/cfg-to-basic-blocks.d.ts +1 -1
- package/control-flow/control-flow-graph.d.ts +20 -12
- package/control-flow/control-flow-graph.js +16 -4
- package/control-flow/dfg-cfg-guided-visitor.d.ts +2 -3
- package/control-flow/diff-cfg.d.ts +3 -5
- package/control-flow/diff-cfg.js +0 -1
- package/control-flow/extract-cfg.d.ts +3 -6
- package/control-flow/extract-cfg.js +0 -3
- package/control-flow/happens-before.d.ts +1 -1
- package/control-flow/semantic-cfg-guided-visitor.d.ts +2 -31
- package/control-flow/semantic-cfg-guided-visitor.js +0 -28
- package/control-flow/simple-visitor.d.ts +1 -3
- package/control-flow/simple-visitor.js +0 -2
- package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/useless-loop.d.ts +0 -3
- package/control-flow/useless-loop.js +2 -5
- package/core/pipeline-executor.d.ts +8 -16
- package/core/pipeline-executor.js +9 -18
- package/core/print/dataflow-printer.d.ts +19 -0
- package/core/print/dataflow-printer.js +19 -0
- package/core/print/normalize-printer.d.ts +21 -1
- package/core/print/normalize-printer.js +20 -0
- package/core/print/parse-printer.d.ts +6 -1
- package/core/print/parse-printer.js +5 -0
- package/core/print/print.d.ts +0 -1
- package/core/print/print.js +0 -1
- package/core/print/slice-diff-ansi.d.ts +3 -0
- package/core/print/slice-diff-ansi.js +3 -0
- package/core/steps/all/core/00-parse.d.ts +1 -1
- package/core/steps/all/core/01-parse-tree-sitter.d.ts +1 -11
- package/core/steps/all/core/10-normalize.d.ts +3 -0
- package/core/steps/all/core/10-normalize.js +3 -0
- package/core/steps/all/core/11-normalize-tree-sitter.d.ts +4 -3
- package/core/steps/pipeline/create-pipeline.d.ts +1 -1
- package/core/steps/pipeline/default-pipelines.d.ts +47 -47
- package/core/steps/pipeline/default-pipelines.js +0 -4
- package/core/steps/pipeline/pipeline.d.ts +1 -8
- package/core/steps/pipeline/pipeline.js +1 -3
- package/core/steps/pipeline-step.d.ts +0 -1
- package/core/steps/pipeline-step.js +0 -1
- package/dataflow/cluster.d.ts +3 -0
- package/dataflow/cluster.js +3 -0
- package/dataflow/environments/append.d.ts +1 -1
- package/dataflow/environments/built-in-config.d.ts +1 -5
- package/dataflow/environments/built-in-config.js +0 -1
- package/dataflow/environments/built-in.d.ts +10 -5
- package/dataflow/environments/built-in.js +6 -1
- package/dataflow/environments/clone.d.ts +1 -1
- package/dataflow/environments/default-builtin-config.d.ts +3 -0
- package/dataflow/environments/default-builtin-config.js +4 -1
- package/dataflow/environments/diff.d.ts +11 -2
- package/dataflow/environments/diff.js +9 -0
- package/dataflow/environments/environment.d.ts +3 -3
- package/dataflow/environments/environment.js +8 -6
- package/dataflow/environments/identifier.d.ts +0 -4
- package/dataflow/environments/identifier.js +0 -1
- package/dataflow/environments/overwrite.d.ts +4 -1
- package/dataflow/environments/overwrite.js +3 -0
- package/dataflow/environments/resolve-by-name.d.ts +4 -4
- package/dataflow/environments/resolve-by-name.js +3 -2
- package/dataflow/environments/scoping.d.ts +4 -1
- package/dataflow/environments/scoping.js +3 -0
- package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
- package/dataflow/eval/resolve/alias-tracking.js +11 -14
- package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
- package/dataflow/eval/resolve/resolve.d.ts +1 -7
- package/dataflow/eval/resolve/resolve.js +0 -5
- package/dataflow/eval/values/general.d.ts +1 -3
- package/dataflow/eval/values/general.js +0 -1
- package/dataflow/eval/values/intervals/interval-constants.d.ts +7 -1
- package/dataflow/eval/values/intervals/interval-constants.js +6 -0
- package/dataflow/eval/values/logical/logical-constants.d.ts +4 -1
- package/dataflow/eval/values/logical/logical-constants.js +3 -0
- package/dataflow/eval/values/r-value.d.ts +12 -0
- package/dataflow/eval/values/r-value.js +12 -0
- package/dataflow/eval/values/scalar/scalar-consatnts.d.ts +7 -1
- package/dataflow/eval/values/scalar/scalar-consatnts.js +6 -0
- package/dataflow/eval/values/sets/set-constants.d.ts +7 -2
- package/dataflow/eval/values/sets/set-constants.js +6 -0
- package/dataflow/eval/values/string/string-constants.d.ts +10 -1
- package/dataflow/eval/values/string/string-constants.js +9 -0
- package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
- package/dataflow/extractor.d.ts +1 -1
- package/dataflow/graph/dataflowgraph-builder.d.ts +20 -38
- package/dataflow/graph/dataflowgraph-builder.js +6 -23
- package/dataflow/graph/diff-dataflow-graph.d.ts +16 -6
- package/dataflow/graph/diff-dataflow-graph.js +12 -1
- package/dataflow/graph/edge.d.ts +9 -0
- package/dataflow/graph/edge.js +9 -0
- package/dataflow/graph/graph.d.ts +6 -19
- package/dataflow/graph/graph.js +4 -15
- package/dataflow/graph/invert-dfg.d.ts +3 -0
- package/dataflow/graph/invert-dfg.js +3 -0
- package/dataflow/graph/quads.d.ts +1 -1
- package/dataflow/graph/unknown-replacement.d.ts +6 -0
- package/dataflow/graph/unknown-replacement.js +6 -0
- package/dataflow/graph/unknown-side-effect.d.ts +8 -0
- package/dataflow/graph/unknown-side-effect.js +8 -0
- package/dataflow/graph/vertex.d.ts +9 -9
- package/dataflow/graph/vertex.js +9 -1
- package/dataflow/info.d.ts +9 -10
- package/dataflow/info.js +6 -1
- package/dataflow/internal/linker.d.ts +25 -9
- package/dataflow/internal/linker.js +23 -7
- package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
- package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -0
- package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-access.js +3 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-apply.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +2 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +10 -4
- package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +6 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-get.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +4 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-library.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-list.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +3 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-rm.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +23 -6
- package/dataflow/internal/process/functions/call/built-in/built-in-source.js +20 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-vector.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +3 -0
- package/dataflow/internal/process/functions/call/common.d.ts +11 -5
- package/dataflow/internal/process/functions/call/common.js +6 -0
- package/dataflow/internal/process/functions/call/default-call-handling.d.ts +3 -0
- package/dataflow/internal/process/functions/call/default-call-handling.js +3 -0
- package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
- package/dataflow/internal/process/functions/call/known-call-handling.js +7 -0
- package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
- package/dataflow/internal/process/functions/call/named-call-handling.js +6 -0
- package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +4 -1
- package/dataflow/internal/process/functions/call/unnamed-call-handling.js +3 -0
- package/dataflow/internal/process/functions/process-argument.d.ts +8 -2
- package/dataflow/internal/process/functions/process-argument.js +6 -0
- package/dataflow/internal/process/functions/process-parameter.d.ts +5 -2
- package/dataflow/internal/process/functions/process-parameter.js +3 -0
- package/dataflow/internal/process/process-symbol.d.ts +3 -0
- package/dataflow/internal/process/process-symbol.js +3 -0
- package/dataflow/internal/process/process-uninteresting-leaf.d.ts +3 -0
- package/dataflow/internal/process/process-uninteresting-leaf.js +3 -0
- package/dataflow/internal/process/process-value.d.ts +3 -0
- package/dataflow/internal/process/process-value.js +3 -0
- package/dataflow/origin/dfg-get-origin.d.ts +0 -2
- package/dataflow/origin/dfg-get-symbol-refs.d.ts +5 -7
- package/dataflow/origin/dfg-get-symbol-refs.js +6 -8
- package/dataflow/processor.d.ts +0 -1
- package/dataflow/processor.js +0 -1
- package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -0
- package/documentation/data/dfg/doc-data-dfg-util.js +6 -0
- package/documentation/data/faq/faqs.d.ts +5 -0
- package/documentation/data/faq/faqs.js +78 -0
- package/documentation/data/faq/wiki-faq-store.d.ts +18 -0
- package/documentation/data/faq/wiki-faq-store.js +75 -0
- package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
- package/documentation/data/server/doc-data-server-messages.js +4 -63
- package/documentation/doc-util/doc-auto-gen.d.ts +6 -0
- package/documentation/doc-util/doc-auto-gen.js +6 -0
- package/documentation/doc-util/doc-benchmarks.d.ts +12 -0
- package/documentation/doc-util/doc-benchmarks.js +12 -0
- package/documentation/doc-util/doc-cfg.d.ts +7 -1
- package/documentation/doc-util/doc-cfg.js +9 -0
- package/documentation/doc-util/doc-cli-option.d.ts +9 -0
- package/documentation/doc-util/doc-cli-option.js +9 -0
- package/documentation/doc-util/doc-code.d.ts +24 -0
- package/documentation/doc-util/doc-code.js +24 -0
- package/documentation/doc-util/doc-dfg.d.ts +7 -1
- package/documentation/doc-util/doc-dfg.js +9 -0
- package/documentation/doc-util/doc-env.d.ts +3 -0
- package/documentation/doc-util/doc-env.js +3 -0
- package/documentation/doc-util/doc-escape.d.ts +0 -1
- package/documentation/doc-util/doc-escape.js +0 -1
- package/documentation/doc-util/doc-files.d.ts +11 -0
- package/documentation/doc-util/doc-files.js +15 -4
- package/documentation/doc-util/doc-general.d.ts +6 -0
- package/documentation/doc-util/doc-general.js +6 -0
- package/documentation/doc-util/doc-normalized-ast.d.ts +7 -1
- package/documentation/doc-util/doc-normalized-ast.js +6 -0
- package/documentation/doc-util/doc-query.d.ts +15 -0
- package/documentation/doc-util/doc-query.js +17 -2
- package/documentation/doc-util/doc-repl.d.ts +6 -0
- package/documentation/doc-util/doc-repl.js +6 -0
- package/documentation/doc-util/doc-search.d.ts +15 -0
- package/documentation/doc-util/doc-search.js +17 -2
- package/documentation/doc-util/doc-server-message.d.ts +13 -1
- package/documentation/doc-util/doc-server-message.js +13 -1
- package/documentation/doc-util/doc-structure.d.ts +9 -0
- package/documentation/doc-util/doc-structure.js +10 -1
- package/documentation/doc-util/doc-types.d.ts +42 -0
- package/documentation/doc-util/doc-types.js +42 -0
- package/documentation/print-analyzer-wiki.js +4 -0
- package/documentation/print-core-wiki.d.ts +3 -0
- package/documentation/print-core-wiki.js +5 -2
- package/documentation/print-dataflow-graph-wiki.js +5 -5
- package/documentation/print-faq-wiki.js +3 -75
- package/documentation/print-interface-wiki.js +1 -1
- package/documentation/print-onboarding-wiki.js +1 -1
- package/documentation/print-query-wiki.js +4 -34
- package/documentation/print-readme.js +105 -0
- package/engines.d.ts +1 -1
- package/linter/linter-executor.d.ts +6 -3
- package/linter/linter-executor.js +3 -0
- package/linter/linter-format.d.ts +8 -0
- package/linter/linter-format.js +8 -0
- package/linter/rules/absolute-path.d.ts +3 -4
- package/linter/rules/dataframe-access-validation.d.ts +3 -4
- package/linter/rules/dataframe-access-validation.js +9 -11
- package/linter/rules/dead-code.d.ts +1 -1
- package/linter/rules/deprecated-functions.d.ts +1 -1
- package/linter/rules/file-path-validity.d.ts +1 -2
- package/linter/rules/function-finder-util.d.ts +1 -2
- package/linter/rules/naming-convention.d.ts +13 -2
- package/linter/rules/naming-convention.js +13 -1
- package/linter/rules/network-functions.d.ts +1 -1
- package/linter/rules/seeded-randomness.d.ts +1 -2
- package/linter/rules/unused-definition.d.ts +2 -3
- package/linter/rules/useless-loop.d.ts +1 -2
- package/package.json +2 -2
- package/project/cache/flowr-analyzer-cache.d.ts +2 -9
- package/project/cache/flowr-analyzer-cache.js +0 -6
- package/project/context/flowr-analyzer-context.d.ts +3 -6
- package/project/context/flowr-analyzer-dependencies-context.d.ts +0 -1
- package/project/context/flowr-analyzer-files-context.d.ts +2 -4
- package/project/context/flowr-file.d.ts +0 -1
- package/project/flowr-analyzer-builder.d.ts +1 -3
- package/project/flowr-analyzer-builder.js +5 -6
- package/project/flowr-analyzer.d.ts +34 -25
- package/project/flowr-analyzer.js +10 -11
- package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +1 -1
- package/project/plugins/file-plugins/flowr-description-file.d.ts +1 -3
- package/project/plugins/file-plugins/flowr-description-file.js +0 -1
- package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
- package/queries/base-query-format.d.ts +2 -2
- package/queries/catalog/call-context-query/call-context-query-executor.d.ts +3 -0
- package/queries/catalog/call-context-query/call-context-query-executor.js +3 -0
- package/queries/catalog/call-context-query/call-context-query-format.d.ts +3 -3
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +11 -2
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +9 -0
- package/queries/catalog/cluster-query/cluster-query-executor.d.ts +3 -0
- package/queries/catalog/cluster-query/cluster-query-executor.js +3 -0
- package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
- package/queries/catalog/config-query/config-query-executor.d.ts +3 -0
- package/queries/catalog/config-query/config-query-executor.js +3 -0
- package/queries/catalog/config-query/config-query-format.d.ts +5 -2
- package/queries/catalog/config-query/config-query-format.js +13 -16
- package/queries/catalog/control-flow-query/control-flow-query-executor.d.ts +3 -0
- package/queries/catalog/control-flow-query/control-flow-query-executor.js +3 -0
- package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +3 -3
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.d.ts +3 -0
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +3 -0
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
- package/queries/catalog/dataflow-query/dataflow-query-executor.d.ts +3 -0
- package/queries/catalog/dataflow-query/dataflow-query-executor.js +3 -0
- package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
- package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +4 -1
- package/queries/catalog/dependencies-query/dependencies-query-executor.js +7 -4
- package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +4 -1
- package/queries/catalog/dependencies-query/dependencies-query-format.js +4 -1
- package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +4 -1
- package/queries/catalog/df-shape-query/df-shape-query-executor.js +8 -4
- package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +10 -3
- package/queries/catalog/df-shape-query/df-shape-query-format.js +24 -5
- package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +3 -0
- package/queries/catalog/happens-before-query/happens-before-query-executor.js +3 -0
- package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
- package/queries/catalog/id-map-query/id-map-query-executor.d.ts +3 -0
- package/queries/catalog/id-map-query/id-map-query-executor.js +3 -0
- package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +3 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +3 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +2 -2
- package/queries/catalog/linter-query/linter-query-executor.d.ts +4 -0
- package/queries/catalog/linter-query/linter-query-executor.js +4 -0
- package/queries/catalog/linter-query/linter-query-format.d.ts +12 -3
- package/queries/catalog/linter-query/linter-query-format.js +67 -0
- package/queries/catalog/location-map-query/location-map-query-executor.d.ts +4 -0
- package/queries/catalog/location-map-query/location-map-query-executor.js +5 -1
- package/queries/catalog/location-map-query/location-map-query-format.d.ts +7 -1
- package/queries/catalog/location-map-query/location-map-query-format.js +12 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.d.ts +3 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.js +3 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
- package/queries/catalog/origin-query/origin-query-executor.d.ts +7 -1
- package/queries/catalog/origin-query/origin-query-executor.js +6 -0
- package/queries/catalog/origin-query/origin-query-format.d.ts +7 -1
- package/queries/catalog/origin-query/origin-query-format.js +17 -1
- package/queries/catalog/project-query/project-query-executor.d.ts +3 -0
- package/queries/catalog/project-query/project-query-executor.js +3 -0
- package/queries/catalog/project-query/project-query-format.d.ts +1 -1
- package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +6 -0
- package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +6 -0
- package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +7 -1
- package/queries/catalog/resolve-value-query/resolve-value-query-format.js +19 -1
- package/queries/catalog/search-query/search-query-executor.d.ts +3 -0
- package/queries/catalog/search-query/search-query-executor.js +3 -0
- package/queries/catalog/search-query/search-query-format.d.ts +1 -1
- package/queries/catalog/static-slice-query/static-slice-query-executor.d.ts +9 -0
- package/queries/catalog/static-slice-query/static-slice-query-executor.js +9 -0
- package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +7 -1
- package/queries/catalog/static-slice-query/static-slice-query-format.js +17 -0
- package/queries/query-print.d.ts +20 -4
- package/queries/query-print.js +18 -2
- package/queries/query.d.ts +85 -55
- package/queries/query.js +35 -23
- package/queries/virtual-query/virtual-queries.d.ts +1 -2
- package/r-bridge/data/get.d.ts +6 -0
- package/r-bridge/data/get.js +6 -0
- package/r-bridge/lang-4.x/ast/model/collect.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/collect.js +0 -1
- package/r-bridge/lang-4.x/ast/model/model.d.ts +8 -11
- package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +3 -0
- package/r-bridge/lang-4.x/ast/model/operators.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +6 -7
- package/r-bridge/lang-4.x/ast/model/processing/decorate.js +6 -6
- package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/node-id.js +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +1 -2
- package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/visitor.js +0 -1
- package/r-bridge/lang-4.x/ast/model/type.d.ts +4 -5
- package/r-bridge/lang-4.x/ast/model/type.js +4 -5
- package/r-bridge/lang-4.x/ast/model/versions.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/versions.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +4 -5
- package/r-bridge/lang-4.x/ast/parser/json/parser.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/control/normalize-if-then.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.d.ts +1 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.d.ts +4 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.d.ts +4 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-binary.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.d.ts +9 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.js +9 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.d.ts +1 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.d.ts +1 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.d.ts +14 -5
- package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.js +13 -6
- package/r-bridge/lang-4.x/convert-values.d.ts +12 -1
- package/r-bridge/lang-4.x/convert-values.js +12 -1
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +7 -2
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +17 -0
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +13 -1
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +48 -19
- package/r-bridge/parser.d.ts +28 -7
- package/r-bridge/retriever.d.ts +16 -1
- package/r-bridge/retriever.js +15 -0
- package/r-bridge/shell-executor.d.ts +3 -3
- package/r-bridge/shell-executor.js +6 -1
- package/r-bridge/shell.d.ts +24 -23
- package/r-bridge/shell.js +37 -31
- package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -1
- package/reconstruct/auto-select/magic-comments.d.ts +1 -2
- package/reconstruct/auto-select/magic-comments.js +1 -2
- package/reconstruct/reconstruct.d.ts +1 -3
- package/reconstruct/reconstruct.js +0 -2
- package/search/flowr-search-builder.d.ts +12 -5
- package/search/flowr-search-builder.js +7 -2
- package/search/flowr-search-executor.d.ts +3 -3
- package/search/flowr-search-filters.d.ts +14 -1
- package/search/flowr-search-filters.js +13 -0
- package/search/flowr-search-printer.d.ts +6 -0
- package/search/flowr-search-printer.js +6 -0
- package/search/flowr-search-traverse.d.ts +1 -1
- package/search/flowr-search.d.ts +3 -3
- package/search/search-executor/search-enrichers.d.ts +9 -6
- package/search/search-executor/search-enrichers.js +3 -0
- package/search/search-executor/search-generators.d.ts +19 -10
- package/search/search-executor/search-generators.js +49 -2
- package/search/search-executor/search-mappers.d.ts +8 -5
- package/search/search-executor/search-mappers.js +3 -0
- package/search/search-executor/search-transformer.d.ts +19 -16
- package/search/search-executor/search-transformer.js +3 -0
- package/slicing/criterion/collect-all.d.ts +10 -10
- package/slicing/criterion/parse.d.ts +4 -2
- package/slicing/criterion/parse.js +4 -2
- package/slicing/static/fingerprint.d.ts +9 -1
- package/slicing/static/fingerprint.js +8 -0
- package/slicing/static/slice-call.d.ts +2 -2
- package/slicing/static/static-slicer.d.ts +8 -4
- package/slicing/static/static-slicer.js +5 -1
- package/slicing/static/visiting-queue.d.ts +1 -1
- package/statistics/features/common-syntax-probability.d.ts +10 -1
- package/statistics/features/common-syntax-probability.js +9 -0
- package/statistics/features/feature.d.ts +0 -4
- package/statistics/features/feature.js +0 -1
- package/statistics/features/post-processing.d.ts +6 -0
- package/statistics/features/post-processing.js +6 -0
- package/statistics/features/supported/assignments/post-process.d.ts +3 -0
- package/statistics/features/supported/assignments/post-process.js +3 -0
- package/statistics/features/supported/comments/post-process.d.ts +3 -0
- package/statistics/features/supported/comments/post-process.js +3 -0
- package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
- package/statistics/features/supported/control-flow/post-process.js +3 -0
- package/statistics/features/supported/data-access/data-access.d.ts +1 -1
- package/statistics/features/supported/data-access/post-process.d.ts +3 -0
- package/statistics/features/supported/data-access/post-process.js +3 -0
- package/statistics/features/supported/defined-functions/defined-functions.d.ts +1 -1
- package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
- package/statistics/features/supported/expression-list/post-process.js +3 -0
- package/statistics/features/supported/loops/post-process.d.ts +3 -0
- package/statistics/features/supported/loops/post-process.js +3 -0
- package/statistics/features/supported/used-functions/used-functions.d.ts +1 -1
- package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
- package/statistics/features/supported/used-packages/post-process.js +3 -0
- package/statistics/features/supported/values/post-process.d.ts +3 -0
- package/statistics/features/supported/values/post-process.js +3 -0
- package/statistics/features/supported/variables/post-process.d.ts +7 -1
- package/statistics/features/supported/variables/post-process.js +6 -0
- package/statistics/meta-statistics.d.ts +8 -9
- package/statistics/output/file-provider.d.ts +5 -6
- package/statistics/output/file-provider.js +5 -6
- package/statistics/output/print-stats.d.ts +13 -1
- package/statistics/output/print-stats.js +12 -0
- package/statistics/output/statistics-file.d.ts +1 -2
- package/statistics/output/statistics-file.js +0 -1
- package/statistics/statistics.d.ts +3 -4
- package/statistics/statistics.js +1 -2
- package/statistics/summarizer/auto-detect.d.ts +3 -0
- package/statistics/summarizer/auto-detect.js +3 -0
- package/statistics/summarizer/post-process/clusterer.d.ts +3 -4
- package/statistics/summarizer/post-process/clusterer.js +0 -2
- package/statistics/summarizer/post-process/file-based-count.d.ts +0 -1
- package/statistics/summarizer/post-process/file-based-count.js +0 -1
- package/statistics/summarizer/post-process/histogram.d.ts +0 -2
- package/statistics/summarizer/post-process/histogram.js +0 -2
- package/statistics/summarizer/post-process/post-process-output.d.ts +2 -4
- package/statistics/summarizer/post-process/post-process-output.js +0 -3
- package/statistics/summarizer/second-phase/process.d.ts +5 -3
- package/statistics/summarizer/second-phase/process.js +3 -1
- package/statistics/summarizer/summarizer.d.ts +1 -2
- package/util/assert.d.ts +52 -2
- package/util/assert.js +52 -2
- package/util/collections/arrays.d.ts +10 -5
- package/util/collections/arrays.js +10 -5
- package/util/collections/defaultmap.d.ts +11 -11
- package/util/collections/defaultmap.js +11 -11
- package/util/containers.d.ts +2 -7
- package/util/containers.js +0 -5
- package/util/diff-graph.d.ts +0 -1
- package/util/diff-graph.js +0 -1
- package/util/diff.d.ts +3 -1
- package/util/diff.js +3 -1
- package/util/files.d.ts +11 -11
- package/util/files.js +10 -10
- package/util/formats/adapter.d.ts +9 -0
- package/util/formats/adapter.js +9 -0
- package/util/formats/adapters/rmd-adapter.d.ts +10 -1
- package/util/formats/adapters/rmd-adapter.js +10 -1
- package/util/html-hover-over.d.ts +5 -0
- package/util/html-hover-over.js +5 -0
- package/util/json.d.ts +13 -0
- package/util/json.js +13 -0
- package/util/log.d.ts +2 -2
- package/util/log.js +2 -2
- package/util/mermaid/ast.d.ts +3 -0
- package/util/mermaid/ast.js +3 -0
- package/util/mermaid/cfg.d.ts +1 -1
- package/util/mermaid/dfg.d.ts +12 -4
- package/util/mermaid/dfg.js +9 -1
- package/util/mermaid/mermaid.d.ts +6 -1
- package/util/mermaid/mermaid.js +6 -1
- package/util/numbers.d.ts +7 -0
- package/util/numbers.js +7 -0
- package/util/objects.d.ts +0 -2
- package/util/os.d.ts +3 -0
- package/util/os.js +3 -0
- package/util/parallel.d.ts +4 -4
- package/util/parallel.js +4 -4
- package/util/prefix.d.ts +0 -1
- package/util/prefix.js +0 -1
- package/util/quads.d.ts +14 -17
- package/util/quads.js +3 -5
- package/util/r-value.d.ts +10 -1
- package/util/r-value.js +21 -0
- package/util/random.d.ts +3 -0
- package/util/random.js +3 -0
- package/util/range.d.ts +9 -3
- package/util/range.js +15 -2
- package/util/schema.d.ts +14 -1
- package/util/schema.js +15 -2
- package/util/simple-df/dfg-view.d.ts +4 -1
- package/util/simple-df/dfg-view.js +4 -1
- package/util/summarizer.d.ts +9 -1
- package/util/summarizer.js +9 -0
- package/util/text/ansi.d.ts +3 -0
- package/util/text/ansi.js +3 -0
- package/util/text/args.d.ts +2 -4
- package/util/text/args.js +7 -5
- package/util/text/text.d.ts +4 -0
- package/util/text/text.js +4 -0
- package/util/text/time.d.ts +0 -1
- package/util/text/time.js +0 -1
- package/util/version.d.ts +12 -3
- package/util/version.js +12 -3
- package/abstract-interpretation/data-frame/domain.d.ts +0 -107
- package/abstract-interpretation/data-frame/domain.js +0 -315
- package/abstract-interpretation/domains/set-bounded-set-domain.d.ts +0 -43
- package/abstract-interpretation/domains/set-bounded-set-domain.js +0 -164
- package/cli/repl/commands/repl-lineage.d.ts +0 -15
- package/cli/repl/commands/repl-lineage.js +0 -66
- package/cli/repl/server/messages/message-lineage.d.ts +0 -17
- package/cli/repl/server/messages/message-lineage.js +0 -25
- package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
- package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
|
@@ -12,9 +12,15 @@ const doc_code_1 = require("./doc-code");
|
|
|
12
12
|
const assert_1 = require("../../util/assert");
|
|
13
13
|
const time_1 = require("../../util/text/time");
|
|
14
14
|
const messages = [];
|
|
15
|
+
/**
|
|
16
|
+
* Documents a server message for later printing.
|
|
17
|
+
*/
|
|
15
18
|
function documentServerMessage(description) {
|
|
16
19
|
messages.push(description);
|
|
17
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
* Visualizes all documented server messages in markdown format.
|
|
23
|
+
*/
|
|
18
24
|
async function printServerMessages(shell) {
|
|
19
25
|
let text = '<ul>';
|
|
20
26
|
for (const message of messages) {
|
|
@@ -22,6 +28,9 @@ async function printServerMessages(shell) {
|
|
|
22
28
|
}
|
|
23
29
|
return text + '</ul>';
|
|
24
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Executes the given function within a server context.
|
|
33
|
+
*/
|
|
25
34
|
async function inServerContext(shell, fn) {
|
|
26
35
|
return (0, net_1.withSocket)(shell, async (socket, server) => {
|
|
27
36
|
return fn(socket, server);
|
|
@@ -69,6 +78,9 @@ function explainPingPong(description, received) {
|
|
|
69
78
|
}
|
|
70
79
|
return result + '</ol>';
|
|
71
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Documents a ping-pong message exchange with the server.
|
|
83
|
+
*/
|
|
72
84
|
async function documentServerMessageResponse({ shell, title, messageType, messages }) {
|
|
73
85
|
const start = performance.now();
|
|
74
86
|
const response = await inServerContext(shell, async (socket) => {
|
|
@@ -145,7 +157,7 @@ ${additionalDefs?.map(def => getSchema(definitionPath, def)).join('\n') ?? ''}
|
|
|
145
157
|
|
|
146
158
|
<hr>
|
|
147
159
|
|
|
148
|
-
</details>
|
|
160
|
+
</details>
|
|
149
161
|
`;
|
|
150
162
|
}
|
|
151
163
|
//# sourceMappingURL=doc-server-message.js.map
|
|
@@ -4,12 +4,21 @@ export interface DetailsOptions {
|
|
|
4
4
|
readonly hideIfEmpty?: boolean;
|
|
5
5
|
readonly prefixInit?: string;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
7
10
|
export declare function details(title: string, content: string, { color, open, hideIfEmpty, prefixInit }?: DetailsOptions): string;
|
|
8
11
|
export interface BlockOptions {
|
|
9
12
|
readonly type: 'NOTE' | 'WARNING' | 'TIP' | 'IMPORTANT';
|
|
10
13
|
readonly content: string;
|
|
11
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
12
18
|
export declare function block({ type, content }: BlockOptions): string;
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
13
22
|
export declare function section(title: string, depth?: 1 | 2 | 3 | 4 | 5 | 6, anchor?: string): string;
|
|
14
23
|
/**
|
|
15
24
|
* Supported pattern: `Name@link`
|
|
@@ -7,21 +7,30 @@ exports.collapsibleToc = collapsibleToc;
|
|
|
7
7
|
const doc_general_1 = require("./doc-general");
|
|
8
8
|
const mermaid_1 = require("../../util/mermaid/mermaid");
|
|
9
9
|
const strings_1 = require("../../util/text/strings");
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
10
13
|
function details(title, content, { color, open = false, hideIfEmpty = true, prefixInit = '' } = {}) {
|
|
11
14
|
return hideIfEmpty && content.trim().length === 0 ? '' : `
|
|
12
|
-
${prefixInit}<details${open ? ' open' : ''}><summary
|
|
15
|
+
${prefixInit}<details${open ? ' open' : ''}><summary${color ? ' style="color:' + color + '"' : ''}>${title}</summary>
|
|
13
16
|
|
|
14
17
|
${content}
|
|
15
18
|
|
|
16
19
|
</details>
|
|
17
20
|
`;
|
|
18
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
19
25
|
function block({ type, content }) {
|
|
20
26
|
return `
|
|
21
27
|
> [!${type}]
|
|
22
28
|
${(0, doc_general_1.prefixLines)(content, '> ')}
|
|
23
29
|
`;
|
|
24
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
25
34
|
function section(title, depth = 2, anchor = (0, mermaid_1.escapeId)(title)) {
|
|
26
35
|
return `<h${depth} id="${anchor}">${title}</h${depth}>`;
|
|
27
36
|
}
|
|
@@ -11,17 +11,44 @@ export interface TypeElementInSource {
|
|
|
11
11
|
comments?: string[];
|
|
12
12
|
readonly properties?: string[];
|
|
13
13
|
}
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
14
17
|
export declare function getTypeScriptSourceFiles(fileNames: readonly string[]): {
|
|
15
18
|
files: ts.SourceFile[];
|
|
16
19
|
program: ts.Program;
|
|
17
20
|
};
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
18
24
|
export declare function dropGenericsFromTypeName(type: string): string;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
19
28
|
export declare function removeCommentSymbolsFromTypeScriptComment(comment: string): string;
|
|
29
|
+
/**
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
20
32
|
export declare function getTextualCommentsFromTypeScript(node: ts.Node): string[];
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
21
36
|
export declare function getStartLineOfTypeScriptNode(node: ts.Node, sourceFile: ts.SourceFile): number;
|
|
37
|
+
/**
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
22
40
|
export declare function getType(node: ts.Node, typeChecker: ts.TypeChecker): string;
|
|
41
|
+
/**
|
|
42
|
+
*
|
|
43
|
+
*/
|
|
23
44
|
export declare function followTypeReference(type: ts.TypeReferenceNode, sourceFile: ts.SourceFile): string[];
|
|
45
|
+
/**
|
|
46
|
+
*
|
|
47
|
+
*/
|
|
24
48
|
export declare function getTypePathForTypeScript({ filePath }: Pick<TypeElementInSource, 'filePath'>): string;
|
|
49
|
+
/**
|
|
50
|
+
*
|
|
51
|
+
*/
|
|
25
52
|
export declare function getTypePathLink(elem: Pick<TypeElementInSource, 'filePath' | 'lineNumber'>, prefix?: string): string;
|
|
26
53
|
export interface GetTypesAsMermaidOption {
|
|
27
54
|
readonly rootFolder?: string;
|
|
@@ -47,6 +74,9 @@ export declare function getTypesFromFolder(options: GetTypesAsMermaidOption & {
|
|
|
47
74
|
mermaid: undefined;
|
|
48
75
|
});
|
|
49
76
|
export declare function getTypesFromFolder(options: GetTypesAsMermaidOption): TypeReport;
|
|
77
|
+
/**
|
|
78
|
+
*
|
|
79
|
+
*/
|
|
50
80
|
export declare function implSnippet(node: TypeElementInSource | undefined, program: ts.Program, showName?: boolean, nesting?: number, open?: boolean): string;
|
|
51
81
|
export interface PrintHierarchyArguments {
|
|
52
82
|
readonly program: ts.Program;
|
|
@@ -58,6 +88,9 @@ export interface PrintHierarchyArguments {
|
|
|
58
88
|
readonly openTop?: boolean;
|
|
59
89
|
}
|
|
60
90
|
export declare const mermaidHide: string[];
|
|
91
|
+
/**
|
|
92
|
+
*
|
|
93
|
+
*/
|
|
61
94
|
export declare function printHierarchy({ program, info, root, collapseFromNesting, initialNesting, maxDepth, openTop }: PrintHierarchyArguments): string;
|
|
62
95
|
interface FnInfo {
|
|
63
96
|
info: TypeElementInSource[];
|
|
@@ -67,6 +100,9 @@ interface FnInfo {
|
|
|
67
100
|
doNotAutoGobble?: boolean;
|
|
68
101
|
hideDefinedAt?: boolean;
|
|
69
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
*
|
|
105
|
+
*/
|
|
70
106
|
export declare function printCodeOfElement({ program, info, dropLinesEnd, dropLinesStart, doNotAutoGobble, hideDefinedAt }: FnInfo, name: string): string;
|
|
71
107
|
/**
|
|
72
108
|
* Create a short link to a type in the documentation
|
|
@@ -77,10 +113,16 @@ export declare function printCodeOfElement({ program, info, dropLinesEnd, dropLi
|
|
|
77
113
|
* @param realNameWrapper - How to highlight the function in name in the `x::y` format?
|
|
78
114
|
*/
|
|
79
115
|
export declare function shortLink(name: string, hierarchy: readonly TypeElementInSource[], codeStyle?: boolean, realNameWrapper?: string): string;
|
|
116
|
+
/**
|
|
117
|
+
*
|
|
118
|
+
*/
|
|
80
119
|
export declare function shortLinkFile(name: string, hierarchy: readonly TypeElementInSource[]): string;
|
|
81
120
|
export interface GetDocumentationForTypeFilters {
|
|
82
121
|
fuzzy?: boolean;
|
|
83
122
|
type?: TypeElementKind;
|
|
84
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
*
|
|
126
|
+
*/
|
|
85
127
|
export declare function getDocumentationForType(name: string, hierarchy: TypeElementInSource[], prefix?: string, filter?: GetDocumentationForTypeFilters): string;
|
|
86
128
|
export {};
|
|
@@ -30,6 +30,9 @@ const doc_code_1 = require("./doc-code");
|
|
|
30
30
|
const doc_structure_1 = require("./doc-structure");
|
|
31
31
|
const html_hover_over_1 = require("../../util/html-hover-over");
|
|
32
32
|
const doc_general_1 = require("./doc-general");
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
*/
|
|
33
36
|
function getTypeScriptSourceFiles(fileNames) {
|
|
34
37
|
try {
|
|
35
38
|
const program = typescript_1.default.createProgram(fileNames, {
|
|
@@ -50,6 +53,9 @@ function getTypeScriptSourceFiles(fileNames) {
|
|
|
50
53
|
return { files: [], program: undefined };
|
|
51
54
|
}
|
|
52
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
*/
|
|
53
59
|
function dropGenericsFromTypeName(type) {
|
|
54
60
|
let previous;
|
|
55
61
|
do {
|
|
@@ -58,6 +64,9 @@ function dropGenericsFromTypeName(type) {
|
|
|
58
64
|
} while (type !== previous);
|
|
59
65
|
return type;
|
|
60
66
|
}
|
|
67
|
+
/**
|
|
68
|
+
*
|
|
69
|
+
*/
|
|
61
70
|
function removeCommentSymbolsFromTypeScriptComment(comment) {
|
|
62
71
|
return comment
|
|
63
72
|
// remove '/** \n * \n */...
|
|
@@ -66,6 +75,9 @@ function removeCommentSymbolsFromTypeScriptComment(comment) {
|
|
|
66
75
|
.replace(/\{@[a-zA-Z]+ ([^}]+\|)?(?<name>[^}]+)}/gm, '<code>$<name></code>')
|
|
67
76
|
.trim();
|
|
68
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
*
|
|
80
|
+
*/
|
|
69
81
|
function getTextualCommentsFromTypeScript(node) {
|
|
70
82
|
const comments = typescript_1.default.getJSDocCommentsAndTags(node);
|
|
71
83
|
const out = [];
|
|
@@ -81,15 +93,24 @@ function getTextualCommentsFromTypeScript(node) {
|
|
|
81
93
|
}
|
|
82
94
|
return out;
|
|
83
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
*
|
|
98
|
+
*/
|
|
84
99
|
function getStartLineOfTypeScriptNode(node, sourceFile) {
|
|
85
100
|
const lineStart = sourceFile.getLineAndCharacterOfPosition(node.getStart(sourceFile)).line;
|
|
86
101
|
return lineStart + 1;
|
|
87
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
*
|
|
105
|
+
*/
|
|
88
106
|
function getType(node, typeChecker) {
|
|
89
107
|
const tryDirect = typeChecker.getTypeAtLocation(node);
|
|
90
108
|
return tryDirect ? typeChecker.typeToString(tryDirect) : 'unknown';
|
|
91
109
|
}
|
|
92
110
|
const defaultSkip = ['Pick', 'Partial', 'Required', 'Readonly', 'Omit', 'DeepPartial', 'DeepReadonly', 'DeepWritable', 'StrictOmit'];
|
|
111
|
+
/**
|
|
112
|
+
*
|
|
113
|
+
*/
|
|
93
114
|
function followTypeReference(type, sourceFile) {
|
|
94
115
|
const node = type.typeName;
|
|
95
116
|
if (typescript_1.default.isQualifiedName(node)) {
|
|
@@ -250,9 +271,15 @@ function collectHierarchyInformation(sourceFiles, options) {
|
|
|
250
271
|
});
|
|
251
272
|
return hierarchyList;
|
|
252
273
|
}
|
|
274
|
+
/**
|
|
275
|
+
*
|
|
276
|
+
*/
|
|
253
277
|
function getTypePathForTypeScript({ filePath }) {
|
|
254
278
|
return filePath.replace(/^.*\/src\//, 'src/').replace(/^.*\/test\//, 'test/');
|
|
255
279
|
}
|
|
280
|
+
/**
|
|
281
|
+
*
|
|
282
|
+
*/
|
|
256
283
|
function getTypePathLink(elem, prefix = doc_files_1.RemoteFlowrFilePathBaseRef) {
|
|
257
284
|
const fromSource = getTypePathForTypeScript(elem);
|
|
258
285
|
return `${prefix}/${fromSource}#L${elem.lineNumber}`;
|
|
@@ -347,6 +374,9 @@ function getTypesFromFolder(options) {
|
|
|
347
374
|
}
|
|
348
375
|
return getTypesFromFileAsMermaid(files, options);
|
|
349
376
|
}
|
|
377
|
+
/**
|
|
378
|
+
*
|
|
379
|
+
*/
|
|
350
380
|
function implSnippet(node, program, showName = true, nesting = 0, open = false) {
|
|
351
381
|
(0, assert_1.guard)(node !== undefined, 'Node must be defined => invalid change of type name?');
|
|
352
382
|
const indent = ' '.repeat(nesting * 2);
|
|
@@ -362,6 +392,9 @@ function implSnippet(node, program, showName = true, nesting = 0, open = false)
|
|
|
362
392
|
return ` ${indent}${showName ? init : ''} ${text.replaceAll('\t', ' ').split(/\n/g).join(`\n${indent} `)}`;
|
|
363
393
|
}
|
|
364
394
|
exports.mermaidHide = ['Leaf', 'Location', 'Namespace', 'Base', 'WithChildren', 'Partial', 'RAccessBase'];
|
|
395
|
+
/**
|
|
396
|
+
*
|
|
397
|
+
*/
|
|
365
398
|
function printHierarchy({ program, info, root, collapseFromNesting = 1, initialNesting = 0, maxDepth = 20, openTop }) {
|
|
366
399
|
if (initialNesting > maxDepth) {
|
|
367
400
|
return '';
|
|
@@ -387,6 +420,9 @@ function printHierarchy({ program, info, root, collapseFromNesting = 1, initialN
|
|
|
387
420
|
return thisLine + (out ? '\n' + out : '');
|
|
388
421
|
}
|
|
389
422
|
}
|
|
423
|
+
/**
|
|
424
|
+
*
|
|
425
|
+
*/
|
|
390
426
|
function printCodeOfElement({ program, info, dropLinesEnd = 0, dropLinesStart = 0, doNotAutoGobble, hideDefinedAt }, name) {
|
|
391
427
|
const node = info.find(e => e.name === name);
|
|
392
428
|
if (!node) {
|
|
@@ -473,6 +509,9 @@ function shortLink(name, hierarchy, codeStyle = true, realNameWrapper = 'b') {
|
|
|
473
509
|
return `<a href="${getTypePathLink(node)}">${codeStyle ? '<code>' : ''}${(node.comments?.length ?? 0) > 0 ?
|
|
474
510
|
(0, html_hover_over_1.textWithTooltip)(pkg ? `${pkg}::<${realNameWrapper}>${mainName}</${realNameWrapper}>` : mainName, comments.length > 400 ? comments.slice(0, 400) + '...' : comments) : node.name}${codeStyle ? '</code>' : ''}</a>`;
|
|
475
511
|
}
|
|
512
|
+
/**
|
|
513
|
+
*
|
|
514
|
+
*/
|
|
476
515
|
function shortLinkFile(name, hierarchy) {
|
|
477
516
|
const res = retrieveNode(name, hierarchy);
|
|
478
517
|
if (!res) {
|
|
@@ -482,6 +521,9 @@ function shortLinkFile(name, hierarchy) {
|
|
|
482
521
|
const [, , node] = res;
|
|
483
522
|
return `<a href="${getTypePathLink(node)}">${getTypePathForTypeScript(node)}</a>`;
|
|
484
523
|
}
|
|
524
|
+
/**
|
|
525
|
+
*
|
|
526
|
+
*/
|
|
485
527
|
function getDocumentationForType(name, hierarchy, prefix = '', filter) {
|
|
486
528
|
const res = retrieveNode(name, hierarchy, filter?.fuzzy, filter?.type);
|
|
487
529
|
if (!res) {
|
|
@@ -74,6 +74,10 @@ ${(0, doc_types_1.printCodeOfElement)({ program: types.program, info: types.info
|
|
|
74
74
|
`
|
|
75
75
|
})}
|
|
76
76
|
|
|
77
|
+
In general, we work on providing a set of example repositories that demonstrate how to use the analyzer in different scenarios:
|
|
78
|
+
|
|
79
|
+
* [${doc_files_1.FlowrGithubGroupName}/sample-analyzer-project-query](${doc_files_1.FlowrGithubBaseRef}/sample-analyzer-project-query) for an example project that runs queries on an R project
|
|
80
|
+
|
|
77
81
|
**TODO**: mention [Context](#Context_Information)
|
|
78
82
|
|
|
79
83
|
${(0, doc_structure_1.section)('Builder Configuration', 2)}
|
|
@@ -69,6 +69,9 @@ async function sliceQueryExample(analyzer) {
|
|
|
69
69
|
}]);
|
|
70
70
|
return result;
|
|
71
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
*
|
|
74
|
+
*/
|
|
72
75
|
function inspectContextExample(analyzer) {
|
|
73
76
|
const ctx = analyzer.inspectContext();
|
|
74
77
|
console.log('dplyr version', ctx.deps.getDependency('dplyr'));
|
|
@@ -247,7 +250,7 @@ ${(0, doc_structure_1.block)({
|
|
|
247
250
|
content: `
|
|
248
251
|
All of these commands accept file paths as well, so you can write longer R code within a file, and then pass
|
|
249
252
|
the file path prefixed with \`${retriever_1.fileProtocol}\` (e.g., \`${retriever_1.fileProtocol}test/testfiles/example.R\`) to the commands.`
|
|
250
|
-
})}
|
|
253
|
+
})}
|
|
251
254
|
|
|
252
255
|
Especially when you are just starting with flowR, we recommend using the REPL to explore the output of the different steps.
|
|
253
256
|
|
|
@@ -353,7 +356,7 @@ All ids conform to the ${(0, doc_types_1.shortLink)('NodeId', info)} type.
|
|
|
353
356
|
|
|
354
357
|
The core of the dataflow graph generation works as a "stateful [fold](https://en.wikipedia.org/wiki/Fold_(higher-order_function))",
|
|
355
358
|
which uses the tree-like structure of the AST to combine the dataflow information of the children, while tracking the currently active variables and control flow
|
|
356
|
-
information as a “backpack” (state).
|
|
359
|
+
information as a “backpack” (state).
|
|
357
360
|
We use the ${(0, doc_types_1.shortLink)(extractor_1.produceDataFlowGraph.name, info)} function as an entry point to the dataflow generation (the actual fold entry is in ${(0, doc_types_1.shortLink)(processor_1.processDataflowFor.name, info)}).
|
|
358
361
|
The function is mainly backed by its ${(0, doc_types_1.shortLink)('processors', info)} object which maps each type in the normalized AST to an appropriate handler ("fold-function").
|
|
359
362
|
|
|
@@ -196,8 +196,6 @@ These origins may hold the name of any processor that is part of the ${(0, doc_t
|
|
|
196
196
|
The entry \`function\` signals that flowR used a processor for a user-defined function defined within the source code, \`unnamed\` signals that the function as an anonymous function definition.
|
|
197
197
|
However, in general, flowR may use any fitting handler as an origin. For example, within a access definition, flowR will correspondingly redefine the meaning of \`:=\` to that of the \`table:assign\`.
|
|
198
198
|
|
|
199
|
-
|
|
200
|
-
|
|
201
199
|
${(0, doc_structure_1.details)('Example: Simple Function Call (unresolved)', await (async () => {
|
|
202
200
|
const code = 'foo(x,3,y=3,)';
|
|
203
201
|
const [text, info] = await (0, doc_dfg_1.printDfGraphForCode)(shell, code, { mark: new Set([8]), exposeResult: true });
|
|
@@ -323,7 +321,7 @@ ${await (async () => {
|
|
|
323
321
|
const name = interestingVertex.name;
|
|
324
322
|
(0, assert_1.guard)(name !== undefined, () => 'Could not find name for interesting assignment vertex');
|
|
325
323
|
return `
|
|
326
|
-
${text}
|
|
324
|
+
${text}
|
|
327
325
|
|
|
328
326
|
Interesting program, right? Running this with \`u <- TRUE\` will cause the last line to evaluate to \`6\` because we redefined the assignment
|
|
329
327
|
operator to mean multiplication, while with \`u <- FALSE\` causes \`x\` to be assigned to \`3\`.
|
|
@@ -714,8 +712,8 @@ Yet, you may choose to follow these references for other queries. For now, _flow
|
|
|
714
712
|
Besides the obvious quotation there are other cases in which _flowR_ may choose to create a ${linkEdgeName(edge_1.EdgeType.NonStandardEvaluation)} edge, there are
|
|
715
713
|
some that may appear to be counter-intuitive. For example, a for-loop body, as in the following example.
|
|
716
714
|
|
|
717
|
-
${(0, doc_structure_1.details)('Example: For-Loop Body', await (0, doc_dfg_1.printDfGraphForCode)(shell, 'for(i in v) b', { mark: new Set([2, '4->2']) }))}
|
|
718
|
-
${(0, doc_structure_1.details)('Example: While-Loop Body', await (0, doc_dfg_1.printDfGraphForCode)(shell, 'while(TRUE) b', { mark: new Set([1, '3->1']) }))}
|
|
715
|
+
${(0, doc_structure_1.details)('Example: For-Loop Body', await (0, doc_dfg_1.printDfGraphForCode)(shell, 'for(i in v) b', { mark: new Set([2, '4->2']) }))}
|
|
716
|
+
${(0, doc_structure_1.details)('Example: While-Loop Body', await (0, doc_dfg_1.printDfGraphForCode)(shell, 'while(TRUE) b', { mark: new Set([1, '3->1']) }))}
|
|
719
717
|
|
|
720
718
|
`
|
|
721
719
|
})}
|
|
@@ -789,6 +787,8 @@ wiki page if you are unsure.
|
|
|
789
787
|
> When using _flowR_ as a library, you may use the functions in ${(0, doc_files_1.getFilePathMd)('../util/mermaid/dfg.ts')}.
|
|
790
788
|
>
|
|
791
789
|
> If you receive a dataflow graph in its serialized form (e.g., by talking to a [_flowR_ server](${doc_files_1.FlowrWikiBaseRef}/Interface)), you can use ${(0, doc_types_1.shortLink)(`${graph_1.DataflowGraph.name}::${graph_1.DataflowGraph.fromJson.name}`, vertexType.info, true, 'i')} to retrieve the graph from the JSON representation.
|
|
790
|
+
>
|
|
791
|
+
> Also, check out the [${doc_files_1.FlowrGithubGroupName}/sample-analyzer-df-diff](${doc_files_1.FlowrGithubBaseRef}/sample-analyzer-df-diff) repository for a complete example project creating and comparing dataflow graphs.
|
|
792
792
|
|
|
793
793
|
${await (0, doc_dfg_1.printDfGraphForCode)(shell, 'x <- 3\ny <- x + 1\ny')}
|
|
794
794
|
|
|
@@ -2,87 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const log_1 = require("../../test/functionality/_helper/log");
|
|
4
4
|
const doc_auto_gen_1 = require("./doc-util/doc-auto-gen");
|
|
5
|
-
const
|
|
6
|
-
const doc_code_1 = require("./doc-util/doc-code");
|
|
5
|
+
const faqs_1 = require("./data/faq/faqs");
|
|
7
6
|
function print() {
|
|
7
|
+
const faqs = (0, faqs_1.registerFaqs)();
|
|
8
8
|
return `${(0, doc_auto_gen_1.autoGenHeader)({ filename: module.filename, purpose: 'frequently asked questions' })}
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
### 🧑💻 *flowR* Development
|
|
13
|
-
|
|
14
|
-
${qAndA('What are test labels and how do they work?', `
|
|
15
|
-
Tests are labeled based on the *flowR* capabilities that they test for. The list of supported capabilities can be found on the [Capabilities](${doc_files_1.FlowrWikiBaseRef}/Capabilities) wiki page. For more extensive information on test labels, see the [test labels wiki section](${doc_files_1.FlowrWikiBaseRef}/Linting-and-Testing#test-labels).
|
|
16
|
-
`)}
|
|
17
|
-
|
|
18
|
-
${qAndA('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\` this will use an unminified build (keeping debug info)
|
|
20
|
-
and will also watch the source files for changes and automatically recompile them. Please note, that this may have negative performance implications.
|
|
21
|
-
`)}
|
|
22
|
-
|
|
23
|
-
${qAndA('How do I generate mermaid diagrams?', `
|
|
24
|
-
There are several ways to generate mermaid diagrams based on the input data that you want to use.
|
|
25
|
-
- From the AST (abstract syntax tree): ${(0, doc_files_1.getFilePathMd)('../util/mermaid/ast.ts')}
|
|
26
|
-
- From the CFG (control flow graph): ${(0, doc_files_1.getFilePathMd)('../util/mermaid/cfg.ts')}
|
|
27
|
-
- From the DFG (dataflow graph): ${(0, doc_files_1.getFilePathMd)('../util/mermaid/dfg.ts')}
|
|
28
|
-
`)}
|
|
29
|
-
|
|
30
|
-
${qAndA('How do I 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
|
-
|
|
42
|
-
${qAndA('Why can\'t I pass arguments when running flowR with npm?', `
|
|
43
|
-
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:
|
|
44
|
-
${(0, doc_code_1.codeBlock)('shell', 'npm run flowR -- --help')}
|
|
45
|
-
`)}
|
|
46
|
-
|
|
47
|
-
${qAndA('How to do logging in flowR?', `
|
|
48
|
-
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*.
|
|
49
|
-
`)}
|
|
50
|
-
|
|
51
|
-
## 🇷 R FAQ
|
|
52
|
-
|
|
53
|
-
### 📦 R Packages
|
|
54
|
-
|
|
55
|
-
${qAndA('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 function call with the package name and the \`::\` operator.
|
|
59
|
-
|
|
60
|
-
The packages loaded by the R prelude can be seen in the \`attached base packages\` sections in the output of \`sessionInfo()\`.
|
|
61
|
-
`)}
|
|
62
|
-
|
|
63
|
-
${qAndA('How to get documentation for a function or package?', `
|
|
64
|
-
There are a couple of ways to get documentation for a function or package.
|
|
65
|
-
|
|
66
|
-
🖥️ 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
|
|
67
|
-
relevant documentation. If you don't know the origin of the package, you can use
|
|
68
|
-
\`??<function name>\` in an R shell to fuzzy find all documentations containing
|
|
69
|
-
\`<function name>\` or something similar.
|
|
70
|
-
|
|
71
|
-
🌐 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\`
|
|
72
|
-
or \`rdocumentation.org\`. Additionally, the package documentation PDF can also
|
|
73
|
-
be downloaded directly from \`cran\`.
|
|
74
|
-
`)}
|
|
10
|
+
${faqs.toMarkdown()}
|
|
75
11
|
|
|
76
12
|
`.trim();
|
|
77
13
|
}
|
|
78
|
-
function qAndA(question, answer) {
|
|
79
|
-
return `<details>
|
|
80
|
-
<summary><strong>${question}</strong></summary>
|
|
81
|
-
|
|
82
|
-
${answer.trim()}
|
|
83
|
-
|
|
84
|
-
</details>`;
|
|
85
|
-
}
|
|
86
14
|
if (require.main === module) {
|
|
87
15
|
(0, log_1.setMinLevelOfAllLogs)(6 /* LogLevel.Fatal */);
|
|
88
16
|
console.log(print());
|
|
@@ -154,7 +154,7 @@ ${await (0, doc_repl_1.documentReplSession)(shell, [{
|
|
|
154
154
|
|
|
155
155
|
<details>
|
|
156
156
|
|
|
157
|
-
<summary>File Content</summary>
|
|
157
|
+
<summary>File Content</summary>
|
|
158
158
|
|
|
159
159
|
${(0, doc_code_1.codeBlock)('r', (0, doc_files_1.getFileContentFromRoot)('test/testfiles/example.R'))}
|
|
160
160
|
|
|
@@ -5,7 +5,7 @@ const doc_files_1 = require("./doc-util/doc-files");
|
|
|
5
5
|
const doc_code_1 = require("./doc-util/doc-code");
|
|
6
6
|
const doc_auto_gen_1 = require("./doc-util/doc-auto-gen");
|
|
7
7
|
function print() {
|
|
8
|
-
return `${(0, doc_auto_gen_1.autoGenHeader)({ filename: module.filename, purpose: 'developer onboarding process' })}
|
|
8
|
+
return `${(0, doc_auto_gen_1.autoGenHeader)({ filename: module.filename, purpose: 'developer onboarding process' })}
|
|
9
9
|
|
|
10
10
|
To get started developing on *flowR*, we recommend carefully reading the following pages:
|
|
11
11
|
- 💻 [Setting up the *flowR* development environment](${doc_files_1.FlowrWikiBaseRef}/Setup#%EF%B8%8F-building-from-scratch).\
|
|
@@ -22,7 +22,6 @@ const id_map_query_executor_1 = require("../queries/catalog/id-map-query/id-map-
|
|
|
22
22
|
const normalized_ast_query_executor_1 = require("../queries/catalog/normalized-ast-query/normalized-ast-query-executor");
|
|
23
23
|
const cluster_query_executor_1 = require("../queries/catalog/cluster-query/cluster-query-executor");
|
|
24
24
|
const static_slice_query_executor_1 = require("../queries/catalog/static-slice-query/static-slice-query-executor");
|
|
25
|
-
const lineage_query_executor_1 = require("../queries/catalog/lineage-query/lineage-query-executor");
|
|
26
25
|
const dependencies_query_executor_1 = require("../queries/catalog/dependencies-query/dependencies-query-executor");
|
|
27
26
|
const doc_cli_option_1 = require("./doc-util/doc-cli-option");
|
|
28
27
|
const doc_issue_1 = require("./doc-util/doc-issue");
|
|
@@ -166,37 +165,6 @@ ${await (0, doc_query_1.showQuery)(shell, exampleCode, [{
|
|
|
166
165
|
`;
|
|
167
166
|
}
|
|
168
167
|
});
|
|
169
|
-
(0, doc_query_1.registerQueryDocumentation)('lineage', {
|
|
170
|
-
name: 'Lineage Query',
|
|
171
|
-
type: 'active',
|
|
172
|
-
shortDescription: 'Returns lineage of a criteria.',
|
|
173
|
-
functionName: lineage_query_executor_1.executeLineageQuery.name,
|
|
174
|
-
functionFile: '../queries/catalog/lineage-query/lineage-query-executor.ts',
|
|
175
|
-
buildExplanation: async (shell) => {
|
|
176
|
-
const exampleCode = 'x <- 1\nx';
|
|
177
|
-
return `
|
|
178
|
-
This query calculates the _lineage_ of a given slicing criterion. The lineage traces back all parts that the
|
|
179
|
-
respective variables stems from given the reads, definitions, and returns in the dataflow graph.
|
|
180
|
-
|
|
181
|
-
To understand this, let's start with a simple example query, to get the lineage of the second use of \`x\` in the following code:
|
|
182
|
-
${(0, doc_code_1.codeBlock)('r', exampleCode)}
|
|
183
|
-
|
|
184
|
-
For this, we use the criterion \`2@x\` (which is the first use of \`x\` in the second line).
|
|
185
|
-
|
|
186
|
-
${await (0, doc_query_1.showQuery)(shell, exampleCode, [{
|
|
187
|
-
type: 'lineage',
|
|
188
|
-
criterion: '2@x'
|
|
189
|
-
}], { showCode: false })}
|
|
190
|
-
|
|
191
|
-
In this simple scenario, the _lineage_ is equivalent to the slice (and in-fact the complete code).
|
|
192
|
-
In general the lineage is smaller and makes no guarantees on executability.
|
|
193
|
-
It is just a quick and neither complete nor sound way to get information on where the variable originates from.
|
|
194
|
-
|
|
195
|
-
This query replaces the old [\`request-lineage\`](${doc_files_1.FlowrWikiBaseRef}/Interface#message-request-lineage) message.
|
|
196
|
-
|
|
197
|
-
`;
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
168
|
(0, doc_query_1.registerQueryDocumentation)('dataflow-cluster', {
|
|
201
169
|
name: 'Dataflow Cluster Query',
|
|
202
170
|
type: 'active',
|
|
@@ -643,7 +611,7 @@ ${await (0, doc_query_1.showQuery)(shell, exampleCode, [{
|
|
|
643
611
|
type: 'location-map'
|
|
644
612
|
}], { showCode: false, collapseQuery: true })}
|
|
645
613
|
|
|
646
|
-
All locations are given as a ${(0, doc_types_1.shortLink)('SourceRange', types.info)} paired with the file id in the format \`[file-id, [start-line, start-column, end-line, end-column]]\`.
|
|
614
|
+
All locations are given as a ${(0, doc_types_1.shortLink)('SourceRange', types.info)} paired with the file id in the format \`[file-id, [start-line, start-column, end-line, end-column]]\`.
|
|
647
615
|
|
|
648
616
|
`;
|
|
649
617
|
}
|
|
@@ -660,7 +628,9 @@ ${(0, doc_structure_1.block)({
|
|
|
660
628
|
content: `
|
|
661
629
|
There are many ways to query a dataflow graph created by flowR.
|
|
662
630
|
For example, you can use the [\`request-query\`](${doc_files_1.FlowrWikiBaseRef}/Interface#message-request-query) message
|
|
663
|
-
with a running flowR server, or the ${(0, doc_cli_option_1.getReplCommand)('query')} command in the flowR [REPL](${doc_files_1.FlowrWikiBaseRef}/Interface#repl).
|
|
631
|
+
with a running flowR server, or the ${(0, doc_cli_option_1.getReplCommand)('query')} command in the flowR [REPL](${doc_files_1.FlowrWikiBaseRef}/Interface#repl).
|
|
632
|
+
|
|
633
|
+
Also, check out the [${doc_files_1.FlowrGithubGroupName}/sample-analyzer-project-query](${doc_files_1.FlowrGithubBaseRef}/sample-analyzer-project-query) repository for a complete example project using the query API.
|
|
664
634
|
`.trim()
|
|
665
635
|
})}
|
|
666
636
|
|