LichenPrinting:
CEDAR
DEFINITIONS = {
OPEN LichenDataStructure;
CellTypeFilter: TYPE ~ PROC [CellType] RETURNS [BOOL];
PrintDesignOnFile: PROC [design: Design, nameGen: NameGenerator ← NIL, fileName: ROPE ← NIL, tioga: BOOL ← FALSE, pacify: IO.STREAM ← NIL, Filter: CellTypeFilter ← NIL];
PrintDesign: PROC [to: IO.STREAM, design: Design, nameGen: NameGenerator ← NIL, pacify: IO.STREAM ← NIL];
PrintDesignSubset: PROC [to: IO.STREAM, design: Design, nameGen: NameGenerator, pacify: IO.STREAM ← NIL, Filter: PROC [CellType] RETURNS [BOOL] ← NIL];
PrintCellType: PROC [to: IO.STREAM, ct: CellType, nameGen: NameGenerator ← NIL];
PrintPort: PROC [to: IO.STREAM, port: Port, nameGen: NameGenerator ← NIL];
PrintWire: PROC [to: IO.STREAM, wire: Wire, nameGen: NameGenerator ← NIL];
PrintInstances: PROC [to: IO.STREAM, set: Set--OF CellInstance--, mirror: CellInstance, nameGen: NameGenerator ← NIL];
PrintInstance: PROC [to: IO.STREAM, ci: CellInstance, nameGen: NameGenerator ← NIL];
PrintArray: PROC [to: IO.STREAM, ct: CellType, nameGen: NameGenerator ← NIL];
}.