@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
40 lines (39 loc) • 1.67 kB
TypeScript
import type { KnownParser } from '../parser';
declare const enum RequiredFeature {
/** https://github.com/flowr-analysis/flowr/labels/typing */
Typing = 0,
/** https://github.com/flowr-analysis/flowr/labels/abstract%20interpretation */
AbstractInterpretation = 1
}
export interface FlowrCapability {
/** The human-readable name of the capability */
readonly name: string;
/**
* The unique identifier of the capability, used to refer to it independent of the location.
* We could use a key-value mapping. However, this way, an id is self-contained and can be moved around as one object.
*/
readonly id: string;
/** A list of features that are required for the capability, extend at need. */
readonly needs?: RequiredFeature[];
readonly description?: string;
readonly example?: string | ((parser: KnownParser) => Promise<string>);
/** A list of URLs that provide additional information about the capability */
readonly url?: {
name: string;
href: string;
}[];
/** The level of support for the capability, undefined if it is a meta-capability that does not need such an attribute */
readonly supported?: 'not' | 'partially' | 'fully';
readonly capabilities?: readonly FlowrCapability[];
}
export interface FlowrCapabilities {
/** The human-readable name of the capabilities */
readonly name: string;
/** A description of the capabilities */
readonly description: string;
/** The version of the capabilities */
readonly version: string;
/** A list of the capabilities */
readonly capabilities: readonly FlowrCapability[];
}
export {};