@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
35 lines (34 loc) • 1.27 kB
TypeScript
import type { Feature } from '../../feature';
import type { Writable } from 'ts-essentials';
import type { MergeableRecord } from '../../../../util/objects';
import { SourcePosition } from '../../../../util/range';
declare const initialFunctionDefinitionInfo: {
/** all, anonymous, assigned, non-assigned, ... */
total: number;
/** how many are really using OP-Lambda? */
lambdasOnly: number;
/** using `<<-`, `<-`, `=`, `->` `->>` */
assignedFunctions: number;
nestedFunctions: number;
/** functions that in some easily detectable way call themselves */
recursive: number;
deepestNesting: number;
};
export type FunctionDefinitionInfo = Writable<typeof initialFunctionDefinitionInfo>;
export declare const AllDefinitionsFileBase = "all-definitions";
export interface SingleFunctionDefinitionInformation extends MergeableRecord {
location: SourcePosition;
/** locations of all direct call sites */
callsites: SourcePosition[];
numberOfParameters: number;
returns: {
location: SourcePosition;
}[];
length: {
lines: number;
characters: number;
nonWhitespaceCharacters: number;
};
}
export declare const definedFunctions: Feature<FunctionDefinitionInfo>;
export {};