@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
|
@@ -6,7 +6,6 @@ import type { JsonEntry } from '../../../json/format';
|
|
|
6
6
|
* Normalize the given object as an R line directive (`#line <number> "<file>"`).
|
|
7
7
|
* This requires you to check the corresponding name beforehand.
|
|
8
8
|
* If the given object turns out to be no line directive, this returns a normal comment instead.
|
|
9
|
-
*
|
|
10
9
|
* @param data - The data used by the parser (see {@link NormalizerData})
|
|
11
10
|
* @param obj - The JSON object to extract the meta-information from
|
|
12
11
|
*/
|
|
@@ -10,7 +10,6 @@ const LineDirectiveRegex = /^#line\s+(\d+)\s+"([^"]+)"\s*$/;
|
|
|
10
10
|
* Normalize the given object as an R line directive (`#line <number> "<file>"`).
|
|
11
11
|
* This requires you to check the corresponding name beforehand.
|
|
12
12
|
* If the given object turns out to be no line directive, this returns a normal comment instead.
|
|
13
|
-
*
|
|
14
13
|
* @param data - The data used by the parser (see {@link NormalizerData})
|
|
15
14
|
* @param obj - The JSON object to extract the meta-information from
|
|
16
15
|
*/
|
|
@@ -1,3 +1,6 @@
|
|
|
1
1
|
import type { RDelimiter } from '../../../../model/nodes/info/r-delimiter';
|
|
2
2
|
import type { NamedJsonEntry } from '../../../json/format';
|
|
3
|
+
/**
|
|
4
|
+
* Normalizes a delimiter node like `,`.
|
|
5
|
+
*/
|
|
3
6
|
export declare function normalizeDelimiter(elem: NamedJsonEntry): RDelimiter;
|
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.normalizeDelimiter = normalizeDelimiter;
|
|
4
4
|
const normalize_meta_1 = require("../../normalize-meta");
|
|
5
5
|
const type_1 = require("../../../../model/type");
|
|
6
|
+
/**
|
|
7
|
+
* Normalizes a delimiter node like `,`.
|
|
8
|
+
*/
|
|
6
9
|
function normalizeDelimiter(elem) {
|
|
7
10
|
const { location, content } = (0, normalize_meta_1.retrieveMetaStructure)(elem.content);
|
|
8
11
|
return {
|
|
@@ -2,9 +2,18 @@ import type { NormalizerData } from '../../normalizer-data';
|
|
|
2
2
|
import type { RDelimiter } from '../../../../model/nodes/info/r-delimiter';
|
|
3
3
|
import type { RNode } from '../../../../model/model';
|
|
4
4
|
import type { JsonEntry, NamedJsonEntry } from '../../../json/format';
|
|
5
|
+
/**
|
|
6
|
+
* Split a token collection into comments tokens and "other" tokens
|
|
7
|
+
*/
|
|
5
8
|
export declare function splitComments(tokens: readonly NamedJsonEntry[]): {
|
|
6
9
|
comments: NamedJsonEntry[];
|
|
7
10
|
others: NamedJsonEntry[];
|
|
8
11
|
};
|
|
12
|
+
/**
|
|
13
|
+
* Normalizes a list of expressions, handling semicolons and braces
|
|
14
|
+
*/
|
|
9
15
|
export declare function normalizeExpressions(data: NormalizerData, tokens: readonly JsonEntry[] | readonly NamedJsonEntry[]): (RNode | RDelimiter)[];
|
|
16
|
+
/**
|
|
17
|
+
* Parses nodes when their type is unknown
|
|
18
|
+
*/
|
|
10
19
|
export declare function parseNodesWithUnknownType(data: NormalizerData, mappedWithName: readonly NamedJsonEntry[] | undefined): (RNode | RDelimiter)[];
|
|
@@ -45,6 +45,9 @@ function normalizeMappedWithoutSemicolonBasedOnType(mappedWithName, data) {
|
|
|
45
45
|
// otherwise perform default parsing
|
|
46
46
|
return result !== undefined ? [result] : parseNodesWithUnknownType(data, mappedWithName);
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Split a token collection into comments tokens and "other" tokens
|
|
50
|
+
*/
|
|
48
51
|
function splitComments(tokens) {
|
|
49
52
|
const comments = [];
|
|
50
53
|
const others = [];
|
|
@@ -132,6 +135,9 @@ function processBraces([start, end], processed, comments, data) {
|
|
|
132
135
|
}
|
|
133
136
|
};
|
|
134
137
|
}
|
|
138
|
+
/**
|
|
139
|
+
* Normalizes a list of expressions, handling semicolons and braces
|
|
140
|
+
*/
|
|
135
141
|
function normalizeExpressions(data, tokens) {
|
|
136
142
|
if (tokens.length === 0) {
|
|
137
143
|
parser_1.parseLog.warn('no children received, skipping');
|
|
@@ -170,6 +176,9 @@ function normalizeExpressions(data, tokens) {
|
|
|
170
176
|
}
|
|
171
177
|
return [...parsedComments, ...normalizeMappedWithoutSemicolonBasedOnType(mappedWithName, data)];
|
|
172
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Parses nodes when their type is unknown
|
|
181
|
+
*/
|
|
173
182
|
function parseNodesWithUnknownType(data, mappedWithName) {
|
|
174
183
|
const parsedNodes = [];
|
|
175
184
|
// used to indicate the new root node of this set of nodes
|
|
@@ -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 { FlowrAnalysisProvider } 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: FlowrAnalysisProvider): 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)).parsed);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}
|
|
51
60
|
treeSitterVersion() {
|
|
52
61
|
return this.parser.getLanguage().version;
|
|
53
62
|
}
|
|
@@ -61,6 +70,14 @@ 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
|
+
const matches = query.matches(tree.rootNode);
|
|
79
|
+
return matches.flatMap(m => m.captures);
|
|
80
|
+
}
|
|
64
81
|
close() {
|
|
65
82
|
this.parser.delete();
|
|
66
83
|
}
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
import type { RExpressionList } from '../ast/model/nodes/r-expression-list';
|
|
2
2
|
import type { Tree } from 'web-tree-sitter';
|
|
3
|
+
export interface TreeSitterInfo {
|
|
4
|
+
treeSitterId: number;
|
|
5
|
+
}
|
|
3
6
|
/**
|
|
4
7
|
* @param tree - The tree to normalize
|
|
8
|
+
* @param lax - Whether to use lax parsing (i.e., ignore errors) or strict parsing (i.e., fail on errors)
|
|
9
|
+
*/
|
|
10
|
+
export declare function normalizeTreeSitterTreeToAst(tree: Tree, lax?: boolean): RExpressionList<TreeSitterInfo>;
|
|
11
|
+
/**
|
|
12
|
+
* Globally switch to lax parsing mode for tree-sitter normalization
|
|
13
|
+
* @see {@link makeTreeSitterStrict}
|
|
5
14
|
*/
|
|
6
|
-
export declare function normalizeTreeSitterTreeToAst(tree: Tree, lax?: boolean): RExpressionList;
|
|
7
15
|
export declare function makeTreeSitterLax(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Globally switch to strict parsing mode for tree-sitter normalization
|
|
18
|
+
* @see {@link makeTreeSitterLax}
|
|
19
|
+
*/
|
|
8
20
|
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) {
|
|
@@ -36,10 +37,18 @@ function nonErrorChildrenLax(node) {
|
|
|
36
37
|
return node.hasError ? node.children.filter(n => n.type !== tree_sitter_types_1.TreeSitterType.Error) : node.children;
|
|
37
38
|
}
|
|
38
39
|
let nonErrorChildren = nonErrorChildrenStrict;
|
|
40
|
+
/**
|
|
41
|
+
* Globally switch to lax parsing mode for tree-sitter normalization
|
|
42
|
+
* @see {@link makeTreeSitterStrict}
|
|
43
|
+
*/
|
|
39
44
|
function makeTreeSitterLax() {
|
|
40
45
|
log_1.log.info('[Tree-Sitter] Lax parsing active');
|
|
41
46
|
nonErrorChildren = nonErrorChildrenLax;
|
|
42
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Globally switch to strict parsing mode for tree-sitter normalization
|
|
50
|
+
* @see {@link makeTreeSitterLax}
|
|
51
|
+
*/
|
|
43
52
|
function makeTreeSitterStrict() {
|
|
44
53
|
log_1.log.info('[Tree-Sitter] Strict parsing active');
|
|
45
54
|
nonErrorChildren = nonErrorChildrenStrict;
|
|
@@ -52,7 +61,8 @@ function convertTreeNode(node) {
|
|
|
52
61
|
info: {
|
|
53
62
|
fullRange: range,
|
|
54
63
|
additionalTokens: [],
|
|
55
|
-
fullLexeme: node.text
|
|
64
|
+
fullLexeme: node.text,
|
|
65
|
+
treeSitterId: node.id
|
|
56
66
|
}
|
|
57
67
|
};
|
|
58
68
|
switch (node.type) {
|
|
@@ -66,7 +76,8 @@ function convertTreeNode(node) {
|
|
|
66
76
|
grouping: undefined,
|
|
67
77
|
lexeme: undefined,
|
|
68
78
|
info: {
|
|
69
|
-
additionalTokens: remainingComments.map(c => c[1])
|
|
79
|
+
additionalTokens: remainingComments.map(c => c[1]),
|
|
80
|
+
treeSitterId: node.id
|
|
70
81
|
}
|
|
71
82
|
};
|
|
72
83
|
}
|
|
@@ -100,7 +111,8 @@ function convertTreeNode(node) {
|
|
|
100
111
|
}
|
|
101
112
|
],
|
|
102
113
|
info: {
|
|
103
|
-
additionalTokens: remainingComments.map(c => c[1])
|
|
114
|
+
additionalTokens: remainingComments.map(c => c[1]),
|
|
115
|
+
treeSitterId: node.id
|
|
104
116
|
}
|
|
105
117
|
};
|
|
106
118
|
}
|
|
@@ -117,7 +129,9 @@ function convertTreeNode(node) {
|
|
|
117
129
|
value: lhs,
|
|
118
130
|
name: undefined,
|
|
119
131
|
lexeme: lhs.lexeme,
|
|
120
|
-
info: {
|
|
132
|
+
info: {
|
|
133
|
+
treeSitterId: lhs.info.treeSitterId
|
|
134
|
+
}
|
|
121
135
|
};
|
|
122
136
|
if (op.type == 'special') {
|
|
123
137
|
return {
|
|
@@ -130,7 +144,9 @@ function convertTreeNode(node) {
|
|
|
130
144
|
lexeme: op.text,
|
|
131
145
|
content: op.text,
|
|
132
146
|
namespace: undefined,
|
|
133
|
-
info: {
|
|
147
|
+
info: {
|
|
148
|
+
treeSitterId: op.id
|
|
149
|
+
}
|
|
134
150
|
},
|
|
135
151
|
arguments: [lhsAsArg, {
|
|
136
152
|
type: type_1.RType.Argument,
|
|
@@ -138,12 +154,15 @@ function convertTreeNode(node) {
|
|
|
138
154
|
value: rhs,
|
|
139
155
|
name: undefined,
|
|
140
156
|
lexeme: rhs.lexeme,
|
|
141
|
-
info: {
|
|
157
|
+
info: {
|
|
158
|
+
treeSitterId: rhs.info.treeSitterId
|
|
159
|
+
}
|
|
142
160
|
}],
|
|
143
161
|
named: true,
|
|
144
162
|
infixSpecial: true,
|
|
145
163
|
info: {
|
|
146
|
-
additionalTokens: comments
|
|
164
|
+
additionalTokens: comments,
|
|
165
|
+
treeSitterId: node.id
|
|
147
166
|
}
|
|
148
167
|
};
|
|
149
168
|
}
|
|
@@ -158,7 +177,8 @@ function convertTreeNode(node) {
|
|
|
158
177
|
info: {
|
|
159
178
|
fullRange: range,
|
|
160
179
|
additionalTokens: comments,
|
|
161
|
-
fullLexeme: node.text
|
|
180
|
+
fullLexeme: node.text,
|
|
181
|
+
treeSitterId: node.id
|
|
162
182
|
}
|
|
163
183
|
};
|
|
164
184
|
}
|
|
@@ -172,7 +192,8 @@ function convertTreeNode(node) {
|
|
|
172
192
|
info: {
|
|
173
193
|
fullRange: range,
|
|
174
194
|
additionalTokens: comments,
|
|
175
|
-
fullLexeme: node.text
|
|
195
|
+
fullLexeme: node.text,
|
|
196
|
+
treeSitterId: node.id
|
|
176
197
|
}
|
|
177
198
|
};
|
|
178
199
|
}
|
|
@@ -247,7 +268,8 @@ function convertTreeNode(node) {
|
|
|
247
268
|
info: {
|
|
248
269
|
fullRange: undefined,
|
|
249
270
|
additionalTokens: [],
|
|
250
|
-
fullLexeme: undefined
|
|
271
|
+
fullLexeme: undefined,
|
|
272
|
+
treeSitterId: variableNode.id
|
|
251
273
|
}
|
|
252
274
|
},
|
|
253
275
|
vector: convertTreeNode(sequenceNode),
|
|
@@ -256,8 +278,9 @@ function convertTreeNode(node) {
|
|
|
256
278
|
lexeme: forNode.text,
|
|
257
279
|
info: {
|
|
258
280
|
fullRange: range,
|
|
259
|
-
additionalTokens:
|
|
260
|
-
fullLexeme: node.text
|
|
281
|
+
additionalTokens: variableComments.concat(sequenceComments).map(c => c[1]),
|
|
282
|
+
fullLexeme: node.text,
|
|
283
|
+
treeSitterId: node.id
|
|
261
284
|
}
|
|
262
285
|
};
|
|
263
286
|
}
|
|
@@ -324,7 +347,8 @@ function convertTreeNode(node) {
|
|
|
324
347
|
info: {
|
|
325
348
|
fullRange: range,
|
|
326
349
|
additionalTokens: [],
|
|
327
|
-
fullLexeme: node.text
|
|
350
|
+
fullLexeme: node.text,
|
|
351
|
+
treeSitterId: node.id
|
|
328
352
|
}
|
|
329
353
|
},
|
|
330
354
|
named: true
|
|
@@ -428,7 +452,8 @@ function convertTreeNode(node) {
|
|
|
428
452
|
info: {
|
|
429
453
|
fullRange: rhsRange,
|
|
430
454
|
additionalTokens: [],
|
|
431
|
-
fullLexeme: rhs.text
|
|
455
|
+
fullLexeme: rhs.text,
|
|
456
|
+
treeSitterId: rhs.id
|
|
432
457
|
}
|
|
433
458
|
}],
|
|
434
459
|
location: makeSourceRange(operator),
|
|
@@ -455,7 +480,8 @@ function convertTreeNode(node) {
|
|
|
455
480
|
info: {
|
|
456
481
|
fullRange: range,
|
|
457
482
|
additionalTokens: [],
|
|
458
|
-
fullLexeme: name.text
|
|
483
|
+
fullLexeme: name.text,
|
|
484
|
+
treeSitterId: name.id
|
|
459
485
|
}
|
|
460
486
|
},
|
|
461
487
|
special: name.text === '...',
|
|
@@ -465,7 +491,8 @@ function convertTreeNode(node) {
|
|
|
465
491
|
info: {
|
|
466
492
|
fullRange: range,
|
|
467
493
|
additionalTokens: [],
|
|
468
|
-
fullLexeme: name.text
|
|
494
|
+
fullLexeme: name.text,
|
|
495
|
+
treeSitterId: name.id
|
|
469
496
|
}
|
|
470
497
|
};
|
|
471
498
|
}
|
|
@@ -507,7 +534,8 @@ function convertTreeNode(node) {
|
|
|
507
534
|
info: {
|
|
508
535
|
fullRange: nameRange,
|
|
509
536
|
additionalTokens: [],
|
|
510
|
-
fullLexeme: nameNode.text
|
|
537
|
+
fullLexeme: nameNode.text,
|
|
538
|
+
treeSitterId: nameNode.id
|
|
511
539
|
}
|
|
512
540
|
};
|
|
513
541
|
}
|
|
@@ -527,7 +555,7 @@ function convertTreeNode(node) {
|
|
|
527
555
|
lexeme: undefined,
|
|
528
556
|
children: [],
|
|
529
557
|
grouping: undefined,
|
|
530
|
-
|
|
558
|
+
...defaultInfo
|
|
531
559
|
};
|
|
532
560
|
default:
|
|
533
561
|
throw new normalizer_data_1.ParseError(`unexpected node type ${node.type} at ${JSON.stringify(range)}`);
|
|
@@ -562,7 +590,8 @@ function splitComments(nodes) {
|
|
|
562
590
|
lexeme: node.text,
|
|
563
591
|
info: {
|
|
564
592
|
additionalTokens: [],
|
|
565
|
-
fullLexeme: node.text
|
|
593
|
+
fullLexeme: node.text,
|
|
594
|
+
treeSitterId: node.id
|
|
566
595
|
}
|
|
567
596
|
}]);
|
|
568
597
|
}
|