UNPKG

@eagleoutice/flowr

Version:

Static Dataflow Analyzer and Program Slicer for the R Programming Language

35 lines (34 loc) 1.57 kB
import type { AbstractDomainValue } from '../domains/abstract-domain'; import { PosIntervalDomain } from '../domains/positive-interval-domain'; import { ProductDomain } from '../domains/product-domain'; import { SetRangeDomain } from '../domains/set-range-domain'; /** The type of the abstract product representing the shape of data frames */ export type AbstractDataFrameShape = { colnames: SetRangeDomain<string>; cols: PosIntervalDomain; rows: PosIntervalDomain; }; /** The type of abstract values of a sub abstract domain (shape property) of the data frame shape product domain */ export type DataFrameShapeProperty<Property extends keyof AbstractDataFrameShape> = AbstractDomainValue<AbstractDataFrameShape[Property]>; /** * The data frame abstract domain as product domain of a column names domain, column count domain, and row count domain. */ export declare class DataFrameDomain extends ProductDomain<AbstractDataFrameShape> { constructor(value: AbstractDataFrameShape); create(value: AbstractDataFrameShape): this; /** * The current abstract value of the column names domain. */ get colnames(): AbstractDataFrameShape['colnames']; /** * The current abstract value of the column count domain. */ get cols(): AbstractDataFrameShape['cols']; /** * The current abstract value of the row count domain. */ get rows(): AbstractDataFrameShape['rows']; static bottom(maxColNames?: number): DataFrameDomain; static top(maxColNames?: number): DataFrameDomain; private static refine; }