UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

35 lines (34 loc) 1.62 kB
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;