@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
35 lines (34 loc) • 1.62 kB
TypeScript
import { type DataflowProcessorInformation } from '../../../../../processor';
import type { DataflowInformation } from '../../../../../info';
import type { ParentInformation } from '../../../../../../r-bridge/lang-4.x/ast/model/processing/decorate';
import type { RSymbol } from '../../../../../../r-bridge/lang-4.x/ast/model/nodes/r-symbol';
import { type RFunctionArgument } from '../../../../../../r-bridge/lang-4.x/ast/model/nodes/r-function-call';
import type { NodeId } from '../../../../../../r-bridge/lang-4.x/ast/model/processing/node-id';
import type { KnownHooks } from '../../../../../hooks';
export interface RegisterHookConfig {
/** name of the hook to register, 'fn-exit' if it triggers on exit */
hook: KnownHooks;
args: {
/** the expression to register as hook */
expr: {
idx?: number;
name: string;
};
/** argument to control whether to add or replace the current hook */
add?: {
idx?: number;
name: string;
default: boolean;
};
/** argument to control whether to run the hook before or after other hooks */
after?: {
idx?: number;
name: string;
default: boolean;
};
};
}
/**
* Process a hook such as `on.exit`
*/
export declare function processRegisterHook<OtherInfo>(name: RSymbol<OtherInfo & ParentInformation>, args: readonly RFunctionArgument<OtherInfo & ParentInformation>[], rootId: NodeId, data: DataflowProcessorInformation<OtherInfo & ParentInformation>, config: RegisterHookConfig): DataflowInformation;