@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
|
@@ -29,16 +29,15 @@ function makeReferenceMaybe(ref, graph, environments, includeDefs, defaultCd = u
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
const node = graph.
|
|
32
|
+
const node = graph.getVertex(ref.nodeId, true);
|
|
33
33
|
if (node) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
fst.cds.push(defaultCd);
|
|
34
|
+
if (node.cds) {
|
|
35
|
+
if (defaultCd && !node.cds.find(c => c.id === defaultCd.id && c.when === defaultCd.when)) {
|
|
36
|
+
node.cds.push(defaultCd);
|
|
38
37
|
}
|
|
39
38
|
}
|
|
40
39
|
else {
|
|
41
|
-
|
|
40
|
+
node.cds = defaultCd ? [defaultCd] : [];
|
|
42
41
|
}
|
|
43
42
|
}
|
|
44
43
|
if (ref.controlDependencies) {
|
|
@@ -51,6 +50,9 @@ function makeReferenceMaybe(ref, graph, environments, includeDefs, defaultCd = u
|
|
|
51
50
|
}
|
|
52
51
|
return ref;
|
|
53
52
|
}
|
|
53
|
+
/**
|
|
54
|
+
*
|
|
55
|
+
*/
|
|
54
56
|
function makeAllMaybe(references, graph, environments, includeDefs, defaultCd = undefined) {
|
|
55
57
|
return references?.map(ref => makeReferenceMaybe(ref, graph, environments, includeDefs, defaultCd)) ?? [];
|
|
56
58
|
}
|
|
@@ -14,7 +14,6 @@ export type Identifier = string & {
|
|
|
14
14
|
* a function when resolving an {@link Identifier|identifier}.
|
|
15
15
|
* In `c <- 3; print(c(1, 2))` the call to `c` works normally (as the vector constructor),
|
|
16
16
|
* while writing `c <- function(...) ..1` overshadows the built-in and causes `print` to only output the first element.
|
|
17
|
-
*
|
|
18
17
|
* @see {@link isReferenceType} - for checking if a (potentially joint) reference type contains a certain type
|
|
19
18
|
* @see {@link ReferenceTypeReverseMapping} - for debugging
|
|
20
19
|
*/
|
|
@@ -45,7 +44,6 @@ export declare function isReferenceType(t: ReferenceType, target: ReferenceType)
|
|
|
45
44
|
/**
|
|
46
45
|
* Describes all types of reference (definitions) that can appear within a graph (i.e., that are not built-in like the
|
|
47
46
|
* default definition for the assignment operator `<-`).
|
|
48
|
-
*
|
|
49
47
|
* @see {@link InGraphIdentifierDefinition} - for the definition of an identifier within the graph
|
|
50
48
|
*/
|
|
51
49
|
export type InGraphReferenceType = Exclude<ReferenceType, ReferenceType.BuiltInConstant | ReferenceType.BuiltInFunction>;
|
|
@@ -61,7 +59,6 @@ export type InGraphReferenceType = Exclude<ReferenceType, ReferenceType.BuiltInC
|
|
|
61
59
|
* they indicate the references that are currently (during the analysis at this given node)
|
|
62
60
|
* {@link DataflowInformation#in|read (`in`)}, {@link DataflowInformation#out|written (`out`)},
|
|
63
61
|
* or {@link DataflowInformation#unknownReferences|unknown (`unknownReferences`)}.
|
|
64
|
-
*
|
|
65
62
|
* @see {@link InGraphIdentifierDefinition}
|
|
66
63
|
*/
|
|
67
64
|
export interface IdentifierReference {
|
|
@@ -88,7 +85,6 @@ export interface IdentifierReference {
|
|
|
88
85
|
* Within a code snippet like `a <- 3`, the symbol processor will first create an
|
|
89
86
|
* {@link IdentifierReference|identifier reference} for `a` to reference the use
|
|
90
87
|
* and then promote it to an {@link InGraphIdentifierDefinition|identifier definition}.
|
|
91
|
-
*
|
|
92
88
|
* @see {@link IdentifierReference}
|
|
93
89
|
*/
|
|
94
90
|
export interface InGraphIdentifierDefinition extends IdentifierReference {
|
|
@@ -11,7 +11,6 @@ exports.isReferenceType = isReferenceType;
|
|
|
11
11
|
* a function when resolving an {@link Identifier|identifier}.
|
|
12
12
|
* In `c <- 3; print(c(1, 2))` the call to `c` works normally (as the vector constructor),
|
|
13
13
|
* while writing `c <- function(...) ..1` overshadows the built-in and causes `print` to only output the first element.
|
|
14
|
-
*
|
|
15
14
|
* @see {@link isReferenceType} - for checking if a (potentially joint) reference type contains a certain type
|
|
16
15
|
* @see {@link ReferenceTypeReverseMapping} - for debugging
|
|
17
16
|
*/
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type IEnvironment, type REnvironmentInformation } from './environment';
|
|
2
2
|
import type { ControlDependency } from '../info';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare function overwriteIEnvironmentWith(base: IEnvironment | undefined, next: IEnvironment | undefined, includeParent?: boolean, applyCds?: readonly ControlDependency[]): IEnvironment;
|
|
4
7
|
export declare function overwriteEnvironment(base: REnvironmentInformation, next: REnvironmentInformation | undefined, applyCds?: readonly ControlDependency[]): REnvironmentInformation;
|
|
5
8
|
export declare function overwriteEnvironment(base: REnvironmentInformation | undefined, next: REnvironmentInformation, applyCds?: readonly ControlDependency[]): REnvironmentInformation;
|
|
@@ -16,6 +16,9 @@ function anyIsMaybeOrEmpty(values) {
|
|
|
16
16
|
}
|
|
17
17
|
return false;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
*
|
|
21
|
+
*/
|
|
19
22
|
function overwriteIEnvironmentWith(base, next, includeParent = true, applyCds) {
|
|
20
23
|
(0, assert_1.guard)(base !== undefined && next !== undefined, 'can not overwrite environments with undefined');
|
|
21
24
|
const map = new Map(base.memory);
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import type { REnvironmentInformation } from './environment';
|
|
2
2
|
import { Ternary } from '../../util/logic';
|
|
3
|
-
import type
|
|
4
|
-
import { ReferenceType } from './identifier';
|
|
3
|
+
import { type Identifier, type IdentifierDefinition, ReferenceType } from './identifier';
|
|
5
4
|
/**
|
|
6
5
|
* Resolves a given identifier name to a list of its possible definition location using R scoping and resolving rules.
|
|
7
|
-
*
|
|
8
6
|
* @param name - The name of the identifier to resolve
|
|
9
7
|
* @param environment - The current environment used for name resolution
|
|
10
8
|
* @param target - The target (meta) type of the identifier to resolve
|
|
11
|
-
*
|
|
12
9
|
* @returns A list of possible identifier definitions (one if the definition location is exactly and always known), or `undefined`
|
|
13
10
|
* if the identifier is undefined in the current scope/with the current environment information.
|
|
14
11
|
*/
|
|
15
12
|
export declare function resolveByName(name: Identifier, environment: REnvironmentInformation, target?: ReferenceType): IdentifierDefinition[] | undefined;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
16
|
export declare function resolvesToBuiltInConstant(name: Identifier | undefined, environment: REnvironmentInformation, wantedValue: unknown): Ternary;
|
|
@@ -22,11 +22,9 @@ const TargetTypePredicate = {
|
|
|
22
22
|
};
|
|
23
23
|
/**
|
|
24
24
|
* Resolves a given identifier name to a list of its possible definition location using R scoping and resolving rules.
|
|
25
|
-
*
|
|
26
25
|
* @param name - The name of the identifier to resolve
|
|
27
26
|
* @param environment - The current environment used for name resolution
|
|
28
27
|
* @param target - The target (meta) type of the identifier to resolve
|
|
29
|
-
*
|
|
30
28
|
* @returns A list of possible identifier definitions (one if the definition location is exactly and always known), or `undefined`
|
|
31
29
|
* if the identifier is undefined in the current scope/with the current environment information.
|
|
32
30
|
*/
|
|
@@ -56,6 +54,9 @@ function resolveByName(name, environment, target = identifier_1.ReferenceType.Un
|
|
|
56
54
|
return builtIns;
|
|
57
55
|
}
|
|
58
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
*
|
|
59
|
+
*/
|
|
59
60
|
function resolvesToBuiltInConstant(name, environment, wantedValue) {
|
|
60
61
|
if (name === undefined) {
|
|
61
62
|
return logic_1.Ternary.Never;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type REnvironmentInformation } from './environment';
|
|
2
2
|
/** Add a new local environment scope to the stack, returns the modified variant - sharing the original environments in the stack (no deep-clone) */
|
|
3
3
|
export declare function pushLocalEnvironment(base: REnvironmentInformation): REnvironmentInformation;
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
4
7
|
export declare function popLocalEnvironment(base: REnvironmentInformation): REnvironmentInformation;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { VariableResolve } from '../../../config';
|
|
2
2
|
import type { AstIdMap, RNodeWithParent } from '../../../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
5
|
-
import type
|
|
3
|
+
import { type NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
4
|
+
import { type REnvironmentInformation } from '../../environments/environment';
|
|
5
|
+
import { type Identifier } from '../../environments/identifier';
|
|
6
6
|
import type { DataflowGraph } from '../../graph/graph';
|
|
7
|
-
import type
|
|
7
|
+
import { type Lift, type Value, type ValueSet } from '../values/r-value';
|
|
8
8
|
export type ResolveResult = Lift<ValueSet<Value[]>>;
|
|
9
9
|
export interface ResolveInfo {
|
|
10
10
|
/** The current environment used for name resolution */
|
|
@@ -26,7 +26,6 @@ export interface ResolveInfo {
|
|
|
26
26
|
* the sourceIds value field of their InGraphIdentifierDefinition. This enables
|
|
27
27
|
* us later, in the {@link trackAliasInEnvironments} function, to get all the
|
|
28
28
|
* aliases of an identifier.
|
|
29
|
-
*
|
|
30
29
|
* @param sourceIds - node ids to get the definitions for
|
|
31
30
|
* @param dataflow - dataflow graph
|
|
32
31
|
* @param environment - environment
|
|
@@ -45,7 +44,6 @@ export declare function getAliases(sourceIds: readonly NodeId[], dataflow: Dataf
|
|
|
45
44
|
* This function is also used by the Resolve Value Query and the Dependency Query
|
|
46
45
|
* to resolve values. For e.g. in the Dependency Query it is used to resolve calls
|
|
47
46
|
* like `lapply(c("a", "b", "c"), library, character.only = TRUE)`
|
|
48
|
-
*
|
|
49
47
|
* @param id - The node id or node to resolve
|
|
50
48
|
* @param environment - The current environment used for name resolution
|
|
51
49
|
* @param graph - The graph to resolve in
|
|
@@ -59,8 +57,6 @@ export declare function resolveIdToValue(id: NodeId | RNodeWithParent | undefine
|
|
|
59
57
|
*
|
|
60
58
|
* Uses the aliases that were tracked in the environments (by the
|
|
61
59
|
* {@link getAliases} function) to resolve a node to a value.
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
60
|
* @param resolve - Variable resolve mode
|
|
65
61
|
* @param identifier - Identifier to resolve
|
|
66
62
|
* @param use - Environment to use
|
|
@@ -73,7 +69,6 @@ export declare function trackAliasInEnvironments(resolve: VariableResolve, ident
|
|
|
73
69
|
* Please use {@link resolveIdToValue}
|
|
74
70
|
*
|
|
75
71
|
* Tries to resolve the value of a node by traversing the dataflow graph
|
|
76
|
-
*
|
|
77
72
|
* @param id - node to resolve
|
|
78
73
|
* @param graph - dataflow graph
|
|
79
74
|
* @param idMap - idmap of dataflow graph
|
|
@@ -84,7 +79,6 @@ export declare function trackAliasesInGraph(id: NodeId, graph: DataflowGraph, id
|
|
|
84
79
|
* Please use {@link resolveIdToValue}
|
|
85
80
|
*
|
|
86
81
|
* Resolve an Identifier to a constant, if the identifier is a constant
|
|
87
|
-
*
|
|
88
82
|
* @param name - Identifier to resolve
|
|
89
83
|
* @param environment - Environment to use
|
|
90
84
|
* @returns Value of Constant or Top
|
|
@@ -77,7 +77,6 @@ function getUseAlias(sourceId, dataflow, environment) {
|
|
|
77
77
|
* the sourceIds value field of their InGraphIdentifierDefinition. This enables
|
|
78
78
|
* us later, in the {@link trackAliasInEnvironments} function, to get all the
|
|
79
79
|
* aliases of an identifier.
|
|
80
|
-
*
|
|
81
80
|
* @param sourceIds - node ids to get the definitions for
|
|
82
81
|
* @param dataflow - dataflow graph
|
|
83
82
|
* @param environment - environment
|
|
@@ -109,7 +108,6 @@ function getAliases(sourceIds, dataflow, environment) {
|
|
|
109
108
|
* This function is also used by the Resolve Value Query and the Dependency Query
|
|
110
109
|
* to resolve values. For e.g. in the Dependency Query it is used to resolve calls
|
|
111
110
|
* like `lapply(c("a", "b", "c"), library, character.only = TRUE)`
|
|
112
|
-
*
|
|
113
111
|
* @param id - The node id or node to resolve
|
|
114
112
|
* @param environment - The current environment used for name resolution
|
|
115
113
|
* @param graph - The graph to resolve in
|
|
@@ -138,6 +136,8 @@ function resolveIdToValue(id, { environment, graph, idMap, full = true, resolve
|
|
|
138
136
|
else {
|
|
139
137
|
return r_value_1.Top;
|
|
140
138
|
}
|
|
139
|
+
case type_1.RType.FunctionDefinition:
|
|
140
|
+
return (0, set_constants_1.setFrom)({ type: 'function-definition' });
|
|
141
141
|
case type_1.RType.FunctionCall:
|
|
142
142
|
case type_1.RType.BinaryOp:
|
|
143
143
|
case type_1.RType.UnaryOp:
|
|
@@ -155,8 +155,6 @@ function resolveIdToValue(id, { environment, graph, idMap, full = true, resolve
|
|
|
155
155
|
*
|
|
156
156
|
* Uses the aliases that were tracked in the environments (by the
|
|
157
157
|
* {@link getAliases} function) to resolve a node to a value.
|
|
158
|
-
*
|
|
159
|
-
*
|
|
160
158
|
* @param resolve - Variable resolve mode
|
|
161
159
|
* @param identifier - Identifier to resolve
|
|
162
160
|
* @param use - Environment to use
|
|
@@ -254,20 +252,22 @@ function isNestedInLoop(node, ast) {
|
|
|
254
252
|
* Please use {@link resolveIdToValue}
|
|
255
253
|
*
|
|
256
254
|
* Tries to resolve the value of a node by traversing the dataflow graph
|
|
257
|
-
*
|
|
258
255
|
* @param id - node to resolve
|
|
259
256
|
* @param graph - dataflow graph
|
|
260
257
|
* @param idMap - idmap of dataflow graph
|
|
261
258
|
* @returns Value of node or Top/Bottom
|
|
262
259
|
*/
|
|
263
260
|
function trackAliasesInGraph(id, graph, idMap) {
|
|
261
|
+
if (!graph.get(id)) {
|
|
262
|
+
return r_value_1.Bottom;
|
|
263
|
+
}
|
|
264
264
|
idMap ??= graph.idMap;
|
|
265
265
|
(0, assert_1.guard)(idMap !== undefined, 'The ID map is required to get the lineage of a node');
|
|
266
266
|
const queue = new visiting_queue_1.VisitingQueue(25);
|
|
267
267
|
const clean = (0, environment_1.initializeCleanEnvironments)();
|
|
268
268
|
const cleanFingerprint = (0, fingerprint_1.envFingerprint)(clean);
|
|
269
269
|
queue.add(id, clean, cleanFingerprint, false);
|
|
270
|
-
let
|
|
270
|
+
let forceTop = false;
|
|
271
271
|
const resultIds = [];
|
|
272
272
|
while (queue.nonEmpty()) {
|
|
273
273
|
const { id, baseEnvironment } = queue.next();
|
|
@@ -282,15 +282,15 @@ function trackAliasesInGraph(id, graph, idMap) {
|
|
|
282
282
|
if (target === undefined) {
|
|
283
283
|
continue;
|
|
284
284
|
}
|
|
285
|
-
if (target.type === type_1.RType.WhileLoop || target.type === type_1.RType.RepeatLoop) {
|
|
286
|
-
|
|
285
|
+
if (target.type === type_1.RType.WhileLoop || target.type === type_1.RType.RepeatLoop || target.type === type_1.RType.ForLoop) {
|
|
286
|
+
forceTop = true;
|
|
287
287
|
break;
|
|
288
288
|
}
|
|
289
289
|
}
|
|
290
|
-
if (!
|
|
291
|
-
|
|
290
|
+
if (!forceTop && (cds?.length === 0 && isNestedInLoop(idMap.get(id), idMap))) {
|
|
291
|
+
forceTop = true;
|
|
292
292
|
}
|
|
293
|
-
if (
|
|
293
|
+
if (forceTop) {
|
|
294
294
|
break;
|
|
295
295
|
}
|
|
296
296
|
if (vertex.tag === vertex_1.VertexType.Value) {
|
|
@@ -316,8 +316,8 @@ function trackAliasesInGraph(id, graph, idMap) {
|
|
|
316
316
|
}
|
|
317
317
|
}
|
|
318
318
|
}
|
|
319
|
-
if (
|
|
320
|
-
return r_value_1.
|
|
319
|
+
if (forceTop || resultIds.length === 0) {
|
|
320
|
+
return r_value_1.Top;
|
|
321
321
|
}
|
|
322
322
|
const values = new Set();
|
|
323
323
|
for (const id of resultIds) {
|
|
@@ -332,7 +332,6 @@ function trackAliasesInGraph(id, graph, idMap) {
|
|
|
332
332
|
* Please use {@link resolveIdToValue}
|
|
333
333
|
*
|
|
334
334
|
* Resolve an Identifier to a constant, if the identifier is a constant
|
|
335
|
-
*
|
|
336
335
|
* @param name - Identifier to resolve
|
|
337
336
|
* @param environment - Environment to use
|
|
338
337
|
* @returns Value of Constant or Top
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type DataflowGraph } from '../../graph/graph';
|
|
2
2
|
import type { DataflowGraphVertexFunctionCall } from '../../graph/vertex';
|
|
3
3
|
import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
|
|
4
4
|
import type { VariableResolve } from '../../../config';
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import type { AstIdMap, RNodeWithParent } from '../../../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
2
2
|
import type { REnvironmentInformation } from '../../environments/environment';
|
|
3
3
|
import type { DataflowGraph } from '../../graph/graph';
|
|
4
|
-
import type
|
|
5
|
-
import { Top } from '../values/r-value';
|
|
4
|
+
import { type Lift, type Value, type ValueNumber, type ValueVector, Top } from '../values/r-value';
|
|
6
5
|
import type { VariableResolve } from '../../../config';
|
|
7
6
|
/**
|
|
8
7
|
* Helper function used by {@link resolveIdToValue}, please use that instead, if
|
|
@@ -10,7 +9,6 @@ import type { VariableResolve } from '../../../config';
|
|
|
10
9
|
*
|
|
11
10
|
* This function converts an RNode to its Value, but also recursively resolves
|
|
12
11
|
* aliases and vectors (in case of a vector).
|
|
13
|
-
*
|
|
14
12
|
* @param a - Ast node to resolve
|
|
15
13
|
* @param resolve - Variable resolve mode
|
|
16
14
|
* @param env - Environment to use
|
|
@@ -25,7 +23,6 @@ export declare function resolveNode(resolve: VariableResolve, a: RNodeWithParent
|
|
|
25
23
|
*
|
|
26
24
|
* This function resolves a vector function call `c` to a {@link ValueVector}
|
|
27
25
|
* by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
|
|
28
|
-
*
|
|
29
26
|
* @param resolve - Variable resolve mode
|
|
30
27
|
* @param node - Node of the vector function to resolve
|
|
31
28
|
* @param env - Environment to use
|
|
@@ -40,7 +37,6 @@ export declare function resolveAsVector(resolve: VariableResolve, node: RNodeWit
|
|
|
40
37
|
*
|
|
41
38
|
* This function resolves a binary sequence operator `:` to a {@link ValueVector} of {@link ValueNumber}s
|
|
42
39
|
* by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
|
|
43
|
-
*
|
|
44
40
|
* @param resolve - Variable resolve mode
|
|
45
41
|
* @param operator - Node of the sequence operator to resolve
|
|
46
42
|
* @param env - Environment to use
|
|
@@ -55,7 +51,6 @@ export declare function resolveAsSeq(resolve: VariableResolve, operator: RNodeWi
|
|
|
55
51
|
*
|
|
56
52
|
* This function resolves a unary plus operator `+` to a {@link ValueNumber} or {@link ValueVector} of ValueNumbers
|
|
57
53
|
* by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
|
|
58
|
-
*
|
|
59
54
|
* @param resolve - Variable resolve mode
|
|
60
55
|
* @param operator - Node of the plus operator to resolve
|
|
61
56
|
* @param env - Environment to use
|
|
@@ -70,7 +65,6 @@ export declare function resolveAsPlus(resolve: VariableResolve, operator: RNodeW
|
|
|
70
65
|
*
|
|
71
66
|
* This function resolves a unary minus operator `-` to a {@link ValueNumber} or {@link ValueVector} of ValueNumbers
|
|
72
67
|
* by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
|
|
73
|
-
*
|
|
74
68
|
* @param resolve - Variable resolve mode
|
|
75
69
|
* @param operator - Node of the minus operator to resolve
|
|
76
70
|
* @param env - Environment to use
|
|
@@ -23,7 +23,6 @@ const scalar_consatnts_1 = require("../values/scalar/scalar-consatnts");
|
|
|
23
23
|
*
|
|
24
24
|
* This function converts an RNode to its Value, but also recursively resolves
|
|
25
25
|
* aliases and vectors (in case of a vector).
|
|
26
|
-
*
|
|
27
26
|
* @param a - Ast node to resolve
|
|
28
27
|
* @param resolve - Variable resolve mode
|
|
29
28
|
* @param env - Environment to use
|
|
@@ -41,6 +40,9 @@ function resolveNode(resolve, a, env, graph, map) {
|
|
|
41
40
|
else if (a.type === type_1.RType.Logical) {
|
|
42
41
|
return a.content.valueOf() ? logical_constants_1.ValueLogicalTrue : logical_constants_1.ValueLogicalFalse;
|
|
43
42
|
}
|
|
43
|
+
else if (a.type === type_1.RType.FunctionDefinition) {
|
|
44
|
+
return { type: 'function-definition' };
|
|
45
|
+
}
|
|
44
46
|
else if ((a.type === type_1.RType.FunctionCall || a.type === type_1.RType.BinaryOp || a.type === type_1.RType.UnaryOp) && graph) {
|
|
45
47
|
const origin = (0, dfg_get_origin_1.getOriginInDfg)(graph, a.info.id)?.[0];
|
|
46
48
|
if (origin === undefined || origin.type !== 3 /* OriginType.BuiltInFunctionOrigin */) {
|
|
@@ -72,7 +74,6 @@ function resolveNode(resolve, a, env, graph, map) {
|
|
|
72
74
|
*
|
|
73
75
|
* This function resolves a vector function call `c` to a {@link ValueVector}
|
|
74
76
|
* by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
|
|
75
|
-
*
|
|
76
77
|
* @param resolve - Variable resolve mode
|
|
77
78
|
* @param node - Node of the vector function to resolve
|
|
78
79
|
* @param env - Environment to use
|
|
@@ -94,7 +95,6 @@ function resolveAsVector(resolve, node, environment, graph, idMap) {
|
|
|
94
95
|
*
|
|
95
96
|
* This function resolves a binary sequence operator `:` to a {@link ValueVector} of {@link ValueNumber}s
|
|
96
97
|
* by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
|
|
97
|
-
*
|
|
98
98
|
* @param resolve - Variable resolve mode
|
|
99
99
|
* @param operator - Node of the sequence operator to resolve
|
|
100
100
|
* @param env - Environment to use
|
|
@@ -122,7 +122,6 @@ function resolveAsSeq(resolve, operator, environment, graph, idMap) {
|
|
|
122
122
|
*
|
|
123
123
|
* This function resolves a unary plus operator `+` to a {@link ValueNumber} or {@link ValueVector} of ValueNumbers
|
|
124
124
|
* by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
|
|
125
|
-
*
|
|
126
125
|
* @param resolve - Variable resolve mode
|
|
127
126
|
* @param operator - Node of the plus operator to resolve
|
|
128
127
|
* @param env - Environment to use
|
|
@@ -151,7 +150,6 @@ function resolveAsPlus(resolve, operator, environment, graph, idMap) {
|
|
|
151
150
|
*
|
|
152
151
|
* This function resolves a unary minus operator `-` to a {@link ValueNumber} or {@link ValueVector} of ValueNumbers
|
|
153
152
|
* by recursively resolving the values of the arguments by calling {@link resolveIdToValue}
|
|
154
|
-
*
|
|
155
153
|
* @param resolve - Variable resolve mode
|
|
156
154
|
* @param operator - Node of the minus operator to resolve
|
|
157
155
|
* @param env - Environment to use
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { RNodeWithParent } from '../../../r-bridge/lang-4.x/ast/model/processing/decorate';
|
|
2
|
-
import type
|
|
3
|
-
import { Bottom, Top } from './r-value';
|
|
2
|
+
import { type Lift, type Value, type ValueSet, Bottom, Top } from './r-value';
|
|
4
3
|
/**
|
|
5
4
|
* Takes n potentially lifted ops and returns `Top` or `Bottom` if any is `Top` or `Bottom`.
|
|
6
5
|
*/
|
|
@@ -8,7 +7,6 @@ export declare function bottomTopGuard(...a: Lift<unknown>[]): typeof Top | type
|
|
|
8
7
|
/**
|
|
9
8
|
* Returns a value set, if a is not bottom or top, otherwise undefined.
|
|
10
9
|
* Useful when working with values returned by {@link resolveIdToValue}
|
|
11
|
-
*
|
|
12
10
|
* @param a - value set to check
|
|
13
11
|
* @returns value set if a is not top or bottom
|
|
14
12
|
*/
|
|
@@ -23,7 +23,6 @@ function bottomTopGuard(...a) {
|
|
|
23
23
|
/**
|
|
24
24
|
* Returns a value set, if a is not bottom or top, otherwise undefined.
|
|
25
25
|
* Useful when working with values returned by {@link resolveIdToValue}
|
|
26
|
-
*
|
|
27
26
|
* @param a - value set to check
|
|
28
27
|
* @returns value set if a is not top or bottom
|
|
29
28
|
*/
|
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import type { RNumberValue } from '../../../../r-bridge/lang-4.x/convert-values';
|
|
2
|
-
import type
|
|
2
|
+
import { type Lift, type ValueInterval, type ValueNumber } from '../r-value';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare function intervalFrom(start: RNumberValue | number, end?: number | RNumberValue, startInclusive?: boolean, endInclusive?: boolean): ValueInterval;
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
4
10
|
export declare function intervalFromValues(start: Lift<ValueNumber>, end?: Lift<ValueNumber<Lift<RNumberValue>>>, startInclusive?: boolean, endInclusive?: boolean): ValueInterval;
|
|
@@ -4,6 +4,9 @@ exports.intervalFrom = intervalFrom;
|
|
|
4
4
|
exports.intervalFromValues = intervalFromValues;
|
|
5
5
|
const r_value_1 = require("../r-value");
|
|
6
6
|
const scalar_consatnts_1 = require("../scalar/scalar-consatnts");
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
7
10
|
function intervalFrom(start, end = start, startInclusive = true, endInclusive = true) {
|
|
8
11
|
return intervalFromValues(typeof start === 'number' ? (0, scalar_consatnts_1.getScalarFromInteger)(start) : (0, scalar_consatnts_1.liftScalar)(start), typeof end === 'number' ? (0, scalar_consatnts_1.getScalarFromInteger)(end) : (0, scalar_consatnts_1.liftScalar)(end), startInclusive, endInclusive);
|
|
9
12
|
}
|
|
@@ -15,6 +18,9 @@ function shiftNum(v) {
|
|
|
15
18
|
return v;
|
|
16
19
|
}
|
|
17
20
|
}
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
*/
|
|
18
24
|
function intervalFromValues(start, end = start, startInclusive = true, endInclusive = true) {
|
|
19
25
|
return {
|
|
20
26
|
type: 'interval',
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Lift, type TernaryLogical, type ValueLogical } from '../r-value';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
2
5
|
export declare function liftLogical(log: Lift<TernaryLogical>): ValueLogical;
|
|
3
6
|
export declare const ValueLogicalTrue: ValueLogical;
|
|
4
7
|
export declare const ValueLogicalFalse: ValueLogical;
|
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ValueLogicalBot = exports.ValueLogicalTop = exports.ValueLogicalMaybe = exports.ValueLogicalFalse = exports.ValueLogicalTrue = void 0;
|
|
4
4
|
exports.liftLogical = liftLogical;
|
|
5
5
|
const r_value_1 = require("../r-value");
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
6
9
|
function liftLogical(log) {
|
|
7
10
|
if (log === r_value_1.Top) {
|
|
8
11
|
return exports.ValueLogicalTop;
|
|
@@ -37,6 +37,9 @@ export interface ValueString<Str extends Lift<RStringValue> = Lift<RStringValue>
|
|
|
37
37
|
type: 'string';
|
|
38
38
|
value: Str;
|
|
39
39
|
}
|
|
40
|
+
export interface ValueFunctionDefinition {
|
|
41
|
+
type: 'function-definition';
|
|
42
|
+
}
|
|
40
43
|
export interface ValueMissing {
|
|
41
44
|
type: 'missing';
|
|
42
45
|
}
|
|
@@ -45,14 +48,26 @@ export interface ValueLogical {
|
|
|
45
48
|
type: 'logical';
|
|
46
49
|
value: Lift<TernaryLogical>;
|
|
47
50
|
}
|
|
48
|
-
export type Value = Lift<ValueInterval | ValueVector | ValueSet | ValueNumber | ValueString | ValueLogical | ValueMissing>;
|
|
51
|
+
export type Value = Lift<ValueInterval | ValueVector | ValueSet | ValueNumber | ValueString | ValueLogical | ValueMissing | ValueFunctionDefinition>;
|
|
49
52
|
export type ValueType<V> = V extends {
|
|
50
53
|
type: infer T;
|
|
51
54
|
} ? T : never;
|
|
52
55
|
export type ValueTypes = ValueType<Value>;
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
*/
|
|
53
59
|
export declare function typeOfValue<V extends Value>(value: V): V['type'];
|
|
60
|
+
/** Checks whether the given value is the top value */
|
|
54
61
|
export declare function isTop<V extends Lift<unknown>>(value: V): value is typeof Top;
|
|
62
|
+
/** Checks whether the given value is the bottom value */
|
|
55
63
|
export declare function isBottom<V extends Lift<unknown>>(value: V): value is typeof Bottom;
|
|
64
|
+
/** Checks whether the given value is a proper value (neither top nor bottom) */
|
|
56
65
|
export declare function isValue<V extends Lift<unknown>>(value: V): value is Unlift<V>;
|
|
66
|
+
/**
|
|
67
|
+
* Treat a value as unlifted value, throws if it is top or bottom.
|
|
68
|
+
*/
|
|
57
69
|
export declare function asValue<V extends Lift<unknown>>(value: V): Unlift<V>;
|
|
70
|
+
/**
|
|
71
|
+
*
|
|
72
|
+
*/
|
|
58
73
|
export declare function stringifyValue(value: Lift<Value>): string;
|
|
@@ -10,20 +10,29 @@ exports.stringifyValue = stringifyValue;
|
|
|
10
10
|
const assert_1 = require("../../../util/assert");
|
|
11
11
|
exports.Top = { type: Symbol('⊤') };
|
|
12
12
|
exports.Bottom = { type: Symbol('⊥') };
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
13
16
|
function typeOfValue(value) {
|
|
14
17
|
return value.type;
|
|
15
18
|
}
|
|
19
|
+
/** Checks whether the given value is the top value */
|
|
16
20
|
// @ts-expect-error -- this is a save cast
|
|
17
21
|
function isTop(value) {
|
|
18
22
|
return value === exports.Top;
|
|
19
23
|
}
|
|
24
|
+
/** Checks whether the given value is the bottom value */
|
|
20
25
|
// @ts-expect-error -- this is a save cast
|
|
21
26
|
function isBottom(value) {
|
|
22
27
|
return value === exports.Bottom;
|
|
23
28
|
}
|
|
29
|
+
/** Checks whether the given value is a proper value (neither top nor bottom) */
|
|
24
30
|
function isValue(value) {
|
|
25
31
|
return !isTop(value) && !isBottom(value);
|
|
26
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Treat a value as unlifted value, throws if it is top or bottom.
|
|
35
|
+
*/
|
|
27
36
|
function asValue(value) {
|
|
28
37
|
(0, assert_1.guard)(isValue(value), 'Expected a value, but got a top or bottom value');
|
|
29
38
|
return value;
|
|
@@ -60,6 +69,9 @@ function renderString(value) {
|
|
|
60
69
|
return `${quote}${JSON.stringify(value.str).slice(1, -1)}${quote}`;
|
|
61
70
|
}
|
|
62
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
*
|
|
74
|
+
*/
|
|
63
75
|
function stringifyValue(value) {
|
|
64
76
|
return tryStringifyBoTop(value, v => {
|
|
65
77
|
const t = v.type;
|
|
@@ -82,6 +94,8 @@ function stringifyValue(value) {
|
|
|
82
94
|
return tryStringifyBoTop(v.value, l => l === 'maybe' ? 'maybe' : l ? 'TRUE' : 'FALSE', () => '⊤ (logical)', () => '⊥ (logical)');
|
|
83
95
|
case 'missing':
|
|
84
96
|
return '(missing)';
|
|
97
|
+
case 'function-definition':
|
|
98
|
+
return 'fn-def';
|
|
85
99
|
default:
|
|
86
100
|
(0, assert_1.assertUnreachable)(t);
|
|
87
101
|
}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Lift, type ValueNumber } from '../r-value';
|
|
2
2
|
import type { RNumberValue } from '../../../../r-bridge/lang-4.x/convert-values';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
*/
|
|
3
6
|
export declare function getScalarFromInteger(num: number, markedAsInt?: boolean, complexNumber?: boolean): ValueNumber<RNumberValue>;
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
4
10
|
export declare function liftScalar(value: Lift<RNumberValue>): ValueNumber;
|
|
5
11
|
export declare const ValueIntegerOne: ValueNumber<RNumberValue>;
|
|
6
12
|
export declare const ValueNumberComplexOne: ValueNumber<RNumberValue>;
|
|
@@ -4,6 +4,9 @@ exports.ValueIntegerBottom = exports.ValueIntegerTop = exports.ValueNumberOneHal
|
|
|
4
4
|
exports.getScalarFromInteger = getScalarFromInteger;
|
|
5
5
|
exports.liftScalar = liftScalar;
|
|
6
6
|
const r_value_1 = require("../r-value");
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
7
10
|
function getScalarFromInteger(num, markedAsInt = Number.isInteger(num), complexNumber = false) {
|
|
8
11
|
return {
|
|
9
12
|
type: 'number',
|
|
@@ -14,6 +17,9 @@ function getScalarFromInteger(num, markedAsInt = Number.isInteger(num), complexN
|
|
|
14
17
|
}
|
|
15
18
|
};
|
|
16
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
17
23
|
function liftScalar(value) {
|
|
18
24
|
return {
|
|
19
25
|
type: 'number',
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
import type
|
|
2
|
-
|
|
1
|
+
import { type Lift, type Value, type ValueSet, Top } from '../r-value';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
*/
|
|
3
5
|
export declare function setFrom<V extends Value[]>(...elements: V): Lift<ValueSet<Value[]>>;
|
|
6
|
+
/**
|
|
7
|
+
*
|
|
8
|
+
*/
|
|
4
9
|
export declare function isSet<V extends Value>(element: V): boolean;
|
|
5
10
|
export declare const ValueEmptySet: Lift<ValueSet<Value[]>>;
|
|
6
11
|
export declare const ValueSetTop: ValueSet<typeof Top>;
|