@eagleoutice/flowr
Version:
Static Dataflow Analyzer and Program Slicer for the R Programming Language
48 lines (47 loc) • 1.44 kB
TypeScript
import { RawRType } from '../../model/type';
export declare const RootId = 0;
/**
* Entry type - shared between CSV and JSON entries.
* These include position, token, and text.
*/
interface Entry extends Record<string, unknown> {
readonly line1: number;
readonly col1: number;
readonly line2: number;
readonly col2: number;
readonly token: string;
readonly text: string;
}
/**
* CsvEntry type - mapping of ParsedDataRow to a JS object structure.
* Contains construction information - whether we deal with a terminal, IDs, and children.
*/
export interface CsvEntry extends Entry {
readonly id: number;
readonly parent: number;
readonly terminal: boolean;
children?: CsvEntry[];
}
/**
* Type-safe object structure that we work with during normalization.
* Has Children (empty list indicates no children).
*/
export interface JsonEntry extends Entry {
readonly children: JsonEntry[];
}
/**
* Named JSON entries - these also have a RawRType assigned to them.
*/
export interface NamedJsonEntry {
name: RawRType;
content: JsonEntry;
}
/**
* Takes the raw {@link RShell} output and extracts the csv information contained
*/
export declare function prepareParsedData(data: string): CsvEntry[];
/**
* Takes the CSV-Entries and maps them to the old json format for compatibility.
*/
export declare function convertPreparedParsedData(roots: readonly CsvEntry[]): JsonEntry;
export {};