@eagleoutice/flowr 2.6.1 → 2.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +142 -39
- package/abstract-interpretation/data-frame/absint-info.d.ts +1 -1
- package/abstract-interpretation/data-frame/absint-visitor.d.ts +2 -3
- package/abstract-interpretation/data-frame/absint-visitor.js +17 -12
- package/abstract-interpretation/data-frame/dataframe-domain.d.ts +18 -12
- package/abstract-interpretation/data-frame/dataframe-domain.js +25 -13
- package/abstract-interpretation/data-frame/mappers/access-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/access-mapper.js +0 -1
- package/abstract-interpretation/data-frame/mappers/arguments.d.ts +1 -10
- package/abstract-interpretation/data-frame/mappers/arguments.js +0 -7
- package/abstract-interpretation/data-frame/mappers/assignment-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/assignment-mapper.js +0 -1
- package/abstract-interpretation/data-frame/mappers/function-mapper.d.ts +9 -10
- package/abstract-interpretation/data-frame/mappers/function-mapper.js +21 -18
- package/abstract-interpretation/data-frame/mappers/replacement-mapper.d.ts +0 -1
- package/abstract-interpretation/data-frame/mappers/replacement-mapper.js +0 -1
- package/abstract-interpretation/data-frame/resolve-args.d.ts +1 -1
- package/abstract-interpretation/data-frame/semantics.d.ts +3 -4
- package/abstract-interpretation/data-frame/semantics.js +179 -162
- package/abstract-interpretation/data-frame/shape-inference.d.ts +4 -7
- package/abstract-interpretation/data-frame/shape-inference.js +10 -12
- package/abstract-interpretation/domains/abstract-domain.d.ts +59 -18
- package/abstract-interpretation/domains/abstract-domain.js +74 -1
- package/abstract-interpretation/domains/bounded-set-domain.d.ts +37 -24
- package/abstract-interpretation/domains/bounded-set-domain.js +70 -47
- package/abstract-interpretation/domains/interval-domain.d.ts +33 -25
- package/abstract-interpretation/domains/interval-domain.js +109 -50
- package/abstract-interpretation/domains/lattice.d.ts +19 -11
- package/abstract-interpretation/domains/mapped-abstract-domain.d.ts +34 -0
- package/abstract-interpretation/domains/mapped-abstract-domain.js +189 -0
- package/abstract-interpretation/domains/positive-interval-domain.d.ts +16 -12
- package/abstract-interpretation/domains/positive-interval-domain.js +20 -11
- package/abstract-interpretation/domains/product-domain.d.ts +18 -23
- package/abstract-interpretation/domains/product-domain.js +11 -19
- package/abstract-interpretation/domains/satisfiable-domain.d.ts +29 -0
- package/abstract-interpretation/domains/satisfiable-domain.js +24 -0
- package/abstract-interpretation/domains/set-upper-bound-domain.d.ts +54 -0
- package/abstract-interpretation/domains/set-upper-bound-domain.js +197 -0
- package/abstract-interpretation/domains/singleton-domain.d.ts +24 -19
- package/abstract-interpretation/domains/singleton-domain.js +52 -37
- package/abstract-interpretation/domains/state-abstract-domain.d.ts +8 -24
- package/abstract-interpretation/domains/state-abstract-domain.js +2 -167
- package/abstract-interpretation/normalized-ast-fold.d.ts +2 -8
- package/abstract-interpretation/normalized-ast-fold.js +0 -5
- package/benchmark/slicer.d.ts +4 -7
- package/benchmark/slicer.js +27 -31
- package/benchmark/stats/print.d.ts +6 -0
- package/benchmark/stats/print.js +6 -0
- package/benchmark/stats/size-of.d.ts +0 -1
- package/benchmark/stats/size-of.js +0 -1
- package/benchmark/stats/stats.d.ts +2 -2
- package/benchmark/stopwatch.d.ts +11 -13
- package/benchmark/stopwatch.js +11 -13
- package/benchmark/summarizer/first-phase/input.d.ts +6 -0
- package/benchmark/summarizer/first-phase/input.js +6 -0
- package/benchmark/summarizer/first-phase/process.d.ts +13 -1
- package/benchmark/summarizer/first-phase/process.js +13 -1
- package/benchmark/summarizer/second-phase/graph.d.ts +5 -0
- package/benchmark/summarizer/second-phase/graph.js +5 -0
- package/benchmark/summarizer/second-phase/process.d.ts +12 -0
- package/benchmark/summarizer/second-phase/process.js +12 -0
- package/benchmark/summarizer/summarizer.d.ts +1 -2
- package/cli/benchmark-app.js +0 -2
- package/cli/common/features.d.ts +7 -1
- package/cli/common/features.js +6 -0
- package/cli/common/script.d.ts +3 -1
- package/cli/common/script.js +3 -1
- package/cli/common/scripts-info.d.ts +3 -1
- package/cli/common/scripts-info.js +3 -0
- package/cli/export-quads-app.js +1 -1
- package/cli/flowr-main-options.d.ts +3 -0
- package/cli/flowr-main-options.js +3 -0
- package/cli/repl/commands/repl-commands.d.ts +13 -0
- package/cli/repl/commands/repl-commands.js +13 -2
- package/cli/repl/commands/repl-dataflow.js +2 -1
- package/cli/repl/commands/repl-execute.d.ts +4 -0
- package/cli/repl/commands/repl-execute.js +6 -2
- package/cli/repl/commands/repl-main.d.ts +15 -9
- package/cli/repl/commands/repl-parse.js +18 -6
- package/cli/repl/commands/repl-query.js +16 -5
- package/cli/repl/core.d.ts +24 -6
- package/cli/repl/core.js +42 -30
- package/cli/repl/execute.d.ts +0 -2
- package/cli/repl/execute.js +0 -2
- package/cli/repl/parser/slice-query-parser.d.ts +14 -0
- package/cli/repl/parser/slice-query-parser.js +34 -0
- package/cli/repl/print-version.d.ts +6 -0
- package/cli/repl/print-version.js +6 -0
- package/cli/repl/server/compact.d.ts +8 -0
- package/cli/repl/server/compact.js +8 -0
- package/cli/repl/server/connection.d.ts +4 -3
- package/cli/repl/server/connection.js +5 -32
- package/cli/repl/server/messages/all-messages.d.ts +1 -3
- package/cli/repl/server/messages/all-messages.js +0 -1
- package/cli/repl/server/messages/message-analysis.d.ts +0 -2
- package/cli/repl/server/messages/message-query.d.ts +1 -1
- package/cli/repl/server/messages/message-repl.d.ts +0 -1
- package/cli/repl/server/send.d.ts +6 -0
- package/cli/repl/server/send.js +6 -0
- package/cli/repl/server/server.d.ts +1 -1
- package/cli/repl/server/validate.d.ts +10 -1
- package/cli/repl/server/validate.js +9 -0
- package/cli/run-script.d.ts +1 -2
- package/cli/run-script.js +0 -1
- package/cli/script-core/statistics-core.d.ts +3 -0
- package/cli/script-core/statistics-core.js +3 -0
- package/cli/script-core/statistics-helper-core.d.ts +4 -1
- package/cli/script-core/statistics-helper-core.js +5 -1
- package/cli/script-core/summarizer-core.d.ts +3 -0
- package/cli/script-core/summarizer-core.js +3 -0
- package/cli/slicer-app.js +3 -4
- package/cli/summarizer-app.d.ts +2 -3
- package/cli/summarizer-app.js +2 -3
- package/cli/wiki.d.ts +4 -0
- package/cli/wiki.js +165 -0
- package/config.d.ts +21 -3
- package/config.js +21 -0
- package/control-flow/basic-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/basic-cfg-guided-visitor.js +0 -1
- package/control-flow/cfg-dead-code.js +13 -3
- package/control-flow/cfg-simplification.d.ts +5 -2
- package/control-flow/cfg-simplification.js +3 -0
- package/control-flow/cfg-to-basic-blocks.d.ts +1 -1
- package/control-flow/control-flow-graph.d.ts +20 -12
- package/control-flow/control-flow-graph.js +16 -4
- package/control-flow/dfg-cfg-guided-visitor.d.ts +2 -3
- package/control-flow/diff-cfg.d.ts +3 -5
- package/control-flow/diff-cfg.js +0 -1
- package/control-flow/extract-cfg.d.ts +12 -9
- package/control-flow/extract-cfg.js +44 -7
- package/control-flow/happens-before.d.ts +1 -1
- package/control-flow/semantic-cfg-guided-visitor.d.ts +4 -33
- package/control-flow/semantic-cfg-guided-visitor.js +0 -28
- package/control-flow/simple-visitor.d.ts +1 -3
- package/control-flow/simple-visitor.js +2 -4
- package/control-flow/syntax-cfg-guided-visitor.d.ts +1 -2
- package/control-flow/useless-loop.d.ts +3 -6
- package/control-flow/useless-loop.js +16 -10
- package/core/pipeline-executor.d.ts +11 -22
- package/core/pipeline-executor.js +13 -25
- package/core/print/dataflow-printer.d.ts +19 -0
- package/core/print/dataflow-printer.js +19 -0
- package/core/print/normalize-printer.d.ts +21 -1
- package/core/print/normalize-printer.js +21 -1
- package/core/print/parse-printer.d.ts +6 -1
- package/core/print/parse-printer.js +5 -0
- package/core/print/print.d.ts +0 -1
- package/core/print/print.js +0 -1
- package/core/print/slice-diff-ansi.d.ts +3 -0
- package/core/print/slice-diff-ansi.js +3 -0
- package/core/steps/all/core/00-parse.d.ts +2 -2
- package/core/steps/all/core/00-parse.js +1 -1
- package/core/steps/all/core/01-parse-tree-sitter.d.ts +1 -11
- package/core/steps/all/core/10-normalize.d.ts +3 -6
- package/core/steps/all/core/10-normalize.js +1 -13
- package/core/steps/all/core/11-normalize-tree-sitter.d.ts +5 -5
- package/core/steps/all/core/11-normalize-tree-sitter.js +2 -3
- package/core/steps/all/core/20-dataflow.d.ts +3 -4
- package/core/steps/all/core/20-dataflow.js +2 -2
- package/core/steps/all/static-slicing/00-slice.d.ts +1 -2
- package/core/steps/all/static-slicing/00-slice.js +1 -1
- package/core/steps/all/static-slicing/10-reconstruct.d.ts +8 -0
- package/core/steps/all/static-slicing/10-reconstruct.js +4 -1
- package/core/steps/pipeline/create-pipeline.d.ts +1 -1
- package/core/steps/pipeline/default-pipelines.d.ts +94 -95
- package/core/steps/pipeline/default-pipelines.js +8 -12
- package/core/steps/pipeline/pipeline.d.ts +1 -8
- package/core/steps/pipeline/pipeline.js +1 -3
- package/core/steps/pipeline-step.d.ts +0 -1
- package/core/steps/pipeline-step.js +0 -1
- package/dataflow/cluster.d.ts +3 -0
- package/dataflow/cluster.js +3 -0
- package/dataflow/environments/append.d.ts +1 -1
- package/dataflow/environments/built-in-config.d.ts +1 -5
- package/dataflow/environments/built-in-config.js +0 -1
- package/dataflow/environments/built-in.d.ts +10 -5
- package/dataflow/environments/built-in.js +6 -1
- package/dataflow/environments/clone.d.ts +1 -2
- package/dataflow/environments/clone.js +12 -2
- package/dataflow/environments/default-builtin-config.d.ts +3 -0
- package/dataflow/environments/default-builtin-config.js +4 -1
- package/dataflow/environments/diff.d.ts +11 -2
- package/dataflow/environments/diff.js +11 -2
- package/dataflow/environments/environment.d.ts +3 -3
- package/dataflow/environments/environment.js +8 -6
- package/dataflow/environments/identifier.d.ts +0 -4
- package/dataflow/environments/identifier.js +0 -1
- package/dataflow/environments/overwrite.d.ts +1 -2
- package/dataflow/environments/overwrite.js +3 -16
- package/dataflow/environments/resolve-by-name.d.ts +4 -4
- package/dataflow/environments/resolve-by-name.js +3 -2
- package/dataflow/environments/scoping.d.ts +9 -2
- package/dataflow/environments/scoping.js +8 -1
- package/dataflow/eval/resolve/alias-tracking.d.ts +4 -10
- package/dataflow/eval/resolve/alias-tracking.js +11 -14
- package/dataflow/eval/resolve/resolve-argument.d.ts +1 -1
- package/dataflow/eval/resolve/resolve-argument.js +2 -2
- package/dataflow/eval/resolve/resolve.d.ts +1 -7
- package/dataflow/eval/resolve/resolve.js +0 -5
- package/dataflow/eval/values/general.d.ts +1 -3
- package/dataflow/eval/values/general.js +0 -1
- package/dataflow/eval/values/intervals/interval-constants.d.ts +7 -1
- package/dataflow/eval/values/intervals/interval-constants.js +6 -0
- package/dataflow/eval/values/logical/logical-constants.d.ts +4 -1
- package/dataflow/eval/values/logical/logical-constants.js +3 -0
- package/dataflow/eval/values/r-value.d.ts +12 -0
- package/dataflow/eval/values/r-value.js +12 -0
- package/dataflow/eval/values/scalar/scalar-consatnts.d.ts +7 -1
- package/dataflow/eval/values/scalar/scalar-consatnts.js +6 -0
- package/dataflow/eval/values/sets/set-constants.d.ts +7 -2
- package/dataflow/eval/values/sets/set-constants.js +6 -0
- package/dataflow/eval/values/string/string-constants.d.ts +16 -1
- package/dataflow/eval/values/string/string-constants.js +15 -0
- package/dataflow/eval/values/vectors/vector-constants.d.ts +1 -1
- package/dataflow/extractor.d.ts +3 -4
- package/dataflow/extractor.js +25 -22
- package/dataflow/graph/dataflowgraph-builder.d.ts +20 -38
- package/dataflow/graph/dataflowgraph-builder.js +6 -23
- package/dataflow/graph/diff-dataflow-graph.d.ts +16 -6
- package/dataflow/graph/diff-dataflow-graph.js +12 -1
- package/dataflow/graph/edge.d.ts +9 -0
- package/dataflow/graph/edge.js +9 -0
- package/dataflow/graph/graph.d.ts +9 -28
- package/dataflow/graph/graph.js +4 -28
- package/dataflow/graph/invert-dfg.d.ts +3 -0
- package/dataflow/graph/invert-dfg.js +3 -0
- package/dataflow/graph/quads.d.ts +1 -1
- package/dataflow/graph/unknown-replacement.d.ts +8 -0
- package/dataflow/graph/unknown-replacement.js +8 -0
- package/dataflow/graph/unknown-side-effect.d.ts +8 -0
- package/dataflow/graph/unknown-side-effect.js +8 -0
- package/dataflow/graph/vertex.d.ts +9 -9
- package/dataflow/graph/vertex.js +9 -1
- package/dataflow/info.d.ts +16 -10
- package/dataflow/info.js +27 -1
- package/dataflow/internal/linker.d.ts +25 -9
- package/dataflow/internal/linker.js +30 -11
- package/dataflow/internal/process/functions/call/argument/make-argument.d.ts +6 -0
- package/dataflow/internal/process/functions/call/argument/make-argument.js +6 -1
- package/dataflow/internal/process/functions/call/argument/unpack-argument.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-access.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-access.js +6 -4
- package/dataflow/internal/process/functions/call/built-in/built-in-apply.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-apply.js +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-assignment.d.ts +2 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-assignment.js +4 -4
- package/dataflow/internal/process/functions/call/built-in/built-in-eval.d.ts +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-eval.js +9 -6
- package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-expression-list.js +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-for-loop.js +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.d.ts +10 -4
- package/dataflow/internal/process/functions/call/built-in/built-in-function-definition.js +7 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-get.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-get.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-if-then-else.js +5 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-library.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-library.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-list.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-list.js +2 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-pipe.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-pipe.js +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-quote.d.ts +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-quote.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.d.ts +10 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-repeat-loop.js +8 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-replacement.d.ts +6 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-replacement.js +5 -3
- package/dataflow/internal/process/functions/call/built-in/built-in-rm.d.ts +4 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-rm.js +3 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-source.d.ts +34 -12
- package/dataflow/internal/process/functions/call/built-in/built-in-source.js +90 -68
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.d.ts +5 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-special-bin-op.js +5 -0
- package/dataflow/internal/process/functions/call/built-in/built-in-vector.d.ts +1 -1
- package/dataflow/internal/process/functions/call/built-in/built-in-vector.js +2 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.d.ts +5 -2
- package/dataflow/internal/process/functions/call/built-in/built-in-while-loop.js +4 -1
- package/dataflow/internal/process/functions/call/common.d.ts +11 -5
- package/dataflow/internal/process/functions/call/common.js +9 -3
- package/dataflow/internal/process/functions/call/default-call-handling.d.ts +5 -0
- package/dataflow/internal/process/functions/call/default-call-handling.js +5 -0
- package/dataflow/internal/process/functions/call/known-call-handling.d.ts +12 -5
- package/dataflow/internal/process/functions/call/known-call-handling.js +10 -3
- package/dataflow/internal/process/functions/call/named-call-handling.d.ts +7 -1
- package/dataflow/internal/process/functions/call/named-call-handling.js +10 -4
- package/dataflow/internal/process/functions/call/unnamed-call-handling.d.ts +4 -1
- package/dataflow/internal/process/functions/call/unnamed-call-handling.js +3 -0
- package/dataflow/internal/process/functions/process-argument.d.ts +8 -2
- package/dataflow/internal/process/functions/process-argument.js +6 -0
- package/dataflow/internal/process/functions/process-parameter.d.ts +5 -2
- package/dataflow/internal/process/functions/process-parameter.js +7 -4
- package/dataflow/internal/process/process-symbol.d.ts +3 -0
- package/dataflow/internal/process/process-symbol.js +3 -0
- package/dataflow/internal/process/process-uninteresting-leaf.d.ts +3 -0
- package/dataflow/internal/process/process-uninteresting-leaf.js +3 -0
- package/dataflow/internal/process/process-value.d.ts +3 -0
- package/dataflow/internal/process/process-value.js +3 -0
- package/dataflow/origin/dfg-get-origin.d.ts +0 -2
- package/dataflow/origin/dfg-get-symbol-refs.d.ts +6 -8
- package/dataflow/origin/dfg-get-symbol-refs.js +7 -9
- package/dataflow/processor.d.ts +6 -12
- package/dataflow/processor.js +0 -1
- package/documentation/data/dfg/doc-data-dfg-util.d.ts +6 -2
- package/documentation/data/dfg/doc-data-dfg-util.js +6 -0
- package/documentation/data/faq/faqs.d.ts +5 -0
- package/documentation/data/faq/faqs.js +87 -0
- package/documentation/data/faq/recommended-configs.d.ts +36 -0
- package/documentation/data/faq/recommended-configs.js +40 -0
- package/documentation/data/faq/wiki-faq-store.d.ts +19 -0
- package/documentation/data/faq/wiki-faq-store.js +83 -0
- package/documentation/data/server/doc-data-server-messages.d.ts +3 -0
- package/documentation/data/server/doc-data-server-messages.js +5 -64
- package/documentation/doc-capabilities.d.ts +9 -0
- package/documentation/{print-capabilities-markdown.js → doc-capabilities.js} +18 -21
- package/documentation/doc-readme.d.ts +9 -0
- package/documentation/{print-readme.js → doc-readme.js} +136 -35
- package/documentation/doc-util/doc-auto-gen.d.ts +6 -0
- package/documentation/doc-util/doc-auto-gen.js +6 -0
- package/documentation/doc-util/doc-benchmarks.d.ts +14 -0
- package/documentation/doc-util/doc-benchmarks.js +14 -0
- package/documentation/doc-util/doc-cfg.d.ts +7 -1
- package/documentation/doc-util/doc-cfg.js +14 -8
- package/documentation/doc-util/doc-cli-option.d.ts +9 -0
- package/documentation/doc-util/doc-cli-option.js +9 -0
- package/documentation/doc-util/doc-code.d.ts +24 -0
- package/documentation/doc-util/doc-code.js +24 -0
- package/documentation/doc-util/doc-dfg.d.ts +12 -6
- package/documentation/doc-util/doc-dfg.js +19 -10
- package/documentation/doc-util/doc-env.d.ts +3 -0
- package/documentation/doc-util/doc-env.js +3 -0
- package/documentation/doc-util/doc-escape.d.ts +6 -1
- package/documentation/doc-util/doc-escape.js +11 -1
- package/documentation/doc-util/doc-files.d.ts +11 -0
- package/documentation/doc-util/doc-files.js +15 -4
- package/documentation/doc-util/doc-general.d.ts +26 -0
- package/documentation/doc-util/doc-general.js +26 -0
- package/documentation/doc-util/doc-normalized-ast.d.ts +14 -3
- package/documentation/doc-util/doc-normalized-ast.js +16 -7
- package/documentation/doc-util/doc-query.d.ts +26 -3
- package/documentation/doc-util/doc-query.js +34 -12
- package/documentation/doc-util/doc-repl.d.ts +6 -0
- package/documentation/doc-util/doc-repl.js +6 -0
- package/documentation/doc-util/doc-search.d.ts +3 -18
- package/documentation/doc-util/doc-search.js +6 -62
- package/documentation/doc-util/doc-server-message.d.ts +18 -6
- package/documentation/doc-util/doc-server-message.js +17 -5
- package/documentation/doc-util/doc-structure.d.ts +9 -0
- package/documentation/doc-util/doc-structure.js +10 -1
- package/documentation/doc-util/doc-types.d.ts +90 -11
- package/documentation/doc-util/doc-types.js +128 -39
- package/documentation/index.d.ts +9 -9
- package/documentation/index.js +9 -9
- package/documentation/issue-linting-rule.d.ts +9 -0
- package/documentation/{print-linter-issue.js → issue-linting-rule.js} +20 -23
- package/documentation/wiki-analyzer.d.ts +9 -0
- package/documentation/wiki-analyzer.js +412 -0
- package/documentation/wiki-cfg.d.ts +9 -0
- package/documentation/{print-cfg-wiki.js → wiki-cfg.js} +144 -160
- package/documentation/wiki-core.d.ts +14 -0
- package/documentation/{print-core-wiki.js → wiki-core.js} +167 -175
- package/documentation/wiki-dataflow-graph.d.ts +9 -0
- package/documentation/{print-dataflow-graph-wiki.js → wiki-dataflow-graph.js} +145 -175
- package/documentation/wiki-engine.d.ts +9 -0
- package/documentation/{print-engines-wiki.js → wiki-engine.js} +27 -42
- package/documentation/wiki-faq.d.ts +8 -0
- package/documentation/wiki-faq.js +22 -0
- package/documentation/wiki-interface.d.ts +9 -0
- package/documentation/{print-interface-wiki.js → wiki-interface.js} +60 -57
- package/documentation/wiki-linter.d.ts +9 -0
- package/documentation/{print-linter-wiki.js → wiki-linter.js} +52 -48
- package/documentation/wiki-linting-and-testing.d.ts +9 -0
- package/documentation/{print-linting-and-testing-wiki.js → wiki-linting-and-testing.js} +25 -32
- package/documentation/wiki-mk/doc-context.d.ts +186 -0
- package/documentation/wiki-mk/doc-context.js +84 -0
- package/documentation/wiki-mk/doc-maker.d.ts +95 -0
- package/documentation/wiki-mk/doc-maker.js +133 -0
- package/documentation/wiki-normalized-ast.d.ts +9 -0
- package/documentation/{print-normalized-ast-wiki.js → wiki-normalized-ast.js} +64 -47
- package/documentation/wiki-onboarding.d.ts +8 -0
- package/documentation/{print-onboarding-wiki.js → wiki-onboarding.js} +18 -15
- package/documentation/wiki-query.d.ts +9 -0
- package/documentation/{print-query-wiki.js → wiki-query.js} +65 -80
- package/documentation/wiki-search.d.ts +9 -0
- package/documentation/wiki-search.js +61 -0
- package/engines.d.ts +1 -1
- package/linter/linter-executor.d.ts +6 -3
- package/linter/linter-executor.js +6 -2
- package/linter/linter-format.d.ts +10 -2
- package/linter/linter-format.js +8 -0
- package/linter/linter-rules.d.ts +13 -17
- package/linter/rules/absolute-path.d.ts +4 -6
- package/linter/rules/absolute-path.js +2 -2
- package/linter/rules/dataframe-access-validation.d.ts +4 -5
- package/linter/rules/dataframe-access-validation.js +21 -19
- package/linter/rules/dead-code.d.ts +2 -2
- package/linter/rules/deprecated-functions.d.ts +2 -6
- package/linter/rules/file-path-validity.d.ts +2 -3
- package/linter/rules/file-path-validity.js +4 -4
- package/linter/rules/function-finder-util.d.ts +2 -7
- package/linter/rules/naming-convention.d.ts +15 -4
- package/linter/rules/naming-convention.js +14 -2
- package/linter/rules/network-functions.d.ts +2 -2
- package/linter/rules/network-functions.js +1 -1
- package/linter/rules/seeded-randomness.d.ts +4 -4
- package/linter/rules/seeded-randomness.js +33 -13
- package/linter/rules/unused-definition.d.ts +3 -4
- package/linter/rules/useless-loop.d.ts +3 -4
- package/linter/rules/useless-loop.js +2 -2
- package/package.json +7 -18
- package/project/cache/flowr-analyzer-cache.d.ts +9 -19
- package/project/cache/flowr-analyzer-cache.js +17 -44
- package/project/cache/flowr-analyzer-controlflow-cache.d.ts +34 -0
- package/project/cache/flowr-analyzer-controlflow-cache.js +79 -0
- package/project/context/flowr-analyzer-context.d.ts +31 -9
- package/project/context/flowr-analyzer-context.js +48 -4
- package/project/context/flowr-analyzer-dependencies-context.d.ts +0 -1
- package/project/context/flowr-analyzer-files-context.d.ts +63 -15
- package/project/context/flowr-analyzer-files-context.js +110 -39
- package/project/context/flowr-file.d.ts +32 -11
- package/project/context/flowr-file.js +30 -9
- package/project/flowr-analyzer-builder.d.ts +23 -31
- package/project/flowr-analyzer-builder.js +35 -74
- package/project/flowr-analyzer.d.ts +79 -29
- package/project/flowr-analyzer.js +59 -15
- package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.d.ts +8 -2
- package/project/plugins/file-plugins/flowr-analyzer-description-file-plugin.js +13 -5
- package/project/plugins/file-plugins/flowr-analyzer-file-plugin.d.ts +3 -3
- package/project/plugins/file-plugins/flowr-analyzer-file-plugin.js +11 -5
- package/project/plugins/file-plugins/flowr-description-file.d.ts +3 -5
- package/project/plugins/file-plugins/flowr-description-file.js +0 -1
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.d.ts +22 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-jupyter-file-plugin.js +33 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.d.ts +22 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-qmd-file-plugin.js +33 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.d.ts +22 -0
- package/project/plugins/file-plugins/notebooks/flowr-analyzer-rmd-file-plugin.js +33 -0
- package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.d.ts +20 -0
- package/project/plugins/file-plugins/notebooks/flowr-jupyter-file.js +42 -0
- package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.d.ts +59 -0
- package/project/plugins/file-plugins/notebooks/flowr-rmarkdown-file.js +132 -0
- package/project/plugins/file-plugins/notebooks/notebook.d.ts +0 -0
- package/project/plugins/file-plugins/notebooks/notebook.js +2 -0
- package/project/plugins/flowr-analyzer-plugin-defaults.d.ts +5 -0
- package/project/plugins/flowr-analyzer-plugin-defaults.js +23 -0
- package/project/plugins/flowr-analyzer-plugin.d.ts +2 -0
- package/project/plugins/flowr-analyzer-plugin.js +2 -0
- package/project/plugins/loading-order-plugins/flowr-analyzer-loading-order-description-file-plugin.js +1 -1
- package/project/plugins/package-version-plugins/flowr-analyzer-package-versions-description-file-plugin.js +1 -1
- package/project/plugins/plugin-registry.d.ts +34 -0
- package/project/plugins/plugin-registry.js +62 -0
- package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.d.ts +1 -1
- package/project/plugins/project-discovery/flowr-analyzer-project-discovery-plugin.js +7 -1
- package/queries/base-query-format.d.ts +2 -2
- package/queries/catalog/call-context-query/call-context-query-executor.d.ts +3 -0
- package/queries/catalog/call-context-query/call-context-query-executor.js +7 -2
- package/queries/catalog/call-context-query/call-context-query-format.d.ts +3 -3
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.d.ts +16 -4
- package/queries/catalog/call-context-query/identify-link-to-last-call-relation.js +34 -18
- package/queries/catalog/cluster-query/cluster-query-executor.d.ts +3 -0
- package/queries/catalog/cluster-query/cluster-query-executor.js +3 -0
- package/queries/catalog/cluster-query/cluster-query-format.d.ts +1 -1
- package/queries/catalog/config-query/config-query-executor.d.ts +3 -0
- package/queries/catalog/config-query/config-query-executor.js +3 -0
- package/queries/catalog/config-query/config-query-format.d.ts +5 -2
- package/queries/catalog/config-query/config-query-format.js +13 -16
- package/queries/catalog/control-flow-query/control-flow-query-executor.d.ts +3 -0
- package/queries/catalog/control-flow-query/control-flow-query-executor.js +3 -0
- package/queries/catalog/control-flow-query/control-flow-query-format.d.ts +3 -3
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.d.ts +3 -0
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-executor.js +3 -0
- package/queries/catalog/dataflow-lens-query/dataflow-lens-query-format.d.ts +1 -1
- package/queries/catalog/dataflow-query/dataflow-query-executor.d.ts +3 -0
- package/queries/catalog/dataflow-query/dataflow-query-executor.js +3 -0
- package/queries/catalog/dataflow-query/dataflow-query-format.d.ts +1 -1
- package/queries/catalog/dependencies-query/dependencies-query-executor.d.ts +4 -1
- package/queries/catalog/dependencies-query/dependencies-query-executor.js +7 -4
- package/queries/catalog/dependencies-query/dependencies-query-format.d.ts +4 -1
- package/queries/catalog/dependencies-query/dependencies-query-format.js +5 -2
- package/queries/catalog/df-shape-query/df-shape-query-executor.d.ts +4 -1
- package/queries/catalog/df-shape-query/df-shape-query-executor.js +8 -4
- package/queries/catalog/df-shape-query/df-shape-query-format.d.ts +10 -3
- package/queries/catalog/df-shape-query/df-shape-query-format.js +25 -5
- package/queries/catalog/happens-before-query/happens-before-query-executor.d.ts +4 -0
- package/queries/catalog/happens-before-query/happens-before-query-executor.js +4 -0
- package/queries/catalog/happens-before-query/happens-before-query-format.d.ts +1 -1
- package/queries/catalog/id-map-query/id-map-query-executor.d.ts +3 -0
- package/queries/catalog/id-map-query/id-map-query-executor.js +3 -0
- package/queries/catalog/id-map-query/id-map-query-format.d.ts +1 -1
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.d.ts +3 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-executor.js +3 -0
- package/queries/catalog/inspect-higher-order-query/inspect-higher-order-query-format.d.ts +2 -2
- package/queries/catalog/linter-query/linter-query-executor.d.ts +4 -0
- package/queries/catalog/linter-query/linter-query-executor.js +4 -0
- package/queries/catalog/linter-query/linter-query-format.d.ts +12 -3
- package/queries/catalog/linter-query/linter-query-format.js +80 -2
- package/queries/catalog/location-map-query/location-map-query-executor.d.ts +4 -0
- package/queries/catalog/location-map-query/location-map-query-executor.js +7 -2
- package/queries/catalog/location-map-query/location-map-query-format.d.ts +7 -1
- package/queries/catalog/location-map-query/location-map-query-format.js +12 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.d.ts +3 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-executor.js +3 -0
- package/queries/catalog/normalized-ast-query/normalized-ast-query-format.d.ts +1 -1
- package/queries/catalog/origin-query/origin-query-executor.d.ts +7 -1
- package/queries/catalog/origin-query/origin-query-executor.js +6 -0
- package/queries/catalog/origin-query/origin-query-format.d.ts +7 -1
- package/queries/catalog/origin-query/origin-query-format.js +17 -1
- package/queries/catalog/project-query/project-query-executor.d.ts +3 -0
- package/queries/catalog/project-query/project-query-executor.js +6 -1
- package/queries/catalog/project-query/project-query-format.d.ts +1 -1
- package/queries/catalog/resolve-value-query/resolve-value-query-executor.d.ts +6 -0
- package/queries/catalog/resolve-value-query/resolve-value-query-executor.js +6 -0
- package/queries/catalog/resolve-value-query/resolve-value-query-format.d.ts +7 -1
- package/queries/catalog/resolve-value-query/resolve-value-query-format.js +19 -1
- package/queries/catalog/search-query/search-query-executor.d.ts +3 -0
- package/queries/catalog/search-query/search-query-executor.js +3 -0
- package/queries/catalog/search-query/search-query-format.d.ts +1 -1
- package/queries/catalog/static-slice-query/static-slice-query-executor.d.ts +9 -0
- package/queries/catalog/static-slice-query/static-slice-query-executor.js +10 -1
- package/queries/catalog/static-slice-query/static-slice-query-format.d.ts +7 -1
- package/queries/catalog/static-slice-query/static-slice-query-format.js +30 -1
- package/queries/query-print.d.ts +20 -4
- package/queries/query-print.js +18 -2
- package/queries/query.d.ts +93 -55
- package/queries/query.js +55 -23
- package/queries/virtual-query/virtual-queries.d.ts +1 -2
- package/r-bridge/data/get.d.ts +6 -0
- package/r-bridge/data/get.js +6 -0
- package/r-bridge/lang-4.x/ast/model/collect.d.ts +2 -2
- package/r-bridge/lang-4.x/ast/model/collect.js +4 -1
- package/r-bridge/lang-4.x/ast/model/model.d.ts +8 -11
- package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-project.d.ts +29 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-project.js +15 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +3 -0
- package/r-bridge/lang-4.x/ast/model/operators.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +11 -14
- package/r-bridge/lang-4.x/ast/model/processing/decorate.js +30 -17
- package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/model/processing/node-id.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/node-id.js +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +1 -2
- package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/processing/visitor.js +0 -1
- package/r-bridge/lang-4.x/ast/model/type.d.ts +6 -5
- package/r-bridge/lang-4.x/ast/model/type.js +6 -5
- package/r-bridge/lang-4.x/ast/model/versions.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/model/versions.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/json/format.js +1 -1
- package/r-bridge/lang-4.x/ast/parser/json/parser.d.ts +12 -12
- package/r-bridge/lang-4.x/ast/parser/json/parser.js +11 -11
- package/r-bridge/lang-4.x/ast/parser/main/internal/control/normalize-if-then.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/expression/normalize-expression.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-argument.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.d.ts +1 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-call.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-definition.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/functions/normalize-parameter.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-break.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.d.ts +4 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-for.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-next.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-repeat.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.d.ts +4 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/loops/normalize-while.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/normalize-access.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-binary.d.ts +1 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/operators/normalize-unary.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-comment.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/other/normalize-line-directive.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-delimiter.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.d.ts +9 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-expressions.js +9 -0
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-root.d.ts +4 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-root.js +20 -11
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.d.ts +1 -3
- package/r-bridge/lang-4.x/ast/parser/main/internal/structure/normalize-single-node.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.d.ts +1 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-number.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.d.ts +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-string.js +0 -1
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.d.ts +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/internal/values/normalize-symbol.js +0 -2
- package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.d.ts +14 -5
- package/r-bridge/lang-4.x/ast/parser/main/normalize-meta.js +13 -6
- package/r-bridge/lang-4.x/convert-values.d.ts +12 -1
- package/r-bridge/lang-4.x/convert-values.js +12 -1
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.d.ts +7 -2
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-executor.js +18 -0
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.d.ts +15 -2
- package/r-bridge/lang-4.x/tree-sitter/tree-sitter-normalize.js +62 -24
- package/r-bridge/parser.d.ts +43 -12
- package/r-bridge/parser.js +27 -13
- package/r-bridge/retriever.d.ts +25 -16
- package/r-bridge/retriever.js +29 -5
- package/r-bridge/shell-executor.d.ts +3 -3
- package/r-bridge/shell-executor.js +6 -1
- package/r-bridge/shell.d.ts +24 -23
- package/r-bridge/shell.js +37 -31
- package/reconstruct/auto-select/auto-select-defaults.d.ts +0 -2
- package/reconstruct/auto-select/magic-comments.d.ts +1 -2
- package/reconstruct/auto-select/magic-comments.js +2 -3
- package/reconstruct/reconstruct.d.ts +18 -12
- package/reconstruct/reconstruct.js +19 -10
- package/search/flowr-search-builder.d.ts +12 -5
- package/search/flowr-search-builder.js +7 -2
- package/search/flowr-search-executor.d.ts +3 -3
- package/search/flowr-search-filters.d.ts +14 -1
- package/search/flowr-search-filters.js +13 -0
- package/search/flowr-search-printer.d.ts +6 -0
- package/search/flowr-search-printer.js +6 -0
- package/search/flowr-search-traverse.d.ts +1 -1
- package/search/flowr-search.d.ts +15 -3
- package/search/search-executor/search-enrichers.d.ts +16 -6
- package/search/search-executor/search-enrichers.js +4 -3
- package/search/search-executor/search-generators.d.ts +19 -10
- package/search/search-executor/search-generators.js +57 -5
- package/search/search-executor/search-mappers.d.ts +8 -5
- package/search/search-executor/search-mappers.js +3 -0
- package/search/search-executor/search-transformer.d.ts +19 -16
- package/search/search-executor/search-transformer.js +3 -0
- package/slicing/criterion/collect-all.d.ts +13 -12
- package/slicing/criterion/collect-all.js +1 -1
- package/slicing/criterion/parse.d.ts +4 -2
- package/slicing/criterion/parse.js +8 -6
- package/slicing/static/fingerprint.d.ts +9 -1
- package/slicing/static/fingerprint.js +8 -0
- package/slicing/static/slice-call.d.ts +2 -2
- package/slicing/static/static-slicer.d.ts +8 -4
- package/slicing/static/static-slicer.js +5 -1
- package/slicing/static/visiting-queue.d.ts +1 -1
- package/statistics/features/common-syntax-probability.d.ts +10 -1
- package/statistics/features/common-syntax-probability.js +9 -0
- package/statistics/features/feature.d.ts +0 -4
- package/statistics/features/feature.js +0 -1
- package/statistics/features/post-processing.d.ts +6 -0
- package/statistics/features/post-processing.js +6 -0
- package/statistics/features/supported/assignments/assignments.js +1 -1
- package/statistics/features/supported/assignments/post-process.d.ts +3 -0
- package/statistics/features/supported/assignments/post-process.js +3 -0
- package/statistics/features/supported/comments/post-process.d.ts +3 -0
- package/statistics/features/supported/comments/post-process.js +3 -0
- package/statistics/features/supported/control-flow/control-flow.js +1 -1
- package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
- package/statistics/features/supported/control-flow/post-process.js +3 -0
- package/statistics/features/supported/data-access/data-access.d.ts +1 -1
- package/statistics/features/supported/data-access/data-access.js +1 -1
- package/statistics/features/supported/data-access/post-process.d.ts +3 -0
- package/statistics/features/supported/data-access/post-process.js +3 -0
- package/statistics/features/supported/defined-functions/defined-functions.d.ts +1 -1
- package/statistics/features/supported/defined-functions/defined-functions.js +1 -1
- package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
- package/statistics/features/supported/expression-list/post-process.js +3 -0
- package/statistics/features/supported/expression-list/statistics-expression-list.js +1 -1
- package/statistics/features/supported/loops/loops.js +1 -1
- package/statistics/features/supported/loops/post-process.d.ts +3 -0
- package/statistics/features/supported/loops/post-process.js +3 -0
- package/statistics/features/supported/used-functions/used-functions.d.ts +1 -1
- package/statistics/features/supported/used-functions/used-functions.js +1 -1
- package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
- package/statistics/features/supported/used-packages/post-process.js +3 -0
- package/statistics/features/supported/values/post-process.d.ts +3 -0
- package/statistics/features/supported/values/post-process.js +3 -0
- package/statistics/features/supported/variables/post-process.d.ts +7 -1
- package/statistics/features/supported/variables/post-process.js +6 -0
- package/statistics/features/supported/variables/variables.js +1 -1
- package/statistics/meta-statistics.d.ts +8 -9
- package/statistics/output/file-provider.d.ts +5 -6
- package/statistics/output/file-provider.js +5 -6
- package/statistics/output/print-stats.d.ts +13 -1
- package/statistics/output/print-stats.js +12 -0
- package/statistics/output/statistics-file.d.ts +1 -2
- package/statistics/output/statistics-file.js +0 -1
- package/statistics/statistics.d.ts +3 -4
- package/statistics/statistics.js +4 -4
- package/statistics/summarizer/auto-detect.d.ts +3 -0
- package/statistics/summarizer/auto-detect.js +3 -0
- package/statistics/summarizer/post-process/clusterer.d.ts +3 -4
- package/statistics/summarizer/post-process/clusterer.js +0 -2
- package/statistics/summarizer/post-process/file-based-count.d.ts +0 -1
- package/statistics/summarizer/post-process/file-based-count.js +0 -1
- package/statistics/summarizer/post-process/histogram.d.ts +0 -2
- package/statistics/summarizer/post-process/histogram.js +0 -2
- package/statistics/summarizer/post-process/post-process-output.d.ts +2 -4
- package/statistics/summarizer/post-process/post-process-output.js +0 -3
- package/statistics/summarizer/second-phase/process.d.ts +5 -3
- package/statistics/summarizer/second-phase/process.js +3 -1
- package/statistics/summarizer/summarizer.d.ts +1 -2
- package/util/assert.d.ts +56 -2
- package/util/assert.js +56 -2
- package/util/collections/arrays.d.ts +10 -5
- package/util/collections/arrays.js +10 -5
- package/util/collections/defaultmap.d.ts +11 -11
- package/util/collections/defaultmap.js +11 -11
- package/util/containers.d.ts +2 -7
- package/util/containers.js +0 -5
- package/util/diff-graph.d.ts +0 -1
- package/util/diff-graph.js +0 -1
- package/util/diff.d.ts +3 -1
- package/util/diff.js +3 -1
- package/util/files.d.ts +12 -12
- package/util/files.js +11 -11
- package/util/html-hover-over.d.ts +5 -0
- package/util/html-hover-over.js +5 -0
- package/util/json.d.ts +13 -0
- package/util/json.js +13 -0
- package/util/log.d.ts +2 -2
- package/util/log.js +2 -2
- package/util/mermaid/ast.d.ts +7 -3
- package/util/mermaid/ast.js +39 -8
- package/util/mermaid/cfg.d.ts +1 -1
- package/util/mermaid/cfg.js +1 -1
- package/util/mermaid/dfg.d.ts +12 -4
- package/util/mermaid/dfg.js +9 -1
- package/util/mermaid/mermaid.d.ts +6 -1
- package/util/mermaid/mermaid.js +6 -1
- package/util/numbers.d.ts +7 -0
- package/util/numbers.js +7 -0
- package/util/objects.d.ts +0 -2
- package/util/os.d.ts +3 -0
- package/util/os.js +3 -0
- package/util/parallel.d.ts +4 -4
- package/util/parallel.js +4 -4
- package/util/prefix.d.ts +0 -1
- package/util/prefix.js +0 -1
- package/util/quads.d.ts +14 -17
- package/util/quads.js +3 -5
- package/util/r-value.d.ts +10 -1
- package/util/r-value.js +21 -0
- package/util/random.d.ts +3 -0
- package/util/random.js +3 -0
- package/util/range.d.ts +9 -3
- package/util/range.js +15 -2
- package/util/schema.d.ts +14 -1
- package/util/schema.js +15 -2
- package/util/simple-df/dfg-view.d.ts +4 -1
- package/util/simple-df/dfg-view.js +4 -1
- package/util/summarizer.d.ts +9 -1
- package/util/summarizer.js +9 -0
- package/util/text/ansi.d.ts +3 -0
- package/util/text/ansi.js +3 -0
- package/util/text/args.d.ts +2 -4
- package/util/text/args.js +7 -5
- package/util/text/text.d.ts +4 -0
- package/util/text/text.js +4 -0
- package/util/text/time.d.ts +0 -1
- package/util/text/time.js +0 -1
- package/util/version.d.ts +12 -3
- package/util/version.js +12 -3
- package/abstract-interpretation/data-frame/domain.d.ts +0 -107
- package/abstract-interpretation/data-frame/domain.js +0 -315
- package/abstract-interpretation/domains/set-bounded-set-domain.d.ts +0 -43
- package/abstract-interpretation/domains/set-bounded-set-domain.js +0 -164
- package/cli/repl/commands/repl-lineage.d.ts +0 -15
- package/cli/repl/commands/repl-lineage.js +0 -66
- package/cli/repl/server/messages/message-lineage.d.ts +0 -17
- package/cli/repl/server/messages/message-lineage.js +0 -25
- package/documentation/print-analyzer-wiki.d.ts +0 -1
- package/documentation/print-analyzer-wiki.js +0 -137
- package/documentation/print-capabilities-markdown.d.ts +0 -1
- package/documentation/print-cfg-wiki.d.ts +0 -1
- package/documentation/print-core-wiki.d.ts +0 -2
- package/documentation/print-dataflow-graph-wiki.d.ts +0 -1
- package/documentation/print-engines-wiki.d.ts +0 -1
- package/documentation/print-faq-wiki.d.ts +0 -1
- package/documentation/print-faq-wiki.js +0 -90
- package/documentation/print-interface-wiki.d.ts +0 -1
- package/documentation/print-linter-issue.d.ts +0 -1
- package/documentation/print-linter-wiki.d.ts +0 -1
- package/documentation/print-linting-and-testing-wiki.d.ts +0 -1
- package/documentation/print-normalized-ast-wiki.d.ts +0 -1
- package/documentation/print-onboarding-wiki.d.ts +0 -1
- package/documentation/print-query-wiki.d.ts +0 -1
- package/documentation/print-readme.d.ts +0 -1
- package/documentation/print-search-wiki.d.ts +0 -1
- package/documentation/print-search-wiki.js +0 -74
- package/queries/catalog/lineage-query/lineage-query-executor.d.ts +0 -3
- package/queries/catalog/lineage-query/lineage-query-executor.js +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.d.ts +0 -22
- package/queries/catalog/lineage-query/lineage-query-format.js +0 -31
- package/util/formats/adapter-format.d.ts +0 -6
- package/util/formats/adapter-format.js +0 -3
- package/util/formats/adapter.d.ts +0 -18
- package/util/formats/adapter.js +0 -49
- package/util/formats/adapters/r-adapter.d.ts +0 -4
- package/util/formats/adapters/r-adapter.js +0 -7
- package/util/formats/adapters/rmd-adapter.d.ts +0 -26
- package/util/formats/adapters/rmd-adapter.js +0 -91
|
@@ -7,9 +7,10 @@ const log_1 = require("../../../../../../../util/log");
|
|
|
7
7
|
const arrays_1 = require("../../../../../../../util/collections/arrays");
|
|
8
8
|
const type_1 = require("../../../../model/type");
|
|
9
9
|
/**
|
|
10
|
-
* Takes the parse
|
|
10
|
+
* Takes the parse data as object and produces an undecorated, normalized AST.
|
|
11
|
+
* @see {@link normalize} - for a version that also decorates the AST
|
|
11
12
|
*/
|
|
12
|
-
function normalizeRootObjToAst(data, obj) {
|
|
13
|
+
function normalizeRootObjToAst(data, obj, filePath) {
|
|
13
14
|
const exprContent = obj.token;
|
|
14
15
|
(0, normalize_meta_1.assureTokenType)(exprContent, type_1.RawRType.ExpressionList);
|
|
15
16
|
let parsedChildren = [];
|
|
@@ -22,15 +23,23 @@ function normalizeRootObjToAst(data, obj) {
|
|
|
22
23
|
}
|
|
23
24
|
const [delimiters, nodes] = (0, arrays_1.partition)(parsedChildren, x => x.type === type_1.RType.Delimiter || x.type === type_1.RType.Comment);
|
|
24
25
|
return {
|
|
25
|
-
type: type_1.RType.
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
26
|
+
type: type_1.RType.Project,
|
|
27
|
+
files: [
|
|
28
|
+
{
|
|
29
|
+
filePath,
|
|
30
|
+
root: {
|
|
31
|
+
type: type_1.RType.ExpressionList,
|
|
32
|
+
children: nodes,
|
|
33
|
+
grouping: undefined,
|
|
34
|
+
lexeme: undefined,
|
|
35
|
+
info: {
|
|
36
|
+
fullRange: data.currentRange,
|
|
37
|
+
additionalTokens: delimiters,
|
|
38
|
+
fullLexeme: data.currentLexeme
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
]
|
|
34
43
|
};
|
|
35
44
|
}
|
|
36
45
|
//# sourceMappingURL=normalize-root.js.map
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type NormalizerData } from '../../normalizer-data';
|
|
2
2
|
import type { RNode } from '../../../../model/model';
|
|
3
3
|
import type { RDelimiter } from '../../../../model/nodes/info/r-delimiter';
|
|
4
4
|
import type { NamedJsonEntry } from '../../../json/format';
|
|
5
5
|
/**
|
|
6
6
|
* Parses a single structure in the ast based on its type (e.g., a string, a number, a symbol, ...)
|
|
7
|
-
*
|
|
8
7
|
* @param data - The data used by the parser (see {@link NormalizerData})
|
|
9
8
|
* @param elem - The element to parse
|
|
10
|
-
*
|
|
11
9
|
* @returns The parsed element as an `RNode` or an `RDelimiter` if it is such.
|
|
12
10
|
*/
|
|
13
11
|
export declare function normalizeSingleNode(data: NormalizerData, elem: NamedJsonEntry): RNode | RDelimiter;
|
|
@@ -16,10 +16,8 @@ const normalize_next_1 = require("../loops/normalize-next");
|
|
|
16
16
|
const normalize_symbol_1 = require("../values/normalize-symbol");
|
|
17
17
|
/**
|
|
18
18
|
* Parses a single structure in the ast based on its type (e.g., a string, a number, a symbol, ...)
|
|
19
|
-
*
|
|
20
19
|
* @param data - The data used by the parser (see {@link NormalizerData})
|
|
21
20
|
* @param elem - The element to parse
|
|
22
|
-
*
|
|
23
21
|
* @returns The parsed element as an `RNode` or an `RDelimiter` if it is such.
|
|
24
22
|
*/
|
|
25
23
|
function normalizeSingleNode(data, elem) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NormalizerData } from '../../normalizer-data';
|
|
2
|
-
import type
|
|
2
|
+
import { type RNa } from '../../../../../convert-values';
|
|
3
3
|
import type { RNumber } from '../../../../model/nodes/r-number';
|
|
4
4
|
import type { RLogical } from '../../../../model/nodes/r-logical';
|
|
5
5
|
import type { RSymbol } from '../../../../model/nodes/r-symbol';
|
|
@@ -9,7 +9,6 @@ import type { JsonEntry } from '../../../json/format';
|
|
|
9
9
|
* Normalize the given object as a R number (see {@link number2ts}), supporting booleans (see {@link boolean2ts}),
|
|
10
10
|
* and special values.
|
|
11
11
|
* This requires you to check the corresponding name beforehand.
|
|
12
|
-
*
|
|
13
12
|
* @param data - The data used by the parser (see {@link NormalizerData})
|
|
14
13
|
* @param obj - The JSON object to extract the meta-information from
|
|
15
14
|
*/
|
|
@@ -8,7 +8,6 @@ const type_1 = require("../../../../model/type");
|
|
|
8
8
|
* Normalize the given object as a R number (see {@link number2ts}), supporting booleans (see {@link boolean2ts}),
|
|
9
9
|
* and special values.
|
|
10
10
|
* This requires you to check the corresponding name beforehand.
|
|
11
|
-
*
|
|
12
11
|
* @param data - The data used by the parser (see {@link NormalizerData})
|
|
13
12
|
* @param obj - The JSON object to extract the meta-information from
|
|
14
13
|
*/
|
|
@@ -4,7 +4,6 @@ import type { JsonEntry } from '../../../json/format';
|
|
|
4
4
|
/**
|
|
5
5
|
* Normalize the given object as a R string (see {@link string2ts}).
|
|
6
6
|
* This requires you to check the corresponding name beforehand.
|
|
7
|
-
*
|
|
8
7
|
* @param data - The data used by the parser (see {@link NormalizerData})
|
|
9
8
|
* @param obj - The JSON object to extract the meta-information from
|
|
10
9
|
*/
|
|
@@ -8,7 +8,6 @@ const type_1 = require("../../../../model/type");
|
|
|
8
8
|
/**
|
|
9
9
|
* Normalize the given object as a R string (see {@link string2ts}).
|
|
10
10
|
* This requires you to check the corresponding name beforehand.
|
|
11
|
-
*
|
|
12
11
|
* @param data - The data used by the parser (see {@link NormalizerData})
|
|
13
12
|
* @param obj - The JSON object to extract the meta-information from
|
|
14
13
|
*/
|
|
@@ -5,10 +5,8 @@ import type { NamedJsonEntry } from '../../../json/format';
|
|
|
5
5
|
* Normalize the given object as an R symbol (incorporating namespace information).
|
|
6
6
|
* <p>
|
|
7
7
|
* The special symbols `T` and `F` are parsed as logic values.
|
|
8
|
-
*
|
|
9
8
|
* @param data - The data used by the parser (see {@link NormalizerData})
|
|
10
9
|
* @param objs - The JSON object to extract the meta-information from
|
|
11
|
-
*
|
|
12
10
|
* @returns The parsed symbol (with populated namespace information) or `undefined` if the given object is not a symbol.
|
|
13
11
|
*/
|
|
14
12
|
export declare function tryNormalizeSymbol(data: NormalizerData, objs: readonly NamedJsonEntry[]): RSymbol | undefined;
|
|
@@ -9,10 +9,8 @@ const type_1 = require("../../../../model/type");
|
|
|
9
9
|
* Normalize the given object as an R symbol (incorporating namespace information).
|
|
10
10
|
* <p>
|
|
11
11
|
* The special symbols `T` and `F` are parsed as logic values.
|
|
12
|
-
*
|
|
13
12
|
* @param data - The data used by the parser (see {@link NormalizerData})
|
|
14
13
|
* @param objs - The JSON object to extract the meta-information from
|
|
15
|
-
*
|
|
16
14
|
* @returns The parsed symbol (with populated namespace information) or `undefined` if the given object is not a symbol.
|
|
17
15
|
*/
|
|
18
16
|
function tryNormalizeSymbol(data, objs) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { JsonEntry, NamedJsonEntry } from '../json/format';
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
2
|
+
import { type SourceRange } from '../../../../../util/range';
|
|
3
|
+
import { type RawRType } from '../../model/type';
|
|
4
4
|
import type { RNode } from '../../model/model';
|
|
5
5
|
import type { RExpressionList } from '../../model/nodes/r-expression-list';
|
|
6
6
|
/**
|
|
@@ -10,7 +10,6 @@ export declare function extractLocation(ast: JsonEntry): SourceRange;
|
|
|
10
10
|
/**
|
|
11
11
|
* The JSON object that represents the input contains various meta-information.
|
|
12
12
|
* This function extracts the meta-information and returns it.
|
|
13
|
-
*
|
|
14
13
|
* @param entry - The JSON object to extract the meta-information from
|
|
15
14
|
* @returns An object containing the passed entry, the location of the corresponding R-ast element, and the content of the passed entry
|
|
16
15
|
*/
|
|
@@ -18,24 +17,34 @@ export declare function retrieveMetaStructure(entry: JsonEntry): {
|
|
|
18
17
|
location: SourceRange;
|
|
19
18
|
content: string;
|
|
20
19
|
};
|
|
20
|
+
/**
|
|
21
|
+
* Ensure that the given token is of the expected type.
|
|
22
|
+
*/
|
|
21
23
|
export declare function assureTokenType(token: string, expectedName: RawRType): void;
|
|
22
24
|
/**
|
|
23
25
|
* Extract the token-type of the given object. This is based on the knowledge, that all JSON objects created
|
|
24
26
|
* from the R XML have a name attached.
|
|
25
|
-
*
|
|
26
27
|
* @param content - the JSON object to extract the token-type from
|
|
27
28
|
*/
|
|
28
29
|
export declare function getTokenType(content: JsonEntry): RawRType;
|
|
30
|
+
/**
|
|
31
|
+
* Given a list of JSON objects, extract their token-types and return them alongside the original objects.
|
|
32
|
+
*/
|
|
29
33
|
export declare function getWithTokenType(obj: JsonEntry[]): {
|
|
30
34
|
name: RawRType;
|
|
31
35
|
content: JsonEntry;
|
|
32
36
|
}[];
|
|
37
|
+
/**
|
|
38
|
+
* Extract the operation name from the given operator node.
|
|
39
|
+
*/
|
|
33
40
|
export declare function retrieveOpName(operator: NamedJsonEntry): string;
|
|
34
41
|
/**
|
|
35
42
|
* Ensure that the first child is completely before the second child.
|
|
36
|
-
*
|
|
37
43
|
* @param first - the first child which should be the lhs
|
|
38
44
|
* @param second - the second child which should be the rhs
|
|
39
45
|
*/
|
|
40
46
|
export declare function ensureChildrenAreLhsAndRhsOrdered(first: JsonEntry, second: JsonEntry): void;
|
|
47
|
+
/**
|
|
48
|
+
* Ensure that the given node is an expression list. If it is not, wrap it in an expression list.
|
|
49
|
+
*/
|
|
41
50
|
export declare function ensureExpressionList<Info>(node: RNode<Info>): RExpressionList<Info>;
|
|
@@ -20,7 +20,6 @@ function extractLocation(ast) {
|
|
|
20
20
|
/**
|
|
21
21
|
* The JSON object that represents the input contains various meta-information.
|
|
22
22
|
* This function extracts the meta-information and returns it.
|
|
23
|
-
*
|
|
24
23
|
* @param entry - The JSON object to extract the meta-information from
|
|
25
24
|
* @returns An object containing the passed entry, the location of the corresponding R-ast element, and the content of the passed entry
|
|
26
25
|
*/
|
|
@@ -30,6 +29,9 @@ function retrieveMetaStructure(entry) {
|
|
|
30
29
|
content: entry.text
|
|
31
30
|
};
|
|
32
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Ensure that the given token is of the expected type.
|
|
34
|
+
*/
|
|
33
35
|
function assureTokenType(token, expectedName) {
|
|
34
36
|
if (token !== expectedName) {
|
|
35
37
|
throw new normalizer_data_1.ParseError(`expected name to be ${expectedName}, yet received ${token}`);
|
|
@@ -38,27 +40,29 @@ function assureTokenType(token, expectedName) {
|
|
|
38
40
|
/**
|
|
39
41
|
* Extract the token-type of the given object. This is based on the knowledge, that all JSON objects created
|
|
40
42
|
* from the R XML have a name attached.
|
|
41
|
-
*
|
|
42
43
|
* @param content - the JSON object to extract the token-type from
|
|
43
44
|
*/
|
|
44
45
|
function getTokenType(content) {
|
|
45
46
|
return content.token;
|
|
46
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Given a list of JSON objects, extract their token-types and return them alongside the original objects.
|
|
50
|
+
*/
|
|
47
51
|
function getWithTokenType(obj) {
|
|
48
52
|
return obj.map((content) => ({
|
|
49
53
|
name: getTokenType(content),
|
|
50
54
|
content
|
|
51
55
|
}));
|
|
52
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Extract the operation name from the given operator node.
|
|
59
|
+
*/
|
|
53
60
|
function retrieveOpName(operator) {
|
|
54
|
-
/*
|
|
55
|
-
* only real arithmetic ops have their operation as their own name, the others identify via content/text
|
|
56
|
-
*/
|
|
61
|
+
/* only real arithmetic ops have their operation as their own name, the others identify via content/text */
|
|
57
62
|
return operator.content.text;
|
|
58
63
|
}
|
|
59
64
|
/**
|
|
60
65
|
* Ensure that the first child is completely before the second child.
|
|
61
|
-
*
|
|
62
66
|
* @param first - the first child which should be the lhs
|
|
63
67
|
* @param second - the second child which should be the rhs
|
|
64
68
|
*/
|
|
@@ -69,6 +73,9 @@ function ensureChildrenAreLhsAndRhsOrdered(first, second) {
|
|
|
69
73
|
throw new normalizer_data_1.ParseError(`expected the first child to be the lhs, yet received ${JSON.stringify(first)} & ${JSON.stringify(second)}`);
|
|
70
74
|
}
|
|
71
75
|
}
|
|
76
|
+
/**
|
|
77
|
+
* Ensure that the given node is an expression list. If it is not, wrap it in an expression list.
|
|
78
|
+
*/
|
|
72
79
|
function ensureExpressionList(node) {
|
|
73
80
|
if (node.type !== type_1.RType.ExpressionList) {
|
|
74
81
|
return {
|
|
@@ -6,7 +6,13 @@ export declare function ts2r<T>(value: T): string;
|
|
|
6
6
|
export declare const RTrue = "TRUE";
|
|
7
7
|
/** The R literal for the logical false */
|
|
8
8
|
export declare const RFalse = "FALSE";
|
|
9
|
+
/**
|
|
10
|
+
* Checks whether the given string is an R boolean (logical) literal.
|
|
11
|
+
*/
|
|
9
12
|
export declare function isBoolean(value: string): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Converts an R boolean (logical) literal to a TypeScript boolean.
|
|
15
|
+
*/
|
|
10
16
|
export declare function boolean2ts(value: string): boolean;
|
|
11
17
|
export declare const RNumHexFloatRegex: RegExp;
|
|
12
18
|
export declare const RImaginaryMarker = "i";
|
|
@@ -19,6 +25,9 @@ export interface RNumberValue {
|
|
|
19
25
|
/** see {@link RImaginaryMarker}, compound imaginary numbers are expressions in R */
|
|
20
26
|
complexNumber: boolean;
|
|
21
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Convert a valid R number into a {@link RNumberValue}.
|
|
30
|
+
*/
|
|
22
31
|
export declare function number2ts(value: string): RNumberValue;
|
|
23
32
|
export interface RStringValue {
|
|
24
33
|
str: string;
|
|
@@ -29,10 +38,12 @@ export interface RStringValue {
|
|
|
29
38
|
}
|
|
30
39
|
/**
|
|
31
40
|
* Convert a valid R string into a {@link RStringValue}.
|
|
32
|
-
*
|
|
33
41
|
* @throws {@link ValueConversionError} if the string has an unknown starting quote
|
|
34
42
|
*/
|
|
35
43
|
export declare function string2ts(value: string): RStringValue;
|
|
36
44
|
export declare const RNa = "NA";
|
|
37
45
|
export declare const RNull = "NULL";
|
|
46
|
+
/**
|
|
47
|
+
* Checks whether the given string is the R NA literal (untyped).
|
|
48
|
+
*/
|
|
38
49
|
export declare function isNA(value: string): value is (typeof RNa);
|
|
@@ -54,9 +54,15 @@ function ts2r(value) {
|
|
|
54
54
|
exports.RTrue = 'TRUE';
|
|
55
55
|
/** The R literal for the logical false */
|
|
56
56
|
exports.RFalse = 'FALSE';
|
|
57
|
+
/**
|
|
58
|
+
* Checks whether the given string is an R boolean (logical) literal.
|
|
59
|
+
*/
|
|
57
60
|
function isBoolean(value) {
|
|
58
61
|
return value === exports.RTrue || value === exports.RFalse;
|
|
59
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Converts an R boolean (logical) literal to a TypeScript boolean.
|
|
65
|
+
*/
|
|
60
66
|
function boolean2ts(value) {
|
|
61
67
|
if (value === exports.RTrue) {
|
|
62
68
|
return true;
|
|
@@ -73,6 +79,9 @@ function getDecimalPlacesWithRadix(floatPart, radix) {
|
|
|
73
79
|
exports.RImaginaryMarker = 'i';
|
|
74
80
|
exports.RIntegerMarker = 'L';
|
|
75
81
|
exports.RInf = 'Inf';
|
|
82
|
+
/**
|
|
83
|
+
* Convert a valid R number into a {@link RNumberValue}.
|
|
84
|
+
*/
|
|
76
85
|
function number2ts(value) {
|
|
77
86
|
// check for hexadecimal number with floating point addon which is supported by R but not by JS :/
|
|
78
87
|
let lcValue = value.toLowerCase();
|
|
@@ -119,7 +128,6 @@ function number2ts(value) {
|
|
|
119
128
|
}
|
|
120
129
|
/**
|
|
121
130
|
* Convert a valid R string into a {@link RStringValue}.
|
|
122
|
-
*
|
|
123
131
|
* @throws {@link ValueConversionError} if the string has an unknown starting quote
|
|
124
132
|
*/
|
|
125
133
|
function string2ts(value) {
|
|
@@ -152,6 +160,9 @@ function string2ts(value) {
|
|
|
152
160
|
}
|
|
153
161
|
exports.RNa = 'NA';
|
|
154
162
|
exports.RNull = 'NULL';
|
|
163
|
+
/**
|
|
164
|
+
* Checks whether the given string is the R NA literal (untyped).
|
|
165
|
+
*/
|
|
155
166
|
function isNA(value) {
|
|
156
167
|
return value === exports.RNa;
|
|
157
168
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import Parser from 'web-tree-sitter';
|
|
2
|
+
import type { Query, QueryCapture } from 'web-tree-sitter';
|
|
2
3
|
import type { RParseRequest } from '../../retriever';
|
|
3
|
-
import type { SyncParser } from '../../parser';
|
|
4
|
+
import type { SyncParser, TreeSitterInformation } from '../../parser';
|
|
4
5
|
import type { TreeSitterEngineConfig } from '../../../config';
|
|
6
|
+
import type { ReadonlyFlowrAnalysisProvider } from '../../../project/flowr-analyzer';
|
|
5
7
|
export declare const DEFAULT_TREE_SITTER_R_WASM_PATH = "./node_modules/@eagleoutice/tree-sitter-r/tree-sitter-r.wasm";
|
|
6
8
|
export declare const DEFAULT_TREE_SITTER_WASM_PATH = "./node_modules/web-tree-sitter/tree-sitter.wasm";
|
|
7
9
|
/**
|
|
@@ -9,7 +11,7 @@ export declare const DEFAULT_TREE_SITTER_WASM_PATH = "./node_modules/web-tree-si
|
|
|
9
11
|
*/
|
|
10
12
|
export declare class TreeSitterExecutor implements SyncParser<Parser.Tree> {
|
|
11
13
|
readonly name = "tree-sitter";
|
|
12
|
-
readonly parser
|
|
14
|
+
private readonly parser;
|
|
13
15
|
private static language;
|
|
14
16
|
/**
|
|
15
17
|
* Initializes the underlying tree-sitter parser. This only needs to be called once globally.
|
|
@@ -20,7 +22,10 @@ export declare class TreeSitterExecutor implements SyncParser<Parser.Tree> {
|
|
|
20
22
|
static initTreeSitter(config?: TreeSitterEngineConfig, overrideWasmPath?: string, overrideTreeSitterWasmPath?: string): Promise<void>;
|
|
21
23
|
constructor();
|
|
22
24
|
rVersion(): Promise<string | 'unknown' | 'none'>;
|
|
25
|
+
information(analyzer: ReadonlyFlowrAnalysisProvider): TreeSitterInformation;
|
|
23
26
|
treeSitterVersion(): number;
|
|
24
27
|
parse(request: RParseRequest): Parser.Tree;
|
|
28
|
+
createQuery(source: string): Query;
|
|
29
|
+
query(source: Query | string, ...tree: Parser.Tree[]): QueryCapture[];
|
|
25
30
|
close(): void;
|
|
26
31
|
}
|
|
@@ -48,6 +48,15 @@ class TreeSitterExecutor {
|
|
|
48
48
|
rVersion() {
|
|
49
49
|
return Promise.resolve('none');
|
|
50
50
|
}
|
|
51
|
+
information(analyzer) {
|
|
52
|
+
return {
|
|
53
|
+
name: 'tree-sitter',
|
|
54
|
+
grammarVersion: this.treeSitterVersion(),
|
|
55
|
+
treeSitterQuery: async (source, force) => {
|
|
56
|
+
return this.query(source, ...(await analyzer.parse(force)).files.map(p => p.parsed));
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
51
60
|
treeSitterVersion() {
|
|
52
61
|
return this.parser.getLanguage().version;
|
|
53
62
|
}
|
|
@@ -61,6 +70,15 @@ class TreeSitterExecutor {
|
|
|
61
70
|
}
|
|
62
71
|
return this.parser.parse(sourceCode);
|
|
63
72
|
}
|
|
73
|
+
createQuery(source) {
|
|
74
|
+
return this.parser.getLanguage().query(source);
|
|
75
|
+
}
|
|
76
|
+
query(source, ...tree) {
|
|
77
|
+
const query = typeof source === 'string' ? this.createQuery(source) : source;
|
|
78
|
+
return tree
|
|
79
|
+
.flatMap(t => query.matches(t.rootNode))
|
|
80
|
+
.flatMap(m => m.captures);
|
|
81
|
+
}
|
|
64
82
|
close() {
|
|
65
83
|
this.parser.delete();
|
|
66
84
|
}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
|
-
import type { RExpressionList } from '../ast/model/nodes/r-expression-list';
|
|
2
1
|
import type { Tree } from 'web-tree-sitter';
|
|
2
|
+
import type { RProject } from '../ast/model/nodes/r-project';
|
|
3
|
+
import type { ParseStepOutputSingleFile } from '../../parser';
|
|
4
|
+
export interface TreeSitterInfo {
|
|
5
|
+
treeSitterId: number;
|
|
6
|
+
}
|
|
3
7
|
/**
|
|
4
8
|
* @param tree - The tree to normalize
|
|
9
|
+
* @param lax - Whether to use lax parsing (i.e., ignore errors) or strict parsing (i.e., fail on errors)
|
|
10
|
+
*/
|
|
11
|
+
export declare function normalizeTreeSitterTreeToAst(tree: ParseStepOutputSingleFile<Tree>[], lax?: boolean): RProject<TreeSitterInfo>;
|
|
12
|
+
/**
|
|
13
|
+
* Globally switch to lax parsing mode for tree-sitter normalization
|
|
14
|
+
* @see {@link makeTreeSitterStrict}
|
|
5
15
|
*/
|
|
6
|
-
export declare function normalizeTreeSitterTreeToAst(tree: Tree, lax?: boolean): RExpressionList;
|
|
7
16
|
export declare function makeTreeSitterLax(): void;
|
|
17
|
+
/**
|
|
18
|
+
* Globally switch to strict parsing mode for tree-sitter normalization
|
|
19
|
+
* @see {@link makeTreeSitterLax}
|
|
20
|
+
*/
|
|
8
21
|
export declare function makeTreeSitterStrict(): void;
|
|
@@ -15,6 +15,7 @@ const strings_1 = require("../../../util/text/strings");
|
|
|
15
15
|
const log_1 = require("../../../util/log");
|
|
16
16
|
/**
|
|
17
17
|
* @param tree - The tree to normalize
|
|
18
|
+
* @param lax - Whether to use lax parsing (i.e., ignore errors) or strict parsing (i.e., fail on errors)
|
|
18
19
|
*/
|
|
19
20
|
function normalizeTreeSitterTreeToAst(tree, lax) {
|
|
20
21
|
if (lax) {
|
|
@@ -23,11 +24,20 @@ function normalizeTreeSitterTreeToAst(tree, lax) {
|
|
|
23
24
|
else {
|
|
24
25
|
makeTreeSitterStrict();
|
|
25
26
|
}
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
const files = tree.map(t => {
|
|
28
|
+
const root = convertTreeNode(t.parsed.rootNode);
|
|
29
|
+
if (root.type !== type_1.RType.ExpressionList) {
|
|
30
|
+
throw new normalizer_data_1.ParseError(`expected root to resolve to an expression list, got a ${root.type}`);
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
filePath: t.filePath,
|
|
34
|
+
root: root
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
type: type_1.RType.Project,
|
|
39
|
+
files
|
|
40
|
+
};
|
|
31
41
|
}
|
|
32
42
|
function nonErrorChildrenStrict(node) {
|
|
33
43
|
return node.hasError ? [] : node.children;
|
|
@@ -36,10 +46,18 @@ function nonErrorChildrenLax(node) {
|
|
|
36
46
|
return node.hasError ? node.children.filter(n => n.type !== tree_sitter_types_1.TreeSitterType.Error) : node.children;
|
|
37
47
|
}
|
|
38
48
|
let nonErrorChildren = nonErrorChildrenStrict;
|
|
49
|
+
/**
|
|
50
|
+
* Globally switch to lax parsing mode for tree-sitter normalization
|
|
51
|
+
* @see {@link makeTreeSitterStrict}
|
|
52
|
+
*/
|
|
39
53
|
function makeTreeSitterLax() {
|
|
40
54
|
log_1.log.info('[Tree-Sitter] Lax parsing active');
|
|
41
55
|
nonErrorChildren = nonErrorChildrenLax;
|
|
42
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Globally switch to strict parsing mode for tree-sitter normalization
|
|
59
|
+
* @see {@link makeTreeSitterLax}
|
|
60
|
+
*/
|
|
43
61
|
function makeTreeSitterStrict() {
|
|
44
62
|
log_1.log.info('[Tree-Sitter] Strict parsing active');
|
|
45
63
|
nonErrorChildren = nonErrorChildrenStrict;
|
|
@@ -52,7 +70,8 @@ function convertTreeNode(node) {
|
|
|
52
70
|
info: {
|
|
53
71
|
fullRange: range,
|
|
54
72
|
additionalTokens: [],
|
|
55
|
-
fullLexeme: node.text
|
|
73
|
+
fullLexeme: node.text,
|
|
74
|
+
treeSitterId: node.id
|
|
56
75
|
}
|
|
57
76
|
};
|
|
58
77
|
switch (node.type) {
|
|
@@ -66,7 +85,8 @@ function convertTreeNode(node) {
|
|
|
66
85
|
grouping: undefined,
|
|
67
86
|
lexeme: undefined,
|
|
68
87
|
info: {
|
|
69
|
-
additionalTokens: remainingComments.map(c => c[1])
|
|
88
|
+
additionalTokens: remainingComments.map(c => c[1]),
|
|
89
|
+
treeSitterId: node.id
|
|
70
90
|
}
|
|
71
91
|
};
|
|
72
92
|
}
|
|
@@ -100,7 +120,8 @@ function convertTreeNode(node) {
|
|
|
100
120
|
}
|
|
101
121
|
],
|
|
102
122
|
info: {
|
|
103
|
-
additionalTokens: remainingComments.map(c => c[1])
|
|
123
|
+
additionalTokens: remainingComments.map(c => c[1]),
|
|
124
|
+
treeSitterId: node.id
|
|
104
125
|
}
|
|
105
126
|
};
|
|
106
127
|
}
|
|
@@ -117,7 +138,9 @@ function convertTreeNode(node) {
|
|
|
117
138
|
value: lhs,
|
|
118
139
|
name: undefined,
|
|
119
140
|
lexeme: lhs.lexeme,
|
|
120
|
-
info: {
|
|
141
|
+
info: {
|
|
142
|
+
treeSitterId: lhs.info.treeSitterId
|
|
143
|
+
}
|
|
121
144
|
};
|
|
122
145
|
if (op.type == 'special') {
|
|
123
146
|
return {
|
|
@@ -130,7 +153,9 @@ function convertTreeNode(node) {
|
|
|
130
153
|
lexeme: op.text,
|
|
131
154
|
content: op.text,
|
|
132
155
|
namespace: undefined,
|
|
133
|
-
info: {
|
|
156
|
+
info: {
|
|
157
|
+
treeSitterId: op.id
|
|
158
|
+
}
|
|
134
159
|
},
|
|
135
160
|
arguments: [lhsAsArg, {
|
|
136
161
|
type: type_1.RType.Argument,
|
|
@@ -138,12 +163,15 @@ function convertTreeNode(node) {
|
|
|
138
163
|
value: rhs,
|
|
139
164
|
name: undefined,
|
|
140
165
|
lexeme: rhs.lexeme,
|
|
141
|
-
info: {
|
|
166
|
+
info: {
|
|
167
|
+
treeSitterId: rhs.info.treeSitterId
|
|
168
|
+
}
|
|
142
169
|
}],
|
|
143
170
|
named: true,
|
|
144
171
|
infixSpecial: true,
|
|
145
172
|
info: {
|
|
146
|
-
additionalTokens: comments
|
|
173
|
+
additionalTokens: comments,
|
|
174
|
+
treeSitterId: node.id
|
|
147
175
|
}
|
|
148
176
|
};
|
|
149
177
|
}
|
|
@@ -158,7 +186,8 @@ function convertTreeNode(node) {
|
|
|
158
186
|
info: {
|
|
159
187
|
fullRange: range,
|
|
160
188
|
additionalTokens: comments,
|
|
161
|
-
fullLexeme: node.text
|
|
189
|
+
fullLexeme: node.text,
|
|
190
|
+
treeSitterId: node.id
|
|
162
191
|
}
|
|
163
192
|
};
|
|
164
193
|
}
|
|
@@ -172,7 +201,8 @@ function convertTreeNode(node) {
|
|
|
172
201
|
info: {
|
|
173
202
|
fullRange: range,
|
|
174
203
|
additionalTokens: comments,
|
|
175
|
-
fullLexeme: node.text
|
|
204
|
+
fullLexeme: node.text,
|
|
205
|
+
treeSitterId: node.id
|
|
176
206
|
}
|
|
177
207
|
};
|
|
178
208
|
}
|
|
@@ -247,7 +277,8 @@ function convertTreeNode(node) {
|
|
|
247
277
|
info: {
|
|
248
278
|
fullRange: undefined,
|
|
249
279
|
additionalTokens: [],
|
|
250
|
-
fullLexeme: undefined
|
|
280
|
+
fullLexeme: undefined,
|
|
281
|
+
treeSitterId: variableNode.id
|
|
251
282
|
}
|
|
252
283
|
},
|
|
253
284
|
vector: convertTreeNode(sequenceNode),
|
|
@@ -256,8 +287,9 @@ function convertTreeNode(node) {
|
|
|
256
287
|
lexeme: forNode.text,
|
|
257
288
|
info: {
|
|
258
289
|
fullRange: range,
|
|
259
|
-
additionalTokens:
|
|
260
|
-
fullLexeme: node.text
|
|
290
|
+
additionalTokens: variableComments.concat(sequenceComments).map(c => c[1]),
|
|
291
|
+
fullLexeme: node.text,
|
|
292
|
+
treeSitterId: node.id
|
|
261
293
|
}
|
|
262
294
|
};
|
|
263
295
|
}
|
|
@@ -324,7 +356,8 @@ function convertTreeNode(node) {
|
|
|
324
356
|
info: {
|
|
325
357
|
fullRange: range,
|
|
326
358
|
additionalTokens: [],
|
|
327
|
-
fullLexeme: node.text
|
|
359
|
+
fullLexeme: node.text,
|
|
360
|
+
treeSitterId: node.id
|
|
328
361
|
}
|
|
329
362
|
},
|
|
330
363
|
named: true
|
|
@@ -428,7 +461,8 @@ function convertTreeNode(node) {
|
|
|
428
461
|
info: {
|
|
429
462
|
fullRange: rhsRange,
|
|
430
463
|
additionalTokens: [],
|
|
431
|
-
fullLexeme: rhs.text
|
|
464
|
+
fullLexeme: rhs.text,
|
|
465
|
+
treeSitterId: rhs.id
|
|
432
466
|
}
|
|
433
467
|
}],
|
|
434
468
|
location: makeSourceRange(operator),
|
|
@@ -455,7 +489,8 @@ function convertTreeNode(node) {
|
|
|
455
489
|
info: {
|
|
456
490
|
fullRange: range,
|
|
457
491
|
additionalTokens: [],
|
|
458
|
-
fullLexeme: name.text
|
|
492
|
+
fullLexeme: name.text,
|
|
493
|
+
treeSitterId: name.id
|
|
459
494
|
}
|
|
460
495
|
},
|
|
461
496
|
special: name.text === '...',
|
|
@@ -465,7 +500,8 @@ function convertTreeNode(node) {
|
|
|
465
500
|
info: {
|
|
466
501
|
fullRange: range,
|
|
467
502
|
additionalTokens: [],
|
|
468
|
-
fullLexeme: name.text
|
|
503
|
+
fullLexeme: name.text,
|
|
504
|
+
treeSitterId: name.id
|
|
469
505
|
}
|
|
470
506
|
};
|
|
471
507
|
}
|
|
@@ -507,7 +543,8 @@ function convertTreeNode(node) {
|
|
|
507
543
|
info: {
|
|
508
544
|
fullRange: nameRange,
|
|
509
545
|
additionalTokens: [],
|
|
510
|
-
fullLexeme: nameNode.text
|
|
546
|
+
fullLexeme: nameNode.text,
|
|
547
|
+
treeSitterId: nameNode.id
|
|
511
548
|
}
|
|
512
549
|
};
|
|
513
550
|
}
|
|
@@ -527,7 +564,7 @@ function convertTreeNode(node) {
|
|
|
527
564
|
lexeme: undefined,
|
|
528
565
|
children: [],
|
|
529
566
|
grouping: undefined,
|
|
530
|
-
|
|
567
|
+
...defaultInfo
|
|
531
568
|
};
|
|
532
569
|
default:
|
|
533
570
|
throw new normalizer_data_1.ParseError(`unexpected node type ${node.type} at ${JSON.stringify(range)}`);
|
|
@@ -562,7 +599,8 @@ function splitComments(nodes) {
|
|
|
562
599
|
lexeme: node.text,
|
|
563
600
|
info: {
|
|
564
601
|
additionalTokens: [],
|
|
565
|
-
fullLexeme: node.text
|
|
602
|
+
fullLexeme: node.text,
|
|
603
|
+
treeSitterId: node.id
|
|
566
604
|
}
|
|
567
605
|
}]);
|
|
568
606
|
}
|