UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

31 lines (30 loc) 1.6 kB
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 {};