@informalsystems/quint
Version:
Core tool for the Quint specification language
23 lines (22 loc) • 1.12 kB
TypeScript
import { IdGenerator } from '../idGenerator';
import { FlatModule, QuintModule } from '../ir/quintIr';
import { LookupTable } from '../names/base';
import { SourceMap } from '../parsing/quintParserFrontend';
import { AnalysisOutput } from '../quintAnalyzer';
/**
* Flatten an array of modules, replacing instances, imports and exports with
* their definitions and inlining type aliases.
*
* @param modules The modules to flatten
* @param table The lookup table to for all referred names
* @param idGenerator The id generator to use for new definitions; should be the same as used for parsing
* @param sourceMap The source map for all modules involved
* @param analysisOutput The analysis output for all modules involved
*
* @returns An object containing the flattened modules, flattened lookup table and flattened analysis output
*/
export declare function flattenModules(modules: QuintModule[], table: LookupTable, idGenerator: IdGenerator, sourceMap: SourceMap, analysisOutput: AnalysisOutput): {
flattenedModules: FlatModule[];
flattenedTable: LookupTable;
flattenedAnalysis: AnalysisOutput;
};