@eagleoutice/flowr-dev
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
20 lines (19 loc) • 1.2 kB
TypeScript
import { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
import type { CallGraph } from '../../../dataflow/graph/call-graph';
import type { ReadOnlyFlowrAnalyzerDependenciesContext } from '../../../project/context/flowr-analyzer-dependencies-context';
/** the internal callees of a library/built-in leaf call, and the package they belong to */
export interface LibraryLeafExpansion {
readonly pkg: string;
readonly callees: readonly string[];
}
/**
* The transitive internal callees of a library/built-in leaf call `id` (a `built-in:pkg:fn` node id), resolved
* from the project's loaded signature-database sources.
*/
export declare function transitiveLibraryCallees(id: NodeId, deps: ReadOnlyFlowrAnalyzerDependenciesContext): LibraryLeafExpansion | undefined;
/**
* Expands every library/built-in leaf call reachable in `graph` into its internal callees (see
* {@link transitiveLibraryCallees}), adding one synthetic `pkg:calleeName` edge per expanded callee straight off
* the leaf. Returns a fresh copy of `graph`.
*/
export declare function expandCallGraphLibraryInternals(graph: CallGraph, deps: ReadOnlyFlowrAnalyzerDependenciesContext): CallGraph;