@eagleoutice/flowr-dev
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
34 lines (33 loc) • 1.68 kB
TypeScript
import { FlowrAnalyzerFilePlugin } from './flowr-analyzer-file-plugin';
import { SemVer } from 'semver';
import type { PathLike } from 'fs';
import type { FlowrAnalyzerContext } from '../../context/flowr-analyzer-context';
import type { FlowrFileProvider } from '../../context/flowr-file';
/**
* Tags a project manifest with the {@link FileRole.Manifest} role and lifts it, so the meta plugins reading it
* can look it up by role.
*/
declare abstract class FlowrAnalyzerManifestFilePlugin extends FlowrAnalyzerFilePlugin {
readonly version: SemVer;
private readonly pathPattern;
/**
* @param pathPattern - The pattern to identify the manifest, see the respective subclass for its default.
*/
constructor(pathPattern: RegExp);
applies(file: PathLike): boolean;
}
/** Lifts an rv `rproject.toml` to a {@link FlowrRProjectFile}. */
export declare class FlowrAnalyzerRProjectFilePlugin extends FlowrAnalyzerManifestFilePlugin {
readonly name = "flowr-analyzer-rproject-file-plugin";
readonly description = "Marks the rproject.toml manifest of an rv project.";
constructor(pathPattern?: RegExp);
process(_ctx: FlowrAnalyzerContext, file: FlowrFileProvider): [FlowrFileProvider, true];
}
/** Lifts a uvr `uvr.toml` to a {@link FlowrUvrManifestFile}. */
export declare class FlowrAnalyzerUvrManifestFilePlugin extends FlowrAnalyzerManifestFilePlugin {
readonly name = "flowr-analyzer-uvr-manifest-file-plugin";
readonly description = "Marks the uvr.toml manifest of a uvr project.";
constructor(pathPattern?: RegExp);
process(_ctx: FlowrAnalyzerContext, file: FlowrFileProvider): [FlowrFileProvider, true];
}
export {};