Skip to content

Commit 73d6403

Browse files
committed
[skip ci] doc: update generated wiki pages (wiki/Analyzer,wiki/Interface,wiki/Normalized AST,wiki/Core)
1 parent 2b01a58 commit 73d6403

14 files changed

+93
-93
lines changed

wiki/Analyzer.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
_This document was generated from '[src/documentation/print-analyzer-wiki.ts](https://github.com/flowr-analysis/flowr/tree/main//src/documentation/print-analyzer-wiki.ts)' on 2025-10-24, 09:16:41 UTC presenting an overview of flowR's analyzer (v2.6.1, using R v4.5.0). Please do not edit this file/wiki page directly._
1+
_This document was generated from '[src/documentation/print-analyzer-wiki.ts](https://github.com/flowr-analysis/flowr/tree/main//src/documentation/print-analyzer-wiki.ts)' on 2025-10-27, 16:43:14 UTC presenting an overview of flowR's analyzer (v2.6.1, using R v4.5.0). Please do not edit this file/wiki page directly._
22

33
We are currently working on documenting the capabilities of the analyzer (with the plugins, their loading order, etc.). In general, the code documentation
4-
starting with the <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer.ts#L101"><code><span title="Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance. If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull . To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).">FlowrAnalyzer</span></code></a> and the <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer-builder.ts#L39"><code><span title="Builder for the FlowrAnalyzer , use it to configure all analysis aspects before creating the analyzer instance with .build() or .buildSync() . You can add new files and folders to analyze using the constructor or the .add() method.">FlowrAnalyzerBuilder</span></code></a>
4+
starting with the <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer.ts#L116"><code><span title="Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance. If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull . To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).">FlowrAnalyzer</span></code></a> and the <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer-builder.ts#L39"><code><span title="Builder for the FlowrAnalyzer , use it to configure all analysis aspects before creating the analyzer instance with .build() or .buildSync() . You can add new files and folders to analyze using the constructor or the .add() method.">FlowrAnalyzerBuilder</span></code></a>
55
should be the best starting point.
66

77
- [Overview](#Overview)
@@ -61,7 +61,7 @@ In general, we work on providing a set of example repositories that demonstrate
6161
6262
<h3 id="Plugin_Types">Plugin Types</h3>
6363
64-
During the construction of a new <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer.ts#L101"><code><span title="Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance. If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull . To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).">FlowrAnalyzer</span></code></a>, plugins of different types are applied at different stages of the analysis.
64+
During the construction of a new <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer.ts#L116"><code><span title="Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance. If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull . To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).">FlowrAnalyzer</span></code></a>, plugins of different types are applied at different stages of the analysis.
6565
These plugins are grouped by their <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/plugins/flowr-analyzer-plugin.ts#L28"><code><span title="Based on *when* and *what-for* the plugin is applied during the analysis, plugins are categorized into different types. Consult this diagram for an overview of orders and (implicit or explicit) dependencies: ┌───────────┐ ┌───────────────────┐ ┌─────────────┐ ┌───────────────┐ ┌───────┐ │ │ │ │ │ │ │ │ │ │ │ *Builder* ├──▶│ Project Discovery ├──▶│ File Loader ├──▶│ Dependencies ├──▶│ *DFA* │ │...">PluginType</span></code></a> and are applied in the following order (as shown in the documentation of the <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/plugins/flowr-analyzer-plugin.ts#L28"><code><span title="Based on *when* and *what-for* the plugin is applied during the analysis, plugins are categorized into different types. Consult this diagram for an overview of orders and (implicit or explicit) dependencies: ┌───────────┐ ┌───────────────────┐ ┌─────────────┐ ┌───────────────┐ ┌───────┐ │ │ │ │ │ │ │ │ │ │ │ *Builder* ├──▶│ Project Discovery ├──▶│ File Loader ├──▶│ Dependencies ├──▶│ *DFA* │ │...">PluginType</span></code></a>):
6666
6767
```text

wiki/Core.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
_This document was generated from '[src/documentation/print-core-wiki.ts](https://github.com/flowr-analysis/flowr/tree/main//src/documentation/print-core-wiki.ts)' on 2025-10-24, 09:17:41 UTC presenting an overview of flowR's core (v2.6.1, using R v4.5.0). Please do not edit this file/wiki page directly._
1+
_This document was generated from '[src/documentation/print-core-wiki.ts](https://github.com/flowr-analysis/flowr/tree/main//src/documentation/print-core-wiki.ts)' on 2025-10-27, 16:44:12 UTC presenting an overview of flowR's core (v2.6.1, using R v4.5.0). Please do not edit this file/wiki page directly._
22

33
This wiki page provides an overview of the inner workings of _flowR_.
44
It is mostly intended for developers that want to extend the capabilities of _flowR_
@@ -70,7 +70,7 @@ and the [Contributing Guidelines](https://github.com/flowr-analysis/flowr/tree/m
7070
## Creating and Using a flowR Analyzer Instance
7171
7272
The <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer-builder.ts#L39"><code><span title="Builder for the FlowrAnalyzer , use it to configure all analysis aspects before creating the analyzer instance with .build() or .buildSync() . You can add new files and folders to analyze using the constructor or the .add() method.">FlowrAnalyzerBuilder</span></code></a> class should be used as a starting point to create analyses in _flowR_.
73-
It provides a fluent interface for the configuration and creation of a <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer.ts#L101"><code><span title="Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance. If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull . To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).">FlowrAnalyzer</span></code></a> instance:
73+
It provides a fluent interface for the configuration and creation of a <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer.ts#L116"><code><span title="Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance. If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull . To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).">FlowrAnalyzer</span></code></a> instance:
7474
7575
7676
```ts
@@ -97,7 +97,7 @@ const cfg = await analyzer.controlflow();
9797
```
9898
9999
100-
The underlying <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer.ts#L101"><code><span title="Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance. If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull . To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).">FlowrAnalyzer</span></code></a> instance will take care of caching, updates, and running the appropriate steps.
100+
The underlying <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer.ts#L116"><code><span title="Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance. If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull . To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).">FlowrAnalyzer</span></code></a> instance will take care of caching, updates, and running the appropriate steps.
101101
It also exposes the [query API](https://github.com/flowr-analysis/flowr/wiki/Query-API):
102102
103103
@@ -109,7 +109,7 @@ const result = await analyzer.query([{
109109
```
110110
111111
112-
One of the additional advantages of using the <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer.ts#L101"><code><span title="Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance. If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull . To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).">FlowrAnalyzer</span></code></a> is that it provides you with context information about the analyzed files:
112+
One of the additional advantages of using the <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer.ts#L116"><code><span title="Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance. If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull . To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).">FlowrAnalyzer</span></code></a> is that it provides you with context information about the analyzed files:
113113
114114
115115
```ts
@@ -121,7 +121,7 @@ console.log('loading order', ctx.files.loadingOrder.getLoadingOrder());
121121
122122
## Pipelines and their Execution
123123
124-
At the core of every analysis done via a <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer.ts#L101"><code><span title="Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance. If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull . To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).">FlowrAnalyzer</span></code></a> is the <a href="https://github.com/flowr-analysis/flowr/tree/main//src/core/pipeline-executor.ts#L101"><code><span title="*Please note:** The PipelineExecutor is now considered to be a rather low-level API for flowR. While it still works and is the basis for all other layers, we strongly recommend using the FlowrAnalyzer and its builder to create and use an analyzer instance that is pre-configured for your use-case. The pipeline executor allows to execute arbitrary pipelines in a step-by-step fashion. If you are not...">PipelineExecutor</span></code></a> class which takes a sequence of analysis steps (in the form of a <a href="https://github.com/flowr-analysis/flowr/tree/main//src/core/steps/pipeline/pipeline.ts#L11"><code><span title="A pipeline is a collection of steps that are executed in a certain order . It is to be created createPipeline . If you want to get the type of all steps in the pipeline (given they are created canonically using const step names), refer to PipelineStepNames .">Pipeline</span></code></a>) and executes it
124+
At the core of every analysis done via a <a href="https://github.com/flowr-analysis/flowr/tree/main//src/project/flowr-analyzer.ts#L116"><code><span title="Central class for conducting analyses with FlowR. Use the FlowrAnalyzerBuilder to create a new instance. If you want the original pattern of creating a pipeline and running all steps, you can still do this with FlowrAnalyzer#runFull . To inspect the context of the analyzer, use FlowrAnalyzer#inspectContext (if you are a plugin and need to modify it, use FlowrAnalyzer#context instead).">FlowrAnalyzer</span></code></a> is the <a href="https://github.com/flowr-analysis/flowr/tree/main//src/core/pipeline-executor.ts#L101"><code><span title="*Please note:** The PipelineExecutor is now considered to be a rather low-level API for flowR. While it still works and is the basis for all other layers, we strongly recommend using the FlowrAnalyzer and its builder to create and use an analyzer instance that is pre-configured for your use-case. The pipeline executor allows to execute arbitrary pipelines in a step-by-step fashion. If you are not...">PipelineExecutor</span></code></a> class which takes a sequence of analysis steps (in the form of a <a href="https://github.com/flowr-analysis/flowr/tree/main//src/core/steps/pipeline/pipeline.ts#L11"><code><span title="A pipeline is a collection of steps that are executed in a certain order . It is to be created createPipeline . If you want to get the type of all steps in the pipeline (given they are created canonically using const step names), refer to PipelineStepNames .">Pipeline</span></code></a>) and executes it
125125
on a given input. In general, these pipeline steps are analysis agnostic and may use arbitrary input and ordering. However, two important and predefined pipelines,
126126
the <a href="https://github.com/flowr-analysis/flowr/tree/main//src/core/steps/pipeline/default-pipelines.ts#L31"><code><span title="The default pipeline for working with flowR, including the dataflow step. See the DEFAULT_NORMALIZE_PIPELINE for the pipeline without the dataflow step and the DEFAULT_SLICE_AND_RECONSTRUCT_PIPELINE for the pipeline with slicing and reconstructing steps">DEFAULT_DATAFLOW_PIPELINE</span></code></a> and the <a href="https://github.com/flowr-analysis/flowr/tree/main//src/core/steps/pipeline/default-pipelines.ts#L32"><code>TREE_SITTER_DATAFLOW_PIPELINE</code></a> adequately cover the most common analysis steps
127127
(differentiated only by the [Engine](https://github.com/flowr-analysis/flowr/wiki/Engines) used).
@@ -350,7 +350,7 @@ x"])
350350
351351
```
352352

353-
(The analysis required _5.3 ms_ (including parsing with the [r-shell](https://github.com/flowr-analysis/flowr/wiki/Engines) engine) within the generation environment.)
353+
(The analysis required _4.8 ms_ (including parsing with the [r-shell](https://github.com/flowr-analysis/flowr/wiki/Engines) engine) within the generation environment.)
354354

355355

356356

@@ -414,7 +414,7 @@ print`"]
414414
```
415415

416416

417-
(The analysis required _9.0 ms_ (including parse and normalize, using the [r-shell](https://github.com/flowr-analysis/flowr/wiki/Engines) engine) within the generation environment.)
417+
(The analysis required _8.6 ms_ (including parse and normalize, using the [r-shell](https://github.com/flowr-analysis/flowr/wiki/Engines) engine) within the generation environment.)
418418

419419

420420

@@ -522,7 +522,7 @@ Especially when you are just starting with flowR, we recommend using the REPL to
522522
>
523523
> ```
524524
>
525-
> (The analysis required _5.5 ms_ (including parsing with the [tree-sitter](https://github.com/flowr-analysis/flowr/wiki/Engines) engine) within the generation environment.)
525+
> (The analysis required _5.4 ms_ (including parsing with the [tree-sitter](https://github.com/flowr-analysis/flowr/wiki/Engines) engine) within the generation environment.)
526526
>
527527
>
528528
>
@@ -586,7 +586,7 @@ Especially when you are just starting with flowR, we recommend using the REPL to
586586
> ```
587587
>
588588
>
589-
> (The analysis required _1.7 ms_ (including parse and normalize, using the [tree-sitter](https://github.com/flowr-analysis/flowr/wiki/Engines) engine) within the generation environment.)
589+
> (The analysis required _1.6 ms_ (including parse and normalize, using the [tree-sitter](https://github.com/flowr-analysis/flowr/wiki/Engines) engine) within the generation environment.)
590590
>
591591
>
592592
>

0 commit comments

Comments
 (0)