@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
31 lines (30 loc) • 1.6 kB
TypeScript
import type { DataflowProcessorInformation } from '../../../../../processor';
import type { DataflowInformation } from '../../../../../info';
import type { PotentiallyEmptyRArgument } from '../../../../../../r-bridge/lang-4.x/ast/model/nodes/r-function-call';
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 { NodeId } from '../../../../../../r-bridge/lang-4.x/ast/model/processing/node-id';
import type { BrandedIdentifier } from '../../../../../environments/identifier';
/**
* Configuration options for the basic R pipe
*/
interface PipeConfiguration {
pipePlaceholderName: BrandedIdentifier;
/**
* this is for a pipe like `%<>%` which assigns its lhs
*/
assignLhs: boolean;
/**
* Whether to return the lhs (e.g., with the TPipe)
*/
returnLhs: boolean;
/**
* If so, also allow a symbol instead of a function as rhs, if it is the case, this automatically converts the symbol on the rhs to a function call
*/
rhsMightBeSymbol?: boolean;
}
/**
* Support for R's pipe functions like `|>` or magrittr's `%>%`
*/
export declare function processPipe<OtherInfo>(name: RSymbol<OtherInfo & ParentInformation>, args: readonly PotentiallyEmptyRArgument<OtherInfo & ParentInformation>[], rootId: NodeId, data: DataflowProcessorInformation<OtherInfo & ParentInformation>, { pipePlaceholderName, assignLhs, returnLhs, rhsMightBeSymbol }: PipeConfiguration): DataflowInformation;
export {};