@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
35 lines (34 loc) • 1.57 kB
TypeScript
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;
}