@eagleoutice/flowr-dev
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
18 lines (17 loc) • 1.29 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 { PotentiallyEmptyRArgument } from '../../../../../../r-bridge/lang-4.x/ast/model/nodes/r-function-call';
import type { RSymbol } from '../../../../../../r-bridge/lang-4.x/ast/model/nodes/r-symbol';
import type { NodeId } from '../../../../../../r-bridge/lang-4.x/ast/model/processing/node-id';
import type { ForceArguments } from '../common';
/**
* Process a special built-in binary operator, possibly lazily.
* Only `&&`/`||` short-circuit: their right-hand side gets a control dependency and only the left is read.
* The vectorized `&`/`|` evaluate both and hence use `lazy: false`.
* Not related to R's special binary operators like `%in%`.
*/
export declare function processSpecialBinOp<OtherInfo>(name: RSymbol<OtherInfo & ParentInformation>, args: readonly PotentiallyEmptyRArgument<OtherInfo & ParentInformation>[], rootId: NodeId, data: DataflowProcessorInformation<OtherInfo & ParentInformation>, config: {
readonly lazy: boolean;
readonly evalRhsWhen?: boolean;
} & ForceArguments): DataflowInformation;