DIRECTORY CD, Core, CoreFlat, CoreGeometry, Sinix; ExtractUtilities: CEDAR DEFINITIONS = BEGIN PreExtracted: Sinix.ExtractProc; MatchSourceToExtracted: PROC [sdecoration, edecoration: CoreGeometry.Decoration, slayer, elayer: CD.Layer, source, extracted: Core.CellType, name: Core.ROPE _ NIL, props: Core.Properties _ NIL] RETURNS [new: Core.CellType]; Search: PROC [rootCT: Core.CellType, name: Core.ROPE] RETURNS [ct: Core.CellType _ NIL, flat: CoreFlat.FlatCellTypeRec _ CoreFlat.rootCellType]; RefInts: TYPE = LIST OF REF INT; CountInstances: PROC [object: CD.Object] RETURNS [instanceCounts: RefInts]; KeepChoice: TYPE = {all, none, one}; CleanUpDecorations: PROC [decoration: CoreGeometry.Decoration, cell: Core.CellType, keepObject: BOOL _ FALSE, keepPins: KeepChoice _ none, keepGeometry: KeepChoice _ one]; FlattenUniques: PROC [decoration: CoreGeometry.Decoration, cell: Core.CellType, flattenNamed: BOOL _ FALSE] RETURNS [Core.CellType]; END. PExtractUtilities.mesa Copyright Σ 1987 by Xerox Corporation. All rights reserved. Bertrand Serlet September 14, 1987 1:53:15 am PDT Theory Grouped in this interface are various utilities for Extracting and applying processors such as DRC or simulators. Very much in evolution. Usage of those functions can be unsafe. Some Extract Procs Registered as $PreExtracted Result comes from reading the file with the same name as obj. Can be used for multiple VM extraction. Computing corresponding cells Given a schematics (source) that reflects the pin out, and the result of the extraction (in some mode), make a new cell that has same public as source, and that contains an instance of extracted. Looking for a named CellType Useful for Debug. Sorting Cells by number of instances Useful type for the interpreter. Squeezing Core Structures Κš– "cedar" style˜– "Cedar" stylešœ™Icode– "Cedar" style™