@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,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.processCommandLineArgs = exports.helpForOptions = void 0;
|
|
7
|
+
/**
|
|
8
|
+
* The goal of this module is simply to streamline the creation of new scripts.
|
|
9
|
+
*
|
|
10
|
+
* @module
|
|
11
|
+
*/
|
|
12
|
+
const scripts_info_1 = require("./scripts-info");
|
|
13
|
+
const command_line_usage_1 = __importDefault(require("command-line-usage"));
|
|
14
|
+
const log_1 = require("../../util/log");
|
|
15
|
+
const command_line_args_1 = __importDefault(require("command-line-args"));
|
|
16
|
+
const statistics_1 = require("../../statistics");
|
|
17
|
+
/**
|
|
18
|
+
* Automatically generates a uniform help from a given script (see {@link scripts}).
|
|
19
|
+
* Additionally, you can pass usage examples that may make use of the formatting instructions `{italic x}` and `{bold x}`.
|
|
20
|
+
*/
|
|
21
|
+
function helpForOptions(script, content) {
|
|
22
|
+
return (0, command_line_usage_1.default)([
|
|
23
|
+
{
|
|
24
|
+
header: scripts_info_1.scripts[script].description,
|
|
25
|
+
content: content.subtitle
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
header: 'Synopsis',
|
|
29
|
+
content: content.examples.map(e => `$ ${scripts_info_1.scripts[script].toolName} ${e}`)
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
header: 'Options',
|
|
33
|
+
optionList: scripts_info_1.scripts[script].options
|
|
34
|
+
}
|
|
35
|
+
]);
|
|
36
|
+
}
|
|
37
|
+
exports.helpForOptions = helpForOptions;
|
|
38
|
+
function processCommandLineArgs(script, requireAdditionally, help) {
|
|
39
|
+
const options = (0, command_line_args_1.default)(scripts_info_1.scripts[script].options);
|
|
40
|
+
if (options.help) {
|
|
41
|
+
console.log(helpForOptions(script, help));
|
|
42
|
+
process.exit(0);
|
|
43
|
+
}
|
|
44
|
+
else if (requireAdditionally.length > 0) {
|
|
45
|
+
const keys = new Set(Object.keys(options));
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- we know that they are not given if undefined
|
|
47
|
+
const missing = requireAdditionally.filter(k => !keys.has(k) || options[k] === undefined);
|
|
48
|
+
if (missing.length > 0) {
|
|
49
|
+
console.error((0, statistics_1.italic)(`Missing required arguments: ${missing.join(', ')}. Showing help.`));
|
|
50
|
+
console.log(helpForOptions(script, help));
|
|
51
|
+
process.exit(0);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
log_1.log.updateSettings(l => l.settings.minLevel = options.verbose ? 1 /* LogLevel.Trace */ : 5 /* LogLevel.Error */);
|
|
55
|
+
if (options.verbose) {
|
|
56
|
+
log_1.log.info(`running with (debugging) options, ${JSON.stringify(options)}`);
|
|
57
|
+
}
|
|
58
|
+
return options;
|
|
59
|
+
}
|
|
60
|
+
exports.processCommandLineArgs = processCommandLineArgs;
|
|
61
|
+
//# sourceMappingURL=script.js.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file contains the references to all scripts, as well as their explanations and arguments.
|
|
3
|
+
*
|
|
4
|
+
* @module
|
|
5
|
+
*/
|
|
6
|
+
import { MergeableRecord } from '../../util/objects';
|
|
7
|
+
import { OptionDefinition } from 'command-line-usage';
|
|
8
|
+
interface BaseScriptInformation extends MergeableRecord {
|
|
9
|
+
toolName: string;
|
|
10
|
+
target: string;
|
|
11
|
+
description: string;
|
|
12
|
+
usageExample: string;
|
|
13
|
+
options: OptionDefinition[];
|
|
14
|
+
}
|
|
15
|
+
export interface MasterScriptInformation extends BaseScriptInformation {
|
|
16
|
+
type: 'master script';
|
|
17
|
+
}
|
|
18
|
+
export interface HelperScriptInformation extends BaseScriptInformation {
|
|
19
|
+
type: 'helper script';
|
|
20
|
+
masterScripts: string[];
|
|
21
|
+
}
|
|
22
|
+
export type ScriptInformation = MasterScriptInformation | HelperScriptInformation;
|
|
23
|
+
export declare const scripts: Record<"slicer" | "benchmark" | "summarizer" | "export-quads" | "stats" | "stats-helper" | "benchmark-helper", ScriptInformation>;
|
|
24
|
+
export {};
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.scripts = void 0;
|
|
4
|
+
const options_1 = require("./options");
|
|
5
|
+
/**
|
|
6
|
+
* We hold `_scripts` internally, as the modifiable variant and export the readonly scripts
|
|
7
|
+
*/
|
|
8
|
+
const _scripts = {
|
|
9
|
+
'slicer': {
|
|
10
|
+
toolName: 'slicer',
|
|
11
|
+
target: 'slicer-app',
|
|
12
|
+
description: 'Static backwards executable slicer for R',
|
|
13
|
+
options: options_1.slicerOptions,
|
|
14
|
+
usageExample: 'slicer -c "12@product" test/testfiles/example.R',
|
|
15
|
+
type: 'master script',
|
|
16
|
+
},
|
|
17
|
+
'benchmark': {
|
|
18
|
+
toolName: 'benchmark',
|
|
19
|
+
target: 'benchmark-app',
|
|
20
|
+
description: 'Benchmark the static backwards slicer',
|
|
21
|
+
type: 'master script',
|
|
22
|
+
usageExample: 'benchmark "example-folder/"',
|
|
23
|
+
options: options_1.benchmarkOptions
|
|
24
|
+
},
|
|
25
|
+
'benchmark-helper': {
|
|
26
|
+
toolName: 'benchmark-single',
|
|
27
|
+
target: 'benchmark-helper-app',
|
|
28
|
+
description: 'Helper Script to Benchmark the Slicer',
|
|
29
|
+
usageExample: 'benchmark-single "example.R" --output "example.json"',
|
|
30
|
+
options: options_1.benchmarkHelperOptions,
|
|
31
|
+
type: 'helper script',
|
|
32
|
+
masterScripts: ['benchmark']
|
|
33
|
+
},
|
|
34
|
+
'summarizer': {
|
|
35
|
+
toolName: 'summarizer',
|
|
36
|
+
target: 'summarizer-app',
|
|
37
|
+
description: 'Summarize the results of the benchmark',
|
|
38
|
+
options: options_1.summarizerOptions,
|
|
39
|
+
usageExample: 'summarizer "benchmark.json"',
|
|
40
|
+
type: 'master script',
|
|
41
|
+
},
|
|
42
|
+
'export-quads': {
|
|
43
|
+
toolName: 'export-quads',
|
|
44
|
+
target: 'export-quads-app',
|
|
45
|
+
description: 'Export quads of the normalized AST of a given R code file',
|
|
46
|
+
usageExample: 'export-quads "example.R" --output "example.quads"',
|
|
47
|
+
options: options_1.exportQuadsOptions,
|
|
48
|
+
type: 'master script',
|
|
49
|
+
},
|
|
50
|
+
'stats': {
|
|
51
|
+
toolName: 'stats',
|
|
52
|
+
target: 'statistics-app',
|
|
53
|
+
description: 'Generate usage Statistics for R scripts',
|
|
54
|
+
options: options_1.statisticOptions,
|
|
55
|
+
usageExample: 'stats -i example.R --output-dir "output-folder/"',
|
|
56
|
+
type: 'master script',
|
|
57
|
+
},
|
|
58
|
+
'stats-helper': {
|
|
59
|
+
toolName: 'stats-helper',
|
|
60
|
+
target: 'statistics-helper-app',
|
|
61
|
+
description: 'Generate usage Statistics for a single R script (parallel helper for stats)',
|
|
62
|
+
options: options_1.statisticHelperOptions,
|
|
63
|
+
usageExample: 'stats-helper -i example.R --output-dir "output-folder/"',
|
|
64
|
+
type: 'helper script',
|
|
65
|
+
masterScripts: ['stats']
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
exports.scripts = _scripts;
|
|
69
|
+
//# sourceMappingURL=scripts-info.js.map
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const r_bridge_1 = require("../r-bridge");
|
|
7
|
+
const log_1 = require("../util/log");
|
|
8
|
+
const quads_1 = require("../util/quads");
|
|
9
|
+
const fs_1 = __importDefault(require("fs"));
|
|
10
|
+
const files_1 = require("../util/files");
|
|
11
|
+
const common_1 = require("./common");
|
|
12
|
+
const options = (0, common_1.processCommandLineArgs)('export-quads', [], {
|
|
13
|
+
subtitle: 'Generate RDF N-Quads from the AST of a given R script',
|
|
14
|
+
examples: [
|
|
15
|
+
'{bold -i} {italic example.R} {bold --output} {italic "example.quads"}',
|
|
16
|
+
'{bold --help}'
|
|
17
|
+
]
|
|
18
|
+
});
|
|
19
|
+
const shell = new r_bridge_1.RShell();
|
|
20
|
+
shell.tryToInjectHomeLibPath();
|
|
21
|
+
async function writeQuadForSingleFile(request, output) {
|
|
22
|
+
const normalized = await (0, r_bridge_1.retrieveNormalizedAstFromRCode)({
|
|
23
|
+
...request,
|
|
24
|
+
ensurePackageInstalled: true
|
|
25
|
+
}, shell);
|
|
26
|
+
const serialized = (0, quads_1.serialize2quads)(normalized.ast, { context: request.content });
|
|
27
|
+
log_1.log.info(`Appending quads to ${output}`);
|
|
28
|
+
fs_1.default.appendFileSync(output, serialized);
|
|
29
|
+
}
|
|
30
|
+
async function getQuads() {
|
|
31
|
+
const output = options.output ?? 'out.quads';
|
|
32
|
+
let skipped = 0;
|
|
33
|
+
for await (const request of (0, files_1.allRFilesFrom)(options.input, options.limit)) {
|
|
34
|
+
try {
|
|
35
|
+
await writeQuadForSingleFile(request, output);
|
|
36
|
+
}
|
|
37
|
+
catch (e) {
|
|
38
|
+
log_1.log.error(`[Skipped] Error while processing ${request.content}: ${e.message} (${e.stack ?? ''})`);
|
|
39
|
+
skipped++;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
console.log(`Skipped ${skipped} files`);
|
|
43
|
+
shell.close();
|
|
44
|
+
}
|
|
45
|
+
void getQuads();
|
|
46
|
+
//# sourceMappingURL=export-quads-app.js.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.controlflowStarCommand = exports.controlflowCommand = void 0;
|
|
4
|
+
const core_1 = require("../../../core");
|
|
5
|
+
const r_bridge_1 = require("../../../r-bridge");
|
|
6
|
+
const cfg_1 = require("../../../util/cfg");
|
|
7
|
+
const mermaid_1 = require("../../../util/mermaid");
|
|
8
|
+
async function controlflow(shell, remainingLine) {
|
|
9
|
+
return await new core_1.SteppingSlicer({
|
|
10
|
+
stepOfInterest: 'normalize',
|
|
11
|
+
shell,
|
|
12
|
+
request: (0, r_bridge_1.requestFromInput)(remainingLine.trim())
|
|
13
|
+
}).allRemainingSteps();
|
|
14
|
+
}
|
|
15
|
+
exports.controlflowCommand = {
|
|
16
|
+
description: 'Get mermaid code for the control-flow graph of R code, start with \'file://\' to indicate a file',
|
|
17
|
+
usageExample: ':controlflow',
|
|
18
|
+
aliases: ['cfg', 'cf'],
|
|
19
|
+
script: false,
|
|
20
|
+
fn: async (output, shell, remainingLine) => {
|
|
21
|
+
const result = await controlflow(shell, remainingLine);
|
|
22
|
+
const cfg = (0, cfg_1.extractCFG)(result.normalize);
|
|
23
|
+
output.stdout((0, mermaid_1.cfgToMermaid)(cfg, result.normalize));
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
exports.controlflowStarCommand = {
|
|
27
|
+
description: 'Get a mermaid url of the control-flow graph of R code, start with \'file://\' to indicate a file',
|
|
28
|
+
usageExample: ':controlflow',
|
|
29
|
+
aliases: ['cfg*', 'cf*'],
|
|
30
|
+
script: false,
|
|
31
|
+
fn: async (output, shell, remainingLine) => {
|
|
32
|
+
const result = await controlflow(shell, remainingLine);
|
|
33
|
+
const cfg = (0, cfg_1.extractCFG)(result.normalize);
|
|
34
|
+
output.stdout((0, mermaid_1.cfgToMermaidUrl)(cfg, result.normalize));
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=cfg.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReplCommand } from './main';
|
|
2
|
+
export declare const helpCommand: ReplCommand;
|
|
3
|
+
/**
|
|
4
|
+
* The names of all commands including their aliases (but without the leading `:`)
|
|
5
|
+
*/
|
|
6
|
+
export declare const commandNames: string[];
|
|
7
|
+
/**
|
|
8
|
+
* Get the command for a given command name or alias.
|
|
9
|
+
* @param command - The name of the command (without the leading `:`)
|
|
10
|
+
*/
|
|
11
|
+
export declare function getCommand(command: string): ReplCommand | undefined;
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCommand = exports.commandNames = exports.helpCommand = void 0;
|
|
4
|
+
const quit_1 = require("./quit");
|
|
5
|
+
const common_1 = require("../../common");
|
|
6
|
+
const execute_1 = require("../execute");
|
|
7
|
+
const args_1 = require("../../../util/args");
|
|
8
|
+
const prompt_1 = require("../prompt");
|
|
9
|
+
const statistics_1 = require("../../../statistics");
|
|
10
|
+
const version_1 = require("./version");
|
|
11
|
+
const parse_1 = require("./parse");
|
|
12
|
+
const assert_1 = require("../../../util/assert");
|
|
13
|
+
const execute_2 = require("./execute");
|
|
14
|
+
const normalize_1 = require("./normalize");
|
|
15
|
+
const dataflow_1 = require("./dataflow");
|
|
16
|
+
const cfg_1 = require("./cfg");
|
|
17
|
+
function printHelpForScript(script, f) {
|
|
18
|
+
const base = ` ${(0, statistics_1.bold)(padCmd(':' + script[0]), f)}${script[1].description}`;
|
|
19
|
+
if (script[1].aliases.length === 0) {
|
|
20
|
+
return base;
|
|
21
|
+
}
|
|
22
|
+
const aliases = script[1].aliases;
|
|
23
|
+
return `${base} (alias${aliases.length > 1 ? 'es' : ''}: ${aliases.map(a => (0, statistics_1.bold)(':' + a, f)).join(', ')})`;
|
|
24
|
+
}
|
|
25
|
+
exports.helpCommand = {
|
|
26
|
+
description: 'Show help information',
|
|
27
|
+
script: false,
|
|
28
|
+
usageExample: ':help',
|
|
29
|
+
aliases: ['h', '?'],
|
|
30
|
+
fn: output => {
|
|
31
|
+
output.stdout(`
|
|
32
|
+
You can always just enter R expressions which get evaluated right away:
|
|
33
|
+
${prompt_1.rawPrompt} ${(0, statistics_1.bold)('1 + 1', output.formatter)}
|
|
34
|
+
${(0, statistics_1.italic)('[1] 2', output.formatter)}
|
|
35
|
+
|
|
36
|
+
Besides that, you can use the following commands. The scripts ${(0, statistics_1.italic)('can', output.formatter)} accept further arguments. There are the following basic commands:
|
|
37
|
+
${Array.from(Object.entries(commands)).filter(([, { script }]) => !script).map(c => printHelpForScript(c, output.formatter)).join('\n')}
|
|
38
|
+
|
|
39
|
+
Furthermore, you can directly call the following scripts which accept arguments. If you are unsure, try to add ${(0, statistics_1.italic)('--help', output.formatter)} after the command.
|
|
40
|
+
${Array.from(Object.entries(commands)).filter(([, { script }]) => script).map(([command, { description }]) => ` ${(0, statistics_1.bold)(padCmd(':' + command), output.formatter)}${description}`).join('\n')}
|
|
41
|
+
|
|
42
|
+
You can combine commands by separating them with a semicolon ${(0, statistics_1.bold)(';', output.formatter)}.
|
|
43
|
+
`);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* All commands that should be available in the REPL.
|
|
48
|
+
*/
|
|
49
|
+
const commands = {
|
|
50
|
+
'help': exports.helpCommand,
|
|
51
|
+
'quit': quit_1.quitCommand,
|
|
52
|
+
'version': version_1.versionCommand,
|
|
53
|
+
'execute': execute_2.executeCommand,
|
|
54
|
+
'parse': parse_1.parseCommand,
|
|
55
|
+
'normalize': normalize_1.normalizeCommand,
|
|
56
|
+
'normalize*': normalize_1.normalizeStarCommand,
|
|
57
|
+
'dataflow': dataflow_1.dataflowCommand,
|
|
58
|
+
'dataflow*': dataflow_1.dataflowStarCommand,
|
|
59
|
+
'controlflow': cfg_1.controlflowCommand,
|
|
60
|
+
'controlflow*': cfg_1.controlflowStarCommand
|
|
61
|
+
};
|
|
62
|
+
for (const [script, { target, description, type }] of Object.entries(common_1.scripts)) {
|
|
63
|
+
if (type === 'master script') {
|
|
64
|
+
commands[script] = {
|
|
65
|
+
description,
|
|
66
|
+
aliases: [],
|
|
67
|
+
script: true,
|
|
68
|
+
usageExample: `:${script} --help`,
|
|
69
|
+
fn: async (output, _s, remainingLine) => {
|
|
70
|
+
await (0, execute_1.waitOnScript)(`${__dirname}/../../${target}`, (0, args_1.splitAtEscapeSensitive)(remainingLine), stdio => (0, execute_1.stdioCaptureProcessor)(stdio, msg => output.stdout(msg), msg => output.stderr(msg)));
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* The names of all commands including their aliases (but without the leading `:`)
|
|
77
|
+
*/
|
|
78
|
+
exports.commandNames = [];
|
|
79
|
+
// maps command names or aliases to the actual command name
|
|
80
|
+
const commandMapping = {};
|
|
81
|
+
for (const [command, { aliases }] of Object.entries(commands)) {
|
|
82
|
+
(0, assert_1.guard)(commandMapping[command] === undefined, `Command ${command} is already registered!`);
|
|
83
|
+
commandMapping[command] = command;
|
|
84
|
+
for (const alias of aliases) {
|
|
85
|
+
(0, assert_1.guard)(commandMapping[alias] === undefined, `Command (alias) ${alias} is already registered!`);
|
|
86
|
+
commandMapping[alias] = command;
|
|
87
|
+
}
|
|
88
|
+
exports.commandNames.push(command);
|
|
89
|
+
exports.commandNames.push(...aliases);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Get the command for a given command name or alias.
|
|
93
|
+
* @param command - The name of the command (without the leading `:`)
|
|
94
|
+
*/
|
|
95
|
+
function getCommand(command) {
|
|
96
|
+
return commands[commandMapping[command]];
|
|
97
|
+
}
|
|
98
|
+
exports.getCommand = getCommand;
|
|
99
|
+
const longestKey = Array.from(Object.keys(commands), k => k.length).reduce((p, n) => Math.max(p, n), 0);
|
|
100
|
+
function padCmd(string) {
|
|
101
|
+
return String(string).padEnd(longestKey + 2, ' ');
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.dataflowStarCommand = exports.dataflowCommand = void 0;
|
|
4
|
+
const core_1 = require("../../../core");
|
|
5
|
+
const r_bridge_1 = require("../../../r-bridge");
|
|
6
|
+
const dfg_1 = require("../../../util/mermaid/dfg");
|
|
7
|
+
async function dataflow(shell, remainingLine) {
|
|
8
|
+
return await new core_1.SteppingSlicer({
|
|
9
|
+
stepOfInterest: 'dataflow',
|
|
10
|
+
shell,
|
|
11
|
+
request: (0, r_bridge_1.requestFromInput)(remainingLine.trim())
|
|
12
|
+
}).allRemainingSteps();
|
|
13
|
+
}
|
|
14
|
+
exports.dataflowCommand = {
|
|
15
|
+
description: 'Get mermaid code for the dataflow graph of R code, start with \'file://\' to indicate a file',
|
|
16
|
+
usageExample: ':dataflow',
|
|
17
|
+
aliases: ['d', 'df'],
|
|
18
|
+
script: false,
|
|
19
|
+
fn: async (output, shell, remainingLine) => {
|
|
20
|
+
const result = await dataflow(shell, remainingLine);
|
|
21
|
+
output.stdout((0, dfg_1.graphToMermaid)(result.dataflow.graph, result.normalize.idMap, undefined, undefined, false));
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.dataflowStarCommand = {
|
|
25
|
+
description: 'Get a mermaid url of the dataflow graph of R code, start with \'file://\' to indicate a file',
|
|
26
|
+
usageExample: ':dataflow*',
|
|
27
|
+
aliases: ['d*', 'df*'],
|
|
28
|
+
script: false,
|
|
29
|
+
fn: async (output, shell, remainingLine) => {
|
|
30
|
+
const result = await dataflow(shell, remainingLine);
|
|
31
|
+
output.stdout((0, dfg_1.graphToMermaidUrl)(result.dataflow.graph, result.normalize.idMap, false));
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=dataflow.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.executeCommand = exports.executeRShellCommand = void 0;
|
|
4
|
+
const statistics_1 = require("../../../statistics");
|
|
5
|
+
async function executeRShellCommand(output, shell, statement) {
|
|
6
|
+
try {
|
|
7
|
+
const result = await shell.sendCommandWithOutput(statement, {
|
|
8
|
+
from: 'both',
|
|
9
|
+
automaticallyTrimOutput: true
|
|
10
|
+
});
|
|
11
|
+
output.stdout(`${(0, statistics_1.italic)(result.join('\n'), output.formatter)}\n`);
|
|
12
|
+
}
|
|
13
|
+
catch (e) {
|
|
14
|
+
output.stderr(`Error while executing '${statement}': ${e.message}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.executeRShellCommand = executeRShellCommand;
|
|
18
|
+
exports.executeCommand = {
|
|
19
|
+
description: 'Execute the given code as R code (essentially similar to using now command)',
|
|
20
|
+
usageExample: ':execute',
|
|
21
|
+
aliases: ['e', 'r'],
|
|
22
|
+
script: false,
|
|
23
|
+
fn: async (output, shell, remainingLine) => {
|
|
24
|
+
await executeRShellCommand(output, shell, remainingLine);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=execute.js.map
|
|
@@ -0,0 +1,19 @@
|
|
|
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("./main"), exports);
|
|
18
|
+
__exportStar(require("./commands"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { RShell } from '../../../r-bridge';
|
|
2
|
+
import { OutputFormatter } from '../../../statistics';
|
|
3
|
+
/**
|
|
4
|
+
* Defines the main interface for output of the repl.
|
|
5
|
+
* This allows us to redirect it (e.g., in the case of a server connection or tests).
|
|
6
|
+
*
|
|
7
|
+
* The formatter allows to dynamically change the use of ansi escape sequences (see {@link OutputFormatter})
|
|
8
|
+
*
|
|
9
|
+
* @see standardReplOutput
|
|
10
|
+
*/
|
|
11
|
+
export interface ReplOutput {
|
|
12
|
+
formatter: OutputFormatter;
|
|
13
|
+
stdout(msg: string): void;
|
|
14
|
+
stderr(msg: string): void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Default repl output that redirects everything to the stdout and stderror channels (linked to `console`).
|
|
18
|
+
* @see ReplOutput
|
|
19
|
+
*/
|
|
20
|
+
export declare const standardReplOutput: ReplOutput;
|
|
21
|
+
/**
|
|
22
|
+
* Content of a single command in the repl.
|
|
23
|
+
* The command may execute an external script or simply call *flowR* functions.
|
|
24
|
+
*/
|
|
25
|
+
export interface ReplCommand {
|
|
26
|
+
/** Aliases of the command (without the leading colon), every alias must be unique (this is checked at runtime) */
|
|
27
|
+
aliases: string[];
|
|
28
|
+
/** A human-readable description of what the command does */
|
|
29
|
+
description: string;
|
|
30
|
+
/** Does the command invoke another script? this is mainly used to automatically generate two separate lists when asking for help */
|
|
31
|
+
script: boolean;
|
|
32
|
+
/** Example of how to use the command, for example `:slicer --help` */
|
|
33
|
+
usageExample: string;
|
|
34
|
+
/**
|
|
35
|
+
* Function to execute when the command is invoked, it must not write to the command line but instead use the output handler.
|
|
36
|
+
* Furthermore, it has to obey the formatter defined in the {@link ReplOutput}.
|
|
37
|
+
*/
|
|
38
|
+
fn: (output: ReplOutput, shell: RShell, remainingLine: string) => Promise<void> | void;
|
|
39
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.standardReplOutput = void 0;
|
|
4
|
+
const statistics_1 = require("../../../statistics");
|
|
5
|
+
/**
|
|
6
|
+
* Default repl output that redirects everything to the stdout and stderror channels (linked to `console`).
|
|
7
|
+
* @see ReplOutput
|
|
8
|
+
*/
|
|
9
|
+
exports.standardReplOutput = {
|
|
10
|
+
formatter: statistics_1.formatter,
|
|
11
|
+
stdout: console.log,
|
|
12
|
+
stderr: console.error
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=main.js.map
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.normalizeStarCommand = exports.normalizeCommand = void 0;
|
|
4
|
+
const core_1 = require("../../../core");
|
|
5
|
+
const r_bridge_1 = require("../../../r-bridge");
|
|
6
|
+
const mermaid_1 = require("../../../util/mermaid");
|
|
7
|
+
async function normalize(shell, remainingLine) {
|
|
8
|
+
return await new core_1.SteppingSlicer({
|
|
9
|
+
stepOfInterest: 'normalize',
|
|
10
|
+
shell,
|
|
11
|
+
request: (0, r_bridge_1.requestFromInput)(remainingLine.trim())
|
|
12
|
+
}).allRemainingSteps();
|
|
13
|
+
}
|
|
14
|
+
exports.normalizeCommand = {
|
|
15
|
+
description: 'Get mermaid code for the normalized AST of R code, start with \'file://\' to indicate a file',
|
|
16
|
+
usageExample: ':normalize',
|
|
17
|
+
aliases: ['n'],
|
|
18
|
+
script: false,
|
|
19
|
+
fn: async (output, shell, remainingLine) => {
|
|
20
|
+
const result = await normalize(shell, remainingLine);
|
|
21
|
+
output.stdout((0, mermaid_1.normalizedAstToMermaid)(result.normalize.ast));
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.normalizeStarCommand = {
|
|
25
|
+
description: 'Get a mermaid url of the normalized AST of R code, start with \'file://\' to indicate a file',
|
|
26
|
+
usageExample: ':normalize',
|
|
27
|
+
aliases: ['n*'],
|
|
28
|
+
script: false,
|
|
29
|
+
fn: async (output, shell, remainingLine) => {
|
|
30
|
+
const result = await normalize(shell, remainingLine);
|
|
31
|
+
output.stdout((0, mermaid_1.normalizedAstToMermaidUrl)(result.normalize.ast));
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=normalize.js.map
|