@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
21 lines (20 loc) • 1.06 kB
TypeScript
import type { CallContextQuery, CallContextQueryResult, CallNameTypes, LinkTo } from './call-context-query-format';
import type { BasicQueryData } from '../../base-query-format';
export type PromotedCallTest = (t: string) => boolean;
/**
*
*/
export declare function promoteCallName(callName: CallNameTypes, exact?: boolean): PromotedCallTest;
export type PromotedLinkTo<LT = LinkTo> = Omit<LT, 'callName'> & {
callName: PromotedCallTest;
};
/**
* Multi-stage call context query resolve.
*
* 1. Resolve all calls in the DF graph that match the respective {@link DefaultCallContextQueryFormat#callName} regex.
* 2. If there is an alias attached, consider all call traces.
* 3. Identify their respective call targets, if {@link DefaultCallContextQueryFormat#callTargets} is set to be non-any.
* This happens during the main resolution!
* 4. Attach `linkTo` calls to the respective calls.
*/
export declare function executeCallContextQueries({ analyzer }: BasicQueryData, queries: readonly CallContextQuery[]): Promise<CallContextQueryResult>;