LichenPrinting:
CEDAR
DEFINITIONS = {
OPEN LichenDataStructure;
CellTypeFilter: TYPE ~ PROC [CellType] RETURNS [BOOL];
PrintDesignOnFile: PROC [d: Design, nameGen: NameGenerator ← NIL, fileName: ROPE ← NIL, tioga: BOOL ← FALSE, pacify: IO.STREAM ← NIL, Filter: CellTypeFilter ← NIL];
PrintDesign: PROC [to: IO.STREAM, d: Design, nameGen: NameGenerator ← NIL, pacify: IO.STREAM ← NIL];
PrintDesignSubset: PROC [to: IO.STREAM, d: 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];
PrintCells: PROC [to: IO.STREAM, cct: CellType, set: Set--OF Cell--, nameGen: NameGenerator ← NIL];
PrintCell: PROC [to: IO.STREAM, cct: CellType, cell: Cell, nameGen: NameGenerator ← NIL];
PrintArray: PROC [to: IO.STREAM, act: CellType, nameGen: NameGenerator ← NIL];
}.