UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

39 lines (38 loc) 1.59 kB
import { type SummarizedMeasurement } from '../../util/summarizer'; import { RFalse, RTrue } from '../../r-bridge/lang-4.x/convert-values'; import type { RArgument } from '../../r-bridge/lang-4.x/ast/model/nodes/r-argument'; import type { RNode } from '../../r-bridge/lang-4.x/ast/model/model'; export interface CommonSyntaxTypeCounts<Measurement = bigint> { total: Measurement; multiple: Measurement; empty: Measurement; withArgument: Measurement; noValue: Measurement; singleVar: Record<string, Measurement>; number: Record<number, Measurement>; integer: Record<number, Measurement>; complex: Record<number, Measurement>; string: Record<string, Measurement>; logical: Record<typeof RTrue | typeof RFalse, Measurement>; call: Record<string, Measurement>; unnamedCall: Measurement; binOp: Record<string, Measurement>; unaryOp: Record<string, Measurement>; other: Record<string, Measurement>; } /** * */ export declare function emptyCommonSyntaxTypeCounts<T = bigint>(init?: () => T): CommonSyntaxTypeCounts<T>; /** * Updates the given counts based on the type of the given node. */ export declare function updateCommonSyntaxTypeCounts(current: CommonSyntaxTypeCounts, ...nodes: (RNode | RArgument)[]): CommonSyntaxTypeCounts; /** * */ export declare function appendCommonSyntaxTypeCounter(a: CommonSyntaxTypeCounts<number[][]>, b: CommonSyntaxTypeCounts): void; /** * */ export declare function summarizeCommonSyntaxTypeCounter(a: CommonSyntaxTypeCounts<number[][]>): CommonSyntaxTypeCounts<SummarizedMeasurement>;