@eagleoutice/flowr 1.3.11
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/LICENSE +674 -0
- package/README.md +27 -0
- package/benchmark/benchmark-slicer.js +223 -0
- package/benchmark/index.d.ts +3 -0
- package/benchmark/index.js +20 -0
- package/benchmark/slicer.d.ts +100 -0
- package/benchmark/slicer.js +223 -0
- package/benchmark/stats/index.d.ts +10 -0
- package/benchmark/stats/index.js +27 -0
- package/benchmark/stats/print.d.ts +7 -0
- package/benchmark/stats/print.js +157 -0
- package/benchmark/stats/stats.d.ts +41 -0
- package/benchmark/stats/stats.js +6 -0
- package/benchmark/stopwatch.d.ts +35 -0
- package/benchmark/stopwatch.js +79 -0
- package/cli/benchmark-app.d.ts +9 -0
- package/cli/benchmark-app.js +52 -0
- package/cli/benchmark-helper-app.d.ts +7 -0
- package/cli/benchmark-helper-app.js +60 -0
- package/cli/common/features.d.ts +3 -0
- package/cli/common/features.js +30 -0
- package/cli/common/index.d.ts +2 -0
- package/cli/common/index.js +19 -0
- package/cli/common/options.d.ts +20 -0
- package/cli/common/options.js +82 -0
- package/cli/common/script.d.ts +21 -0
- package/cli/common/script.js +61 -0
- package/cli/common/scripts-info.d.ts +24 -0
- package/cli/common/scripts-info.js +69 -0
- package/cli/export-quads-app.d.ts +7 -0
- package/cli/export-quads-app.js +46 -0
- package/cli/repl/commands/cfg.d.ts +3 -0
- package/cli/repl/commands/cfg.js +37 -0
- package/cli/repl/commands/commands.d.ts +11 -0
- package/cli/repl/commands/commands.js +103 -0
- package/cli/repl/commands/dataflow.d.ts +3 -0
- package/cli/repl/commands/dataflow.js +34 -0
- package/cli/repl/commands/execute.d.ts +4 -0
- package/cli/repl/commands/execute.js +27 -0
- package/cli/repl/commands/index.d.ts +2 -0
- package/cli/repl/commands/index.js +19 -0
- package/cli/repl/commands/main.d.ts +39 -0
- package/cli/repl/commands/main.js +14 -0
- package/cli/repl/commands/normalize.d.ts +3 -0
- package/cli/repl/commands/normalize.js +34 -0
- package/cli/repl/commands/parse.d.ts +2 -0
- package/cli/repl/commands/parse.js +109 -0
- package/cli/repl/commands/quit.d.ts +2 -0
- package/cli/repl/commands/quit.js +12 -0
- package/cli/repl/commands/version.d.ts +16 -0
- package/cli/repl/commands/version.js +33 -0
- package/cli/repl/core.d.ts +41 -0
- package/cli/repl/core.js +89 -0
- package/cli/repl/execute.d.ts +28 -0
- package/cli/repl/execute.js +79 -0
- package/cli/repl/index.d.ts +5 -0
- package/cli/repl/index.js +22 -0
- package/cli/repl/prompt.d.ts +2 -0
- package/cli/repl/prompt.js +9 -0
- package/cli/repl/server/connection.d.ts +21 -0
- package/cli/repl/server/connection.js +217 -0
- package/cli/repl/server/messages/analysis.d.ts +71 -0
- package/cli/repl/server/messages/analysis.js +21 -0
- package/cli/repl/server/messages/error.d.ts +11 -0
- package/cli/repl/server/messages/error.js +3 -0
- package/cli/repl/server/messages/hello.d.ts +20 -0
- package/cli/repl/server/messages/hello.js +3 -0
- package/cli/repl/server/messages/index.d.ts +1 -0
- package/cli/repl/server/messages/index.js +3 -0
- package/cli/repl/server/messages/messages.d.ts +35 -0
- package/cli/repl/server/messages/messages.js +20 -0
- package/cli/repl/server/messages/repl.d.ts +33 -0
- package/cli/repl/server/messages/repl.js +17 -0
- package/cli/repl/server/messages/slice.d.ts +25 -0
- package/cli/repl/server/messages/slice.js +17 -0
- package/cli/repl/server/net.d.ts +33 -0
- package/cli/repl/server/net.js +24 -0
- package/cli/repl/server/send.d.ts +4 -0
- package/cli/repl/server/send.js +18 -0
- package/cli/repl/server/server.d.ts +20 -0
- package/cli/repl/server/server.js +66 -0
- package/cli/repl/server/validate.d.ts +15 -0
- package/cli/repl/server/validate.js +34 -0
- package/cli/slicer-app.d.ts +11 -0
- package/cli/slicer-app.js +81 -0
- package/cli/statistics-app.d.ts +11 -0
- package/cli/statistics-app.js +98 -0
- package/cli/statistics-helper-app.d.ts +11 -0
- package/cli/statistics-helper-app.js +83 -0
- package/cli/summarizer-app.d.ts +18 -0
- package/cli/summarizer-app.js +67 -0
- package/core/index.d.ts +4 -0
- package/core/index.js +23 -0
- package/core/input.d.ts +42 -0
- package/core/input.js +3 -0
- package/core/output.d.ts +15 -0
- package/core/output.js +3 -0
- package/core/pipeline-executor.js +221 -0
- package/core/print/dataflow-printer.d.ts +8 -0
- package/core/print/dataflow-printer.js +62 -0
- package/core/print/normalize-printer.d.ts +7 -0
- package/core/print/normalize-printer.js +31 -0
- package/core/print/parse-printer.d.ts +3 -0
- package/core/print/parse-printer.js +29 -0
- package/core/print/print.d.ts +47 -0
- package/core/print/print.js +13 -0
- package/core/print/slice-diff-ansi.d.ts +2 -0
- package/core/print/slice-diff-ansi.js +49 -0
- package/core/slicer.d.ts +123 -0
- package/core/slicer.js +227 -0
- package/core/stepping-slicer.js +160 -0
- package/core/steps/all/00-parse.js +19 -0
- package/core/steps/all/10-normalize.js +21 -0
- package/core/steps/all/20-dataflow.js +21 -0
- package/core/steps/all/30-slice.js +16 -0
- package/core/steps/all/40-reconstruct.js +16 -0
- package/core/steps/all/core/00-parse.js +24 -0
- package/core/steps/all/core/10-normalize.js +46 -0
- package/core/steps/all/core/20-dataflow.js +39 -0
- package/core/steps/all/static-slicing/00-slice.js +21 -0
- package/core/steps/all/static-slicing/10-reconstruct.js +21 -0
- package/core/steps/index.js +21 -0
- package/core/steps/input.js +3 -0
- package/core/steps/output.js +3 -0
- package/core/steps/pipeline/create.js +130 -0
- package/core/steps/pipeline/default.js +15 -0
- package/core/steps/pipeline/dependency-checker.js +76 -0
- package/core/steps/pipeline/index.js +20 -0
- package/core/steps/pipeline/invalid-pipeline-error.js +14 -0
- package/core/steps/pipeline/pipeline.js +28 -0
- package/core/steps/step.js +8 -0
- package/core/steps/steps-provider.js +3 -0
- package/core/steps/steps.js +35 -0
- package/core/steps.d.ts +166 -0
- package/core/steps.js +99 -0
- package/dataflow/common/environments/append.js +48 -0
- package/dataflow/common/environments/environment.js +165 -0
- package/dataflow/common/environments/index.js +23 -0
- package/dataflow/common/environments/overwrite.js +82 -0
- package/dataflow/common/environments/register.js +49 -0
- package/dataflow/common/environments/resolve-by-name.js +35 -0
- package/dataflow/common/environments/scopes.js +6 -0
- package/dataflow/common/environments/scoping.js +27 -0
- package/dataflow/environments/append.d.ts +8 -0
- package/dataflow/environments/append.js +48 -0
- package/dataflow/environments/environment.d.ts +78 -0
- package/dataflow/environments/environment.js +161 -0
- package/dataflow/environments/index.d.ts +7 -0
- package/dataflow/environments/index.js +23 -0
- package/dataflow/environments/overwrite.d.ts +6 -0
- package/dataflow/environments/overwrite.js +82 -0
- package/dataflow/environments/register.d.ts +7 -0
- package/dataflow/environments/register.js +39 -0
- package/dataflow/environments/resolve-by-name.d.ts +12 -0
- package/dataflow/environments/resolve-by-name.js +35 -0
- package/dataflow/environments/scopes.d.ts +6 -0
- package/dataflow/environments/scopes.js +6 -0
- package/dataflow/environments/scoping.d.ts +4 -0
- package/dataflow/environments/scoping.js +27 -0
- package/dataflow/extractor.d.ts +6 -0
- package/dataflow/extractor.js +60 -0
- package/dataflow/graph/diff.d.ts +18 -0
- package/dataflow/graph/diff.js +206 -0
- package/dataflow/graph/edge.d.ts +37 -0
- package/dataflow/graph/edge.js +32 -0
- package/dataflow/graph/equal.js +127 -0
- package/dataflow/graph/graph.d.ts +120 -0
- package/dataflow/graph/graph.js +298 -0
- package/dataflow/graph/index.d.ts +4 -0
- package/dataflow/graph/index.js +21 -0
- package/dataflow/graph/quads.d.ts +8 -0
- package/dataflow/graph/quads.js +27 -0
- package/dataflow/graph/vertex.d.ts +86 -0
- package/dataflow/graph/vertex.js +3 -0
- package/dataflow/index.d.ts +5 -0
- package/dataflow/index.js +24 -0
- package/dataflow/internal/info.d.ts +21 -0
- package/dataflow/internal/info.js +16 -0
- package/dataflow/internal/linker.d.ts +41 -0
- package/dataflow/internal/linker.js +255 -0
- package/dataflow/internal/process/access.d.ts +4 -0
- package/dataflow/internal/process/access.js +53 -0
- package/dataflow/internal/process/expression-list.d.ts +8 -0
- package/dataflow/internal/process/expression-list.js +148 -0
- package/dataflow/internal/process/functions/argument.d.ts +8 -0
- package/dataflow/internal/process/functions/argument.js +46 -0
- package/dataflow/internal/process/functions/exit-points.d.ts +2 -0
- package/dataflow/internal/process/functions/exit-points.js +121 -0
- package/dataflow/internal/process/functions/function-call.d.ts +5 -0
- package/dataflow/internal/process/functions/function-call.js +99 -0
- package/dataflow/internal/process/functions/function-definition.d.ts +4 -0
- package/dataflow/internal/process/functions/function-definition.js +176 -0
- package/dataflow/internal/process/functions/parameter.d.ts +4 -0
- package/dataflow/internal/process/functions/parameter.js +47 -0
- package/dataflow/internal/process/if-then-else.d.ts +4 -0
- package/dataflow/internal/process/if-then-else.js +56 -0
- package/dataflow/internal/process/loops/for-loop.d.ts +4 -0
- package/dataflow/internal/process/loops/for-loop.js +54 -0
- package/dataflow/internal/process/loops/repeat-loop.d.ts +4 -0
- package/dataflow/internal/process/loops/repeat-loop.js +21 -0
- package/dataflow/internal/process/loops/while-loop.d.ts +4 -0
- package/dataflow/internal/process/loops/while-loop.js +31 -0
- package/dataflow/internal/process/operators/assignment.d.ts +4 -0
- package/dataflow/internal/process/operators/assignment.js +129 -0
- package/dataflow/internal/process/operators/non-assignment-binary-op.d.ts +4 -0
- package/dataflow/internal/process/operators/non-assignment-binary-op.js +25 -0
- package/dataflow/internal/process/operators/pipe.d.ts +4 -0
- package/dataflow/internal/process/operators/pipe.js +46 -0
- package/dataflow/internal/process/operators/unary-op.d.ts +4 -0
- package/dataflow/internal/process/operators/unary-op.js +10 -0
- package/dataflow/internal/process/symbol.d.ts +4 -0
- package/dataflow/internal/process/symbol.js +21 -0
- package/dataflow/internal/process/uninteresting-leaf.d.ts +3 -0
- package/dataflow/internal/process/uninteresting-leaf.js +9 -0
- package/dataflow/processor.d.ts +47 -0
- package/dataflow/processor.js +20 -0
- package/dataflow/v1/extractor.js +60 -0
- package/dataflow/v1/graph/diff.js +206 -0
- package/dataflow/v1/graph/edge.js +32 -0
- package/dataflow/v1/graph/graph.js +298 -0
- package/dataflow/v1/graph/index.js +21 -0
- package/dataflow/v1/graph/quads.js +27 -0
- package/dataflow/v1/graph/vertex.js +3 -0
- package/dataflow/v1/index.js +24 -0
- package/dataflow/v1/internal/info.js +16 -0
- package/dataflow/v1/internal/linker.js +255 -0
- package/dataflow/v1/internal/process/access.js +54 -0
- package/dataflow/v1/internal/process/expression-list.js +154 -0
- package/dataflow/v1/internal/process/functions/argument.js +46 -0
- package/dataflow/v1/internal/process/functions/exit-points.js +125 -0
- package/dataflow/v1/internal/process/functions/function-call.js +99 -0
- package/dataflow/v1/internal/process/functions/function-definition.js +176 -0
- package/dataflow/v1/internal/process/functions/parameter.js +47 -0
- package/dataflow/v1/internal/process/if-then-else.js +57 -0
- package/dataflow/v1/internal/process/loops/for-loop.js +54 -0
- package/dataflow/v1/internal/process/loops/repeat-loop.js +21 -0
- package/dataflow/v1/internal/process/loops/while-loop.js +31 -0
- package/dataflow/v1/internal/process/operators/assignment.js +129 -0
- package/dataflow/v1/internal/process/operators/non-assignment-binary-op.js +25 -0
- package/dataflow/v1/internal/process/operators/pipe.js +46 -0
- package/dataflow/v1/internal/process/operators/unary-op.js +10 -0
- package/dataflow/v1/internal/process/symbol.js +21 -0
- package/dataflow/v1/internal/process/uninteresting-leaf.js +9 -0
- package/dataflow/v1/processor.js +20 -0
- package/dataflow/v2/entry.js +11 -0
- package/flowr-1.3.7.tgz +0 -0
- package/flowr.d.ts +26 -0
- package/flowr.js +135 -0
- package/index.d.ts +6 -0
- package/index.js +23 -0
- package/package.json +384 -0
- package/r-bridge/index.d.ts +11 -0
- package/r-bridge/index.js +28 -0
- package/r-bridge/lang-4.x/ast/index.d.ts +2 -0
- package/r-bridge/lang-4.x/ast/index.js +19 -0
- package/r-bridge/lang-4.x/ast/model/collect.d.ts +9 -0
- package/r-bridge/lang-4.x/ast/model/collect.js +23 -0
- package/r-bridge/lang-4.x/ast/model/index.d.ts +6 -0
- package/r-bridge/lang-4.x/ast/model/index.js +23 -0
- package/r-bridge/lang-4.x/ast/model/model.d.ts +127 -0
- package/r-bridge/lang-4.x/ast/model/model.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/index.d.ts +21 -0
- package/r-bridge/lang-4.x/ast/model/nodes/index.js +38 -0
- package/r-bridge/lang-4.x/ast/model/nodes/info/index.d.ts +13 -0
- package/r-bridge/lang-4.x/ast/model/nodes/info/index.js +27 -0
- package/r-bridge/lang-4.x/ast/model/nodes/info/r-delimiter.d.ts +12 -0
- package/r-bridge/lang-4.x/ast/model/nodes/info/r-delimiter.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-access.d.ts +24 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-access.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-argument.d.ts +11 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-argument.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-binary-op.d.ts +25 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-binary-op.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-break.d.ts +5 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-break.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-comment.d.ts +6 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-comment.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-expression-list.d.ts +6 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-expression-list.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-for-loop.d.ts +18 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-for-loop.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.d.ts +31 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-function-call.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-function-definition.d.ts +10 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-function-definition.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-if-then-else.d.ts +9 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-if-then-else.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-line-directive.d.ts +7 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-line-directive.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-logical.d.ts +7 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-logical.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-next.d.ts +5 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-next.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-number.d.ts +8 -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-parameter.d.ts +13 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-parameter.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-pipe.d.ts +7 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-pipe.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-repeat-loop.d.ts +12 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-repeat-loop.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-string.d.ts +7 -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 +7 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-symbol.js +9 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-unary-op.d.ts +18 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-unary-op.js +3 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-while-loop.d.ts +13 -0
- package/r-bridge/lang-4.x/ast/model/nodes/r-while-loop.js +3 -0
- package/r-bridge/lang-4.x/ast/model/operators.d.ts +46 -0
- package/r-bridge/lang-4.x/ast/model/operators.js +67 -0
- package/r-bridge/lang-4.x/ast/model/processing/decorate.d.ts +81 -0
- package/r-bridge/lang-4.x/ast/model/processing/decorate.js +342 -0
- package/r-bridge/lang-4.x/ast/model/processing/fold.d.ts +10 -0
- package/r-bridge/lang-4.x/ast/model/processing/fold.js +20 -0
- package/r-bridge/lang-4.x/ast/model/processing/index.d.ts +5 -0
- package/r-bridge/lang-4.x/ast/model/processing/index.js +22 -0
- package/r-bridge/lang-4.x/ast/model/processing/role.d.ts +41 -0
- package/r-bridge/lang-4.x/ast/model/processing/role.js +17 -0
- package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.d.ts +61 -0
- package/r-bridge/lang-4.x/ast/model/processing/stateful-fold.js +87 -0
- package/r-bridge/lang-4.x/ast/model/processing/visitor.d.ts +13 -0
- package/r-bridge/lang-4.x/ast/model/processing/visitor.js +109 -0
- package/r-bridge/lang-4.x/ast/model/type.d.ts +206 -0
- package/r-bridge/lang-4.x/ast/model/type.js +18 -0
- package/r-bridge/lang-4.x/ast/model/versions.d.ts +9 -0
- package/r-bridge/lang-4.x/ast/model/versions.js +13 -0
- package/r-bridge/lang-4.x/ast/parser/xml/common/config.js +16 -0
- package/r-bridge/lang-4.x/ast/parser/xml/common/input-format.js +42 -0
- package/r-bridge/lang-4.x/ast/parser/xml/common/meta.js +118 -0
- package/r-bridge/lang-4.x/ast/parser/xml/common/xml-to-json.js +58 -0
- package/r-bridge/lang-4.x/ast/parser/xml/config.d.ts +25 -0
- package/r-bridge/lang-4.x/ast/parser/xml/config.js +16 -0
- package/r-bridge/lang-4.x/ast/parser/xml/data.d.ts +22 -0
- package/r-bridge/lang-4.x/ast/parser/xml/data.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/xml/hooks.d.ts +292 -0
- package/r-bridge/lang-4.x/ast/parser/xml/hooks.js +136 -0
- package/r-bridge/lang-4.x/ast/parser/xml/index.d.ts +5 -0
- package/r-bridge/lang-4.x/ast/parser/xml/index.js +22 -0
- package/r-bridge/lang-4.x/ast/parser/xml/input-format.d.ts +32 -0
- package/r-bridge/lang-4.x/ast/parser/xml/input-format.js +33 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/access.d.ts +12 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/access.js +107 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/control/if-then-else.d.ts +15 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/control/if-then-else.js +32 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/control/if-then.d.ts +13 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/control/if-then.js +46 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/control/index.d.ts +2 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/control/index.js +19 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/expression.d.ts +10 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/expression.js +65 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/index.d.ts +1 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/expression/index.js +18 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/argument.d.ts +13 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/argument.js +74 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/call.d.ts +13 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/call.js +149 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/definition.d.ts +12 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/definition.js +60 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/index.d.ts +2 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/index.js +20 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/parameter.d.ts +13 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/functions/parameter.js +64 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/index.d.ts +10 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/index.js +27 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/break.d.ts +4 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/break.js +24 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/for.d.ts +4 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/for.js +72 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/index.d.ts +5 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/index.js +22 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/next.d.ts +4 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/next.js +24 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/repeat.d.ts +13 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/repeat.js +42 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/while.d.ts +4 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/loops/while.js +45 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/meta.d.ts +50 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/meta.js +118 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/binary.d.ts +8 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/binary.js +162 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/index.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/index.js +20 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/special.d.ts +6 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/special.js +24 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/unary.d.ts +13 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/operators/unary.js +59 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/other/comment.d.ts +11 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/other/comment.js +34 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/other/index.d.ts +1 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/other/index.js +18 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/other/line-directive.d.ts +12 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/other/line-directive.js +55 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/elements.d.ts +10 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/elements.js +159 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/index.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/index.js +20 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/root.d.ts +4 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/root.js +34 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/single-element.d.ts +13 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/structure/single-element.js +64 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/values/index.d.ts +3 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/values/index.js +20 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/values/number.d.ts +13 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/values/number.js +56 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/values/string.d.ts +11 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/values/string.js +41 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/values/symbol.d.ts +14 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/values/symbol.js +56 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/xml-to-json.d.ts +9 -0
- package/r-bridge/lang-4.x/ast/parser/xml/internal/xml-to-json.js +51 -0
- package/r-bridge/lang-4.x/ast/parser/xml/parser.d.ts +17 -0
- package/r-bridge/lang-4.x/ast/parser/xml/parser.js +30 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/data.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/hooks.js +136 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/index.js +22 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/access.js +107 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/control/if-then-else.js +32 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/control/if-then.js +46 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/control/index.js +19 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/expression/expression.js +65 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/expression/index.js +18 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/argument.js +74 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/call.js +149 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/definition.js +60 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/index.js +20 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/functions/parameter.js +64 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/index.js +27 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/break.js +24 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/for.js +72 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/index.js +22 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/next.js +24 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/repeat.js +42 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/loops/while.js +45 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/operators/binary.js +162 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/operators/index.js +20 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/operators/special.js +24 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/operators/unary.js +59 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/other/comment.js +34 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/other/index.js +18 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/other/line-directive.js +55 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/structure/elements.js +159 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/structure/index.js +20 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/structure/root.js +34 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/structure/single-element.js +64 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/values/index.js +20 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/values/number.js +56 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/values/string.js +41 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/internal/values/symbol.js +56 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v1/normalize.js +30 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/data.js +3 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/access.js +95 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/expression.js +99 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/functions/argument.js +71 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/operators/binary.js +30 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/operators/index.js +19 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/operators/unary.js +35 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/other/comment.js +25 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/other/index.js +18 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/other/line-directive.js +38 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/root.js +26 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/single-element.js +63 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/values/index.js +18 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/values/number.js +46 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/values/string.js +33 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/internal/values/symbol.js +63 -0
- package/r-bridge/lang-4.x/ast/parser/xml/v2/normalize.js +25 -0
- package/r-bridge/lang-4.x/index.d.ts +2 -0
- package/r-bridge/lang-4.x/index.js +19 -0
- package/r-bridge/lang-4.x/values.d.ts +39 -0
- package/r-bridge/lang-4.x/values.js +149 -0
- package/r-bridge/retriever.d.ts +48 -0
- package/r-bridge/retriever.js +71 -0
- package/r-bridge/shell.d.ts +147 -0
- package/r-bridge/shell.js +423 -0
- package/reconstruct/reconstruct.d.ts +28 -0
- package/reconstruct/reconstruct.js +448 -0
- package/slicing/criterion/collect-all.d.ts +36 -0
- package/slicing/criterion/collect-all.js +23 -0
- package/slicing/criterion/filters/all-variables.d.ts +2 -0
- package/slicing/criterion/filters/all-variables.js +63 -0
- package/slicing/criterion/filters/index.d.ts +1 -0
- package/slicing/criterion/filters/index.js +18 -0
- package/slicing/criterion/index.d.ts +3 -0
- package/slicing/criterion/index.js +20 -0
- package/slicing/criterion/parse.d.ts +20 -0
- package/slicing/criterion/parse.js +79 -0
- package/slicing/index.d.ts +3 -0
- package/slicing/index.js +20 -0
- package/slicing/static/index.d.ts +1 -0
- package/slicing/static/index.js +18 -0
- package/slicing/static/static-slicer.d.ts +29 -0
- package/slicing/static/static-slicer.js +186 -0
- package/statistics/features/common-syntax-probability.d.ts +30 -0
- package/statistics/features/common-syntax-probability.js +159 -0
- package/statistics/features/feature.d.ts +175 -0
- package/statistics/features/feature.js +30 -0
- package/statistics/features/index.d.ts +1 -0
- package/statistics/features/index.js +18 -0
- package/statistics/features/post-processing.d.ts +12 -0
- package/statistics/features/post-processing.js +21 -0
- package/statistics/features/supported/assignments/assignments.d.ts +11 -0
- package/statistics/features/supported/assignments/assignments.js +53 -0
- package/statistics/features/supported/assignments/index.d.ts +1 -0
- package/statistics/features/supported/assignments/index.js +6 -0
- package/statistics/features/supported/assignments/post-process.d.ts +3 -0
- package/statistics/features/supported/assignments/post-process.js +125 -0
- package/statistics/features/supported/comments/comments.d.ts +18 -0
- package/statistics/features/supported/comments/comments.js +133 -0
- package/statistics/features/supported/comments/index.d.ts +1 -0
- package/statistics/features/supported/comments/index.js +6 -0
- package/statistics/features/supported/comments/post-process.d.ts +3 -0
- package/statistics/features/supported/comments/post-process.js +50 -0
- package/statistics/features/supported/control-flow/control-flow.d.ts +17 -0
- package/statistics/features/supported/control-flow/control-flow.js +67 -0
- package/statistics/features/supported/control-flow/index.d.ts +1 -0
- package/statistics/features/supported/control-flow/index.js +6 -0
- package/statistics/features/supported/control-flow/post-process.d.ts +3 -0
- package/statistics/features/supported/control-flow/post-process.js +65 -0
- package/statistics/features/supported/data-access/data-access.d.ts +15 -0
- package/statistics/features/supported/data-access/data-access.js +118 -0
- package/statistics/features/supported/data-access/index.d.ts +1 -0
- package/statistics/features/supported/data-access/index.js +6 -0
- package/statistics/features/supported/data-access/post-process.d.ts +3 -0
- package/statistics/features/supported/data-access/post-process.js +107 -0
- package/statistics/features/supported/defined-functions/defined-functions.d.ts +35 -0
- package/statistics/features/supported/defined-functions/defined-functions.js +139 -0
- package/statistics/features/supported/defined-functions/index.d.ts +1 -0
- package/statistics/features/supported/defined-functions/index.js +6 -0
- package/statistics/features/supported/defined-functions/post-process.d.ts +6 -0
- package/statistics/features/supported/defined-functions/post-process.js +177 -0
- package/statistics/features/supported/expression-list/expression-list.d.ts +9 -0
- package/statistics/features/supported/expression-list/expression-list.js +36 -0
- package/statistics/features/supported/expression-list/index.d.ts +1 -0
- package/statistics/features/supported/expression-list/index.js +6 -0
- package/statistics/features/supported/expression-list/post-process.d.ts +3 -0
- package/statistics/features/supported/expression-list/post-process.js +44 -0
- package/statistics/features/supported/index.d.ts +10 -0
- package/statistics/features/supported/index.js +27 -0
- package/statistics/features/supported/loops/index.d.ts +1 -0
- package/statistics/features/supported/loops/index.js +6 -0
- package/statistics/features/supported/loops/loops.d.ts +20 -0
- package/statistics/features/supported/loops/loops.js +79 -0
- package/statistics/features/supported/loops/post-process.d.ts +3 -0
- package/statistics/features/supported/loops/post-process.js +72 -0
- package/statistics/features/supported/used-functions/index.d.ts +1 -0
- package/statistics/features/supported/used-functions/index.js +6 -0
- package/statistics/features/supported/used-functions/post-process.d.ts +6 -0
- package/statistics/features/supported/used-functions/post-process.js +179 -0
- package/statistics/features/supported/used-functions/used-functions.d.ts +24 -0
- package/statistics/features/supported/used-functions/used-functions.js +95 -0
- package/statistics/features/supported/used-packages/index.d.ts +1 -0
- package/statistics/features/supported/used-packages/index.js +6 -0
- package/statistics/features/supported/used-packages/post-process.d.ts +3 -0
- package/statistics/features/supported/used-packages/post-process.js +121 -0
- package/statistics/features/supported/used-packages/used-packages.d.ts +16 -0
- package/statistics/features/supported/used-packages/used-packages.js +130 -0
- package/statistics/features/supported/values/index.d.ts +1 -0
- package/statistics/features/supported/values/index.js +6 -0
- package/statistics/features/supported/values/post-process.d.ts +3 -0
- package/statistics/features/supported/values/post-process.js +72 -0
- package/statistics/features/supported/values/values.d.ts +14 -0
- package/statistics/features/supported/values/values.js +101 -0
- package/statistics/features/supported/variables/index.d.ts +1 -0
- package/statistics/features/supported/variables/index.js +6 -0
- package/statistics/features/supported/variables/post-process.d.ts +9 -0
- package/statistics/features/supported/variables/post-process.js +122 -0
- package/statistics/features/supported/variables/variables.d.ts +15 -0
- package/statistics/features/supported/variables/variables.js +70 -0
- package/statistics/index.d.ts +6 -0
- package/statistics/index.js +24 -0
- package/statistics/meta-statistics.d.ts +33 -0
- package/statistics/meta-statistics.js +17 -0
- package/statistics/output/ansi.d.ts +50 -0
- package/statistics/output/ansi.js +58 -0
- package/statistics/output/file-provider.d.ts +37 -0
- package/statistics/output/file-provider.js +97 -0
- package/statistics/output/index.d.ts +4 -0
- package/statistics/output/index.js +21 -0
- package/statistics/output/print-stats.d.ts +17 -0
- package/statistics/output/print-stats.js +69 -0
- package/statistics/output/statistics-file.d.ts +37 -0
- package/statistics/output/statistics-file.js +69 -0
- package/statistics/statistics.d.ts +24 -0
- package/statistics/statistics.js +109 -0
- package/util/args.d.ts +14 -0
- package/util/args.js +67 -0
- package/util/arrays.d.ts +44 -0
- package/util/arrays.js +145 -0
- package/util/assert.d.ts +11 -0
- package/util/assert.js +35 -0
- package/util/bimap.d.ts +24 -0
- package/util/bimap.js +71 -0
- package/util/cfg.d.ts +55 -0
- package/util/cfg.js +498 -0
- package/util/defaultmap.d.ts +34 -0
- package/util/defaultmap.js +65 -0
- package/util/diff.d.ts +43 -0
- package/util/diff.js +28 -0
- package/util/files.d.ts +54 -0
- package/util/files.js +144 -0
- package/util/json.d.ts +2 -0
- package/util/json.js +28 -0
- package/util/log.d.ts +22 -0
- package/util/log.js +48 -0
- package/util/mermaid/ast.d.ts +6 -0
- package/util/mermaid/ast.js +28 -0
- package/util/mermaid/cfg.d.ts +7 -0
- package/util/mermaid/cfg.js +44 -0
- package/util/mermaid/dfg.d.ts +21 -0
- package/util/mermaid/dfg.js +165 -0
- package/util/mermaid/index.d.ts +3 -0
- package/util/mermaid/index.js +20 -0
- package/util/mermaid/mermaid.d.ts +7 -0
- package/util/mermaid/mermaid.js +24 -0
- package/util/numbers.d.ts +1 -0
- package/util/numbers.js +9 -0
- package/util/objects.d.ts +17 -0
- package/util/objects.js +60 -0
- package/util/os.d.ts +2 -0
- package/util/os.js +25 -0
- package/util/parallel.d.ts +30 -0
- package/util/parallel.js +103 -0
- package/util/quads.d.ts +92 -0
- package/util/quads.js +189 -0
- package/util/random.d.ts +4 -0
- package/util/random.js +22 -0
- package/util/range.d.ts +32 -0
- package/util/range.js +61 -0
- package/util/set.d.ts +8 -0
- package/util/set.js +32 -0
- package/util/strings.d.ts +12 -0
- package/util/strings.js +41 -0
- package/util/summarizer/auto-detect.d.ts +2 -0
- package/util/summarizer/auto-detect.js +32 -0
- package/util/summarizer/benchmark/benchmark-summarizer.js +208 -0
- package/util/summarizer/benchmark/data.d.ts +66 -0
- package/util/summarizer/benchmark/data.js +13 -0
- package/util/summarizer/benchmark/first-phase/input.d.ts +2 -0
- package/util/summarizer/benchmark/first-phase/input.js +59 -0
- package/util/summarizer/benchmark/first-phase/process.d.ts +10 -0
- package/util/summarizer/benchmark/first-phase/process.js +208 -0
- package/util/summarizer/benchmark/second-phase/graph.d.ts +2 -0
- package/util/summarizer/benchmark/second-phase/graph.js +54 -0
- package/util/summarizer/benchmark/second-phase/process.d.ts +4 -0
- package/util/summarizer/benchmark/second-phase/process.js +89 -0
- package/util/summarizer/benchmark/summarizer.d.ts +34 -0
- package/util/summarizer/benchmark/summarizer.js +53 -0
- package/util/summarizer/statistics/first-phase/process.d.ts +6 -0
- package/util/summarizer/statistics/first-phase/process.js +81 -0
- package/util/summarizer/statistics/post-process/clusterer.d.ts +26 -0
- package/util/summarizer/statistics/post-process/clusterer.js +43 -0
- package/util/summarizer/statistics/post-process/file-based-count.d.ts +17 -0
- package/util/summarizer/statistics/post-process/file-based-count.js +49 -0
- package/util/summarizer/statistics/post-process/histogram.d.ts +59 -0
- package/util/summarizer/statistics/post-process/histogram.js +128 -0
- package/util/summarizer/statistics/post-process/index.d.ts +4 -0
- package/util/summarizer/statistics/post-process/index.js +21 -0
- package/util/summarizer/statistics/post-process/post-process-output.d.ts +16 -0
- package/util/summarizer/statistics/post-process/post-process-output.js +104 -0
- package/util/summarizer/statistics/second-phase/process.d.ts +11 -0
- package/util/summarizer/statistics/second-phase/process.js +117 -0
- package/util/summarizer/statistics/summarizer.d.ts +34 -0
- package/util/summarizer/statistics/summarizer.js +135 -0
- package/util/summarizer/summarizer.d.ts +25 -0
- package/util/summarizer/summarizer.js +13 -0
- package/util/time.d.ts +6 -0
- package/util/time.js +13 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { SourceRange } from '../../../../util/range';
|
|
2
|
+
import { RType } from './type';
|
|
3
|
+
import { MergeableRecord } from '../../../../util/objects';
|
|
4
|
+
import { RNa, RNull } from '../../values';
|
|
5
|
+
import { RExpressionList, RNumber, RSymbol, RLogical, RString, RBinaryOp, RUnaryOp, RIfThenElse, RParameter, RFunctionDefinition, RRepeatLoop, RForLoop, RWhileLoop, RComment, RFunctionCall, RBreak, RNext, RArgument, RNamedAccess, RIndexAccess, RLineDirective, RPipe } from './nodes';
|
|
6
|
+
import { OtherInfoNode } from './nodes/info';
|
|
7
|
+
/** Simply an empty interface used to say that there are additional decorations (see {@link Base}). */
|
|
8
|
+
export interface NoInfo {
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Will be used to reconstruct the source of the given element in the R-ast.
|
|
12
|
+
* This will not be part of most comparisons as it is mainly of interest to the reconstruction of R code.
|
|
13
|
+
*/
|
|
14
|
+
interface Source {
|
|
15
|
+
/**
|
|
16
|
+
* The range is different from the assigned {@link Location} as it refers to the complete source range covered by the given
|
|
17
|
+
* element.
|
|
18
|
+
* <p>
|
|
19
|
+
* As an example for the difference, consider a for loop, the location of `for` will be just the three characters,
|
|
20
|
+
* but the *range* will be everything including the loop body.
|
|
21
|
+
*/
|
|
22
|
+
fullRange?: SourceRange;
|
|
23
|
+
/**
|
|
24
|
+
* Similar to {@link Source.fullRange} this contains the complete R lexeme of the given element.
|
|
25
|
+
*/
|
|
26
|
+
fullLexeme?: string;
|
|
27
|
+
/**
|
|
28
|
+
* This may contain additional elements that were part of the original R code, but are not part of the normalized R-ast.
|
|
29
|
+
* This allows inline-comments!
|
|
30
|
+
*/
|
|
31
|
+
additionalTokens?: OtherInfoNode[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Provides the common base of all {@link RNode | RNodes}.
|
|
35
|
+
*
|
|
36
|
+
* @typeParam Info - can be used to store additional information about the node
|
|
37
|
+
* @typeParam LexemeType - the type of the lexeme, probably always a `string` or `string | undefined`
|
|
38
|
+
*/
|
|
39
|
+
export interface Base<Info, LexemeType = string> extends MergeableRecord {
|
|
40
|
+
type: RType;
|
|
41
|
+
/** the original string retrieved from R, can be used for further identification */
|
|
42
|
+
lexeme: LexemeType;
|
|
43
|
+
/** allows to attach additional information to the node */
|
|
44
|
+
info: Info & Source;
|
|
45
|
+
}
|
|
46
|
+
export interface WithChildren<Info, Children extends Base<Info, string | undefined>> {
|
|
47
|
+
children: Children[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* A helper interface we use to "mark" leaf nodes.
|
|
51
|
+
* <p>
|
|
52
|
+
* Please be aware, that this is not marking from a language perspective,
|
|
53
|
+
* as it is equivalent to the {@link Base} interface.
|
|
54
|
+
* It is intended to help humans understand the code.
|
|
55
|
+
*/
|
|
56
|
+
export interface Leaf<Info = NoInfo, LexemeType = string> extends Base<Info, LexemeType> {
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Indicates, that the respective {@link Base} node has known source code
|
|
60
|
+
* location information.
|
|
61
|
+
*/
|
|
62
|
+
export interface Location {
|
|
63
|
+
/**
|
|
64
|
+
* The location may differ from what is stated in {@link Source#fullRange} as it
|
|
65
|
+
* represents the location identified by the R parser.
|
|
66
|
+
*
|
|
67
|
+
* @see Source#fullRange
|
|
68
|
+
*/
|
|
69
|
+
location: SourceRange;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Represents the type of namespaces in the R programming language.
|
|
73
|
+
* At the moment, this is only the name of the namespace.
|
|
74
|
+
*/
|
|
75
|
+
export type NamespaceIdentifier = string;
|
|
76
|
+
/**
|
|
77
|
+
* Similar to {@link Location} this is an interface that indicates that
|
|
78
|
+
* the respective {@link Base} node has a respective property (a namespace).
|
|
79
|
+
*/
|
|
80
|
+
export interface Namespace {
|
|
81
|
+
/**
|
|
82
|
+
* The namespace attached to the given node
|
|
83
|
+
* (e.g., a namespaced symbol in `x::y`).
|
|
84
|
+
*/
|
|
85
|
+
namespace: NamespaceIdentifier | undefined;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* This subtype of {@link RNode} represents all types of constants
|
|
89
|
+
* represented in the normalized AST.
|
|
90
|
+
*/
|
|
91
|
+
export type RConstant<Info> = RNumber<Info> | RString<Info> | RLogical<Info> | RSymbol<Info, typeof RNull | typeof RNa>;
|
|
92
|
+
/**
|
|
93
|
+
* This subtype of {@link RNode} represents all types of {@link Leaf} nodes in the
|
|
94
|
+
* normalized AST.
|
|
95
|
+
*/
|
|
96
|
+
export type RSingleNode<Info> = RComment<Info> | RSymbol<Info> | RConstant<Info> | RBreak<Info> | RNext<Info> | RLineDirective<Info>;
|
|
97
|
+
/**
|
|
98
|
+
* This subtype of {@link RNode} represents all looping constructs in the normalized AST.
|
|
99
|
+
*/
|
|
100
|
+
export type RLoopConstructs<Info> = RForLoop<Info> | RRepeatLoop<Info> | RWhileLoop<Info>;
|
|
101
|
+
/**
|
|
102
|
+
* As an extension to {@link RLoopConstructs}, this subtype of {@link RNode} includes
|
|
103
|
+
* the {@link RIfThenElse} construct as well.
|
|
104
|
+
*/
|
|
105
|
+
export type RConstructs<Info> = RLoopConstructs<Info> | RIfThenElse<Info>;
|
|
106
|
+
/**
|
|
107
|
+
* This subtype of {@link RNode} represents all types related to functions
|
|
108
|
+
* (calls and definitions) in the normalized AST.
|
|
109
|
+
*/
|
|
110
|
+
export type RFunctions<Info> = RFunctionDefinition<Info> | RFunctionCall<Info> | RParameter<Info> | RArgument<Info>;
|
|
111
|
+
/**
|
|
112
|
+
* This subtype of {@link RNode} represents all types of otherwise hard to categorize
|
|
113
|
+
* nodes in the normalized AST. At the moment these are the comment-like nodes.
|
|
114
|
+
*/
|
|
115
|
+
export type ROther<Info> = RComment<Info> | RLineDirective<Info>;
|
|
116
|
+
/**
|
|
117
|
+
* The `RNode` type is the union of all possible nodes in the R-ast.
|
|
118
|
+
* It should be used whenever you either not care what kind of
|
|
119
|
+
* node you are dealing with or if you want to handle all possible nodes.
|
|
120
|
+
* <p>
|
|
121
|
+
*
|
|
122
|
+
* All other subtypes (like {@link RLoopConstructs}) listed above
|
|
123
|
+
* can be used to restrict the kind of node. They do not have to be
|
|
124
|
+
* exclusive, some nodes can appear in multiple subtypes.
|
|
125
|
+
*/
|
|
126
|
+
export type RNode<Info = NoInfo> = RExpressionList<Info> | RFunctions<Info> | ROther<Info> | RConstructs<Info> | RNamedAccess<Info> | RIndexAccess<Info> | RUnaryOp<Info> | RBinaryOp<Info> | RSingleNode<Info> | RPipe<Info>;
|
|
127
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export * from './r-number';
|
|
2
|
+
export * from './r-string';
|
|
3
|
+
export * from './r-symbol';
|
|
4
|
+
export * from './r-comment';
|
|
5
|
+
export * from './r-line-directive';
|
|
6
|
+
export * from './r-for-loop';
|
|
7
|
+
export * from './r-logical';
|
|
8
|
+
export * from './r-unary-op';
|
|
9
|
+
export * from './r-binary-op';
|
|
10
|
+
export * from './r-while-loop';
|
|
11
|
+
export * from './r-if-then-else';
|
|
12
|
+
export * from './r-repeat-loop';
|
|
13
|
+
export * from './r-access';
|
|
14
|
+
export * from './r-pipe';
|
|
15
|
+
export * from './r-function-call';
|
|
16
|
+
export * from './r-function-definition';
|
|
17
|
+
export * from './r-parameter';
|
|
18
|
+
export * from './r-argument';
|
|
19
|
+
export * from './r-expression-list';
|
|
20
|
+
export * from './r-next';
|
|
21
|
+
export * from './r-break';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./r-number"), exports);
|
|
18
|
+
__exportStar(require("./r-string"), exports);
|
|
19
|
+
__exportStar(require("./r-symbol"), exports);
|
|
20
|
+
__exportStar(require("./r-comment"), exports);
|
|
21
|
+
__exportStar(require("./r-line-directive"), exports);
|
|
22
|
+
__exportStar(require("./r-for-loop"), exports);
|
|
23
|
+
__exportStar(require("./r-logical"), exports);
|
|
24
|
+
__exportStar(require("./r-unary-op"), exports);
|
|
25
|
+
__exportStar(require("./r-binary-op"), exports);
|
|
26
|
+
__exportStar(require("./r-while-loop"), exports);
|
|
27
|
+
__exportStar(require("./r-if-then-else"), exports);
|
|
28
|
+
__exportStar(require("./r-repeat-loop"), exports);
|
|
29
|
+
__exportStar(require("./r-access"), exports);
|
|
30
|
+
__exportStar(require("./r-pipe"), exports);
|
|
31
|
+
__exportStar(require("./r-function-call"), exports);
|
|
32
|
+
__exportStar(require("./r-function-definition"), exports);
|
|
33
|
+
__exportStar(require("./r-parameter"), exports);
|
|
34
|
+
__exportStar(require("./r-argument"), exports);
|
|
35
|
+
__exportStar(require("./r-expression-list"), exports);
|
|
36
|
+
__exportStar(require("./r-next"), exports);
|
|
37
|
+
__exportStar(require("./r-break"), exports);
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Other nodes are not part of the normal ast but shipped with the source information.
|
|
3
|
+
* This way, elements which are uninteresting to us (like braces and parentheses) can be ignored safely for most operations,
|
|
4
|
+
* but are still available and linked to the corresponding element.
|
|
5
|
+
* Comments attached within a structure are also part of this.
|
|
6
|
+
* <p>
|
|
7
|
+
* In the future, they could be still integrated into the main ast.
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { RNode } from '../../model';
|
|
11
|
+
import { RDelimiter } from './r-delimiter';
|
|
12
|
+
export * from './r-delimiter';
|
|
13
|
+
export type OtherInfoNode = RNode | RDelimiter;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Other nodes are not part of the normal ast but shipped with the source information.
|
|
4
|
+
* This way, elements which are uninteresting to us (like braces and parentheses) can be ignored safely for most operations,
|
|
5
|
+
* but are still available and linked to the corresponding element.
|
|
6
|
+
* Comments attached within a structure are also part of this.
|
|
7
|
+
* <p>
|
|
8
|
+
* In the future, they could be still integrated into the main ast.
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
+
if (k2 === undefined) k2 = k;
|
|
13
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
+
}
|
|
17
|
+
Object.defineProperty(o, k2, desc);
|
|
18
|
+
}) : (function(o, m, k, k2) {
|
|
19
|
+
if (k2 === undefined) k2 = k;
|
|
20
|
+
o[k2] = m[k];
|
|
21
|
+
}));
|
|
22
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
23
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
__exportStar(require("./r-delimiter"), exports);
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RawRType, RType } from '../../type';
|
|
2
|
+
import { Location } from '../../model';
|
|
3
|
+
import { MergeableRecord } from '../../../../../../util/objects';
|
|
4
|
+
/**
|
|
5
|
+
* Combines '`{`', '`}`', '`(`', '`)`', and other delimiters used by R, they are ignored for most analysis
|
|
6
|
+
* but helpful during reconstruction.
|
|
7
|
+
*/
|
|
8
|
+
export interface RDelimiter extends MergeableRecord, Location {
|
|
9
|
+
readonly type: RType.Delimiter;
|
|
10
|
+
readonly lexeme: string;
|
|
11
|
+
readonly subtype: RawRType;
|
|
12
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Base, Location, NoInfo, RNode } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import { RArgument } from './r-argument';
|
|
4
|
+
/**
|
|
5
|
+
* Represents an R Indexing operation with `$`, `@`, `[[`, or `[`.
|
|
6
|
+
*/
|
|
7
|
+
interface RAccessBase<Info = NoInfo> extends Base<Info>, Location {
|
|
8
|
+
readonly type: RType.Access;
|
|
9
|
+
/** the accessed container/variable/expression */
|
|
10
|
+
accessed: RNode<Info>;
|
|
11
|
+
operator: '[' | '[[' | '$' | '@';
|
|
12
|
+
}
|
|
13
|
+
export interface RNamedAccess<Info = NoInfo> extends RAccessBase<Info> {
|
|
14
|
+
operator: '$' | '@';
|
|
15
|
+
access: string;
|
|
16
|
+
}
|
|
17
|
+
/** access can be a number, a variable or an expression that resolves to one, a filter etc. */
|
|
18
|
+
export interface RIndexAccess<Info = NoInfo> extends RAccessBase<Info> {
|
|
19
|
+
operator: '[' | '[[';
|
|
20
|
+
/** is null if the access is empty, e.g. `a[,3]` */
|
|
21
|
+
access: (RArgument<Info> | null)[];
|
|
22
|
+
}
|
|
23
|
+
export type RAccess<Info = NoInfo> = RNamedAccess<Info> | RIndexAccess<Info>;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Base, Location, NoInfo, RNode } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import { RSymbol } from './r-symbol';
|
|
4
|
+
/**
|
|
5
|
+
* Represents a named or unnamed argument of a function definition in R.
|
|
6
|
+
*/
|
|
7
|
+
export interface RArgument<Info = NoInfo> extends Base<Info>, Location {
|
|
8
|
+
readonly type: RType.Argument;
|
|
9
|
+
name: RSymbol<Info> | undefined;
|
|
10
|
+
value: RNode<Info> | undefined;
|
|
11
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Base, Location, NoInfo, RNode } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import { BinaryOperatorFlavor } from '../operators';
|
|
4
|
+
export interface RBinaryOp<Info = NoInfo> extends Base<Info>, Location {
|
|
5
|
+
readonly type: RType.BinaryOp;
|
|
6
|
+
readonly flavor: BinaryOperatorFlavor;
|
|
7
|
+
operator: string;
|
|
8
|
+
lhs: RNode<Info>;
|
|
9
|
+
rhs: RNode<Info>;
|
|
10
|
+
}
|
|
11
|
+
export interface RLogicalBinaryOp<Info = NoInfo> extends RBinaryOp<Info> {
|
|
12
|
+
flavor: 'logical';
|
|
13
|
+
}
|
|
14
|
+
export interface RArithmeticBinaryOp<Info = NoInfo> extends RBinaryOp<Info> {
|
|
15
|
+
flavor: 'arithmetic';
|
|
16
|
+
}
|
|
17
|
+
export interface RComparisonBinaryOp<Info = NoInfo> extends RBinaryOp<Info> {
|
|
18
|
+
flavor: 'comparison';
|
|
19
|
+
}
|
|
20
|
+
export interface RAssignmentOp<Info = NoInfo> extends RBinaryOp<Info> {
|
|
21
|
+
flavor: 'assignment';
|
|
22
|
+
}
|
|
23
|
+
export interface RModelFormulaBinaryOp<Info = NoInfo> extends RBinaryOp<Info> {
|
|
24
|
+
flavor: 'model formula';
|
|
25
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Base, Location, NoInfo, RNode, WithChildren } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
export interface RExpressionList<Info = NoInfo> extends WithChildren<Info, RNode<Info>>, Base<Info, string | undefined>, Partial<Location> {
|
|
4
|
+
readonly type: RType.ExpressionList;
|
|
5
|
+
readonly content?: string;
|
|
6
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Base, Location, NoInfo, RNode } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import { RSymbol } from './r-symbol';
|
|
4
|
+
import { RExpressionList } from './r-expression-list';
|
|
5
|
+
/**
|
|
6
|
+
* ```ts
|
|
7
|
+
* for(<variable> in <vector>) <body>
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
export interface RForLoop<Info = NoInfo> extends Base<Info>, Location {
|
|
11
|
+
readonly type: RType.ForLoop;
|
|
12
|
+
/** variable used in for-loop: <p> `for(<variable> in ...) ...`*/
|
|
13
|
+
variable: RSymbol<Info>;
|
|
14
|
+
/** vector used in for-loop: <p> `for(... in <vector>) ...`*/
|
|
15
|
+
vector: RNode<Info>;
|
|
16
|
+
/** body used in for-loop: <p> `for(... in ...) <body>`*/
|
|
17
|
+
body: RExpressionList<Info>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Base, Location, NoInfo, RNode } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import { RSymbol } from './r-symbol';
|
|
4
|
+
import { RArgument } from './r-argument';
|
|
5
|
+
/**
|
|
6
|
+
* Calls of functions like `a()` and `foo(42, "hello")`.
|
|
7
|
+
*
|
|
8
|
+
* @see RUnnamedFunctionCall
|
|
9
|
+
*/
|
|
10
|
+
export interface RNamedFunctionCall<Info = NoInfo> extends Base<Info>, Location {
|
|
11
|
+
readonly type: RType.FunctionCall;
|
|
12
|
+
readonly flavor: 'named';
|
|
13
|
+
functionName: RSymbol<Info>;
|
|
14
|
+
/** arguments can be undefined, for example when calling as `a(1, ,3)` */
|
|
15
|
+
arguments: (RArgument<Info> | undefined)[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Direct calls of functions like `(function(x) { x })(3)`.
|
|
19
|
+
*
|
|
20
|
+
* @see RNamedFunctionCall
|
|
21
|
+
*/
|
|
22
|
+
export interface RUnnamedFunctionCall<Info = NoInfo> extends Base<Info>, Location {
|
|
23
|
+
readonly type: RType.FunctionCall;
|
|
24
|
+
readonly flavor: 'unnamed';
|
|
25
|
+
calledFunction: RNode<Info>;
|
|
26
|
+
/** marks function calls like `3 %xx% 4` which have been written in special infix notation */
|
|
27
|
+
infixSpecial?: boolean;
|
|
28
|
+
/** arguments can be undefined, for example when calling as `a(1, ,3)` */
|
|
29
|
+
arguments: (RArgument<Info> | undefined)[];
|
|
30
|
+
}
|
|
31
|
+
export type RFunctionCall<Info = NoInfo> = RNamedFunctionCall<Info> | RUnnamedFunctionCall<Info>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Base, Location, NoInfo } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import { RParameter } from './r-parameter';
|
|
4
|
+
import { RExpressionList } from './r-expression-list';
|
|
5
|
+
export interface RFunctionDefinition<Info = NoInfo> extends Base<Info>, Location {
|
|
6
|
+
readonly type: RType.FunctionDefinition;
|
|
7
|
+
/** the R formals, to our knowledge they must be unique */
|
|
8
|
+
parameters: RParameter<Info>[];
|
|
9
|
+
body: RExpressionList<Info>;
|
|
10
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Base, Location, NoInfo, RNode } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import { RExpressionList } from './r-expression-list';
|
|
4
|
+
export interface RIfThenElse<Info = NoInfo> extends Base<Info>, Location {
|
|
5
|
+
readonly type: RType.IfThenElse;
|
|
6
|
+
condition: RNode<Info>;
|
|
7
|
+
then: RExpressionList<Info>;
|
|
8
|
+
otherwise?: RExpressionList<Info>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Leaf, Location, NoInfo } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import { RNumberValue } from '../../../values';
|
|
4
|
+
/** includes numeric, integer, and complex */
|
|
5
|
+
export interface RNumber<Info = NoInfo> extends Leaf<Info>, Location {
|
|
6
|
+
readonly type: RType.Number;
|
|
7
|
+
content: RNumberValue;
|
|
8
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Base, Location, NoInfo, RNode } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import { RSymbol } from './r-symbol';
|
|
4
|
+
/**
|
|
5
|
+
* Represents a parameter of a function definition in R.
|
|
6
|
+
*/
|
|
7
|
+
export interface RParameter<Info = NoInfo> extends Base<Info>, Location {
|
|
8
|
+
readonly type: RType.Parameter;
|
|
9
|
+
name: RSymbol<Info>;
|
|
10
|
+
/** is it the special ... parameter? */
|
|
11
|
+
special: boolean;
|
|
12
|
+
defaultValue: RNode<Info> | undefined;
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Base, Location, NoInfo } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import { RExpressionList } from './r-expression-list';
|
|
4
|
+
/**
|
|
5
|
+
* ```ts
|
|
6
|
+
* repeat <body>
|
|
7
|
+
* ```
|
|
8
|
+
*/
|
|
9
|
+
export interface RRepeatLoop<Info = NoInfo> extends Base<Info>, Location {
|
|
10
|
+
readonly type: RType.RepeatLoop;
|
|
11
|
+
body: RExpressionList<Info>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Leaf, Location, NoInfo } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import { RStringValue } from '../../../values';
|
|
4
|
+
export interface RString<Info = NoInfo> extends Leaf<Info>, Location {
|
|
5
|
+
readonly type: RType.String;
|
|
6
|
+
content: RStringValue;
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Leaf, Location, Namespace, NoInfo } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
export declare function isSpecialSymbol(symbol: RSymbol): boolean;
|
|
4
|
+
export interface RSymbol<Info = NoInfo, T extends string = string> extends Leaf<Info>, Namespace, Location {
|
|
5
|
+
readonly type: RType.Symbol;
|
|
6
|
+
content: T;
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSpecialSymbol = void 0;
|
|
4
|
+
const values_1 = require("../../../values");
|
|
5
|
+
function isSpecialSymbol(symbol) {
|
|
6
|
+
return symbol.content === values_1.RNull || symbol.content === values_1.RNa;
|
|
7
|
+
}
|
|
8
|
+
exports.isSpecialSymbol = isSpecialSymbol;
|
|
9
|
+
//# sourceMappingURL=r-symbol.js.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Base, Location, NoInfo, RNode } from '../model';
|
|
2
|
+
import { RType } from '../type';
|
|
3
|
+
import { UnaryOperatorFlavor } from '../operators';
|
|
4
|
+
export interface RUnaryOp<Info = NoInfo> extends Base<Info>, Location {
|
|
5
|
+
readonly type: RType.UnaryOp;
|
|
6
|
+
readonly flavor: UnaryOperatorFlavor;
|
|
7
|
+
operator: string;
|
|
8
|
+
operand: RNode<Info>;
|
|
9
|
+
}
|
|
10
|
+
export interface RLogicalUnaryOp<Info = NoInfo> extends RUnaryOp<Info> {
|
|
11
|
+
flavor: 'logical';
|
|
12
|
+
}
|
|
13
|
+
export interface RArithmeticUnaryOp<Info = NoInfo> extends RUnaryOp<Info> {
|
|
14
|
+
flavor: 'arithmetic';
|
|
15
|
+
}
|
|
16
|
+
export interface RModelFormulaUnaryOp<Info = NoInfo> extends RUnaryOp<Info> {
|
|
17
|
+
flavor: 'model formula';
|
|
18
|
+
}
|