DIRECTORY IO, Rope; SimRead: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; FromStream: PROC [from: IO.STREAM, client: Client, format: Format]; Client: TYPE = REF ClientRep; ClientRep: TYPE = RECORD [ GotTransistor: PROC [pd: ParseData, cd: ClientData], GotNode: PROC [pd: ParseData, cd: ClientData], GotInput: PROC [name: ROPE, cd: ClientData] _ NIL, GotOther: PROC [char: CHAR, from: IO.STREAM, cd: ClientData] RETURNS [continue: BOOL] _ NIL, Init: PROC [pd: ParseData, c: Client] _ NIL, warningLog: IO.STREAM _ NIL, data: ClientData _ NIL]; ClientData: TYPE = REF ANY; ParseData: TYPE = REF ParseDataRep; ParseDataRep: TYPE = RECORD [ name: ROPE _ NIL, areas, perimiters: ARRAY Layer OF REAL _ ALL[0], transistorType: TransistorType _ nE, gate, source, drain: ROPE _ NIL, length, width, area: REAL _ 0, shape: CHARACTER _ '?, x, y: REAL _ 0, capacitanceEstimate: REAL _ 0.0, capEstimateClass: CapEstimateClass _ ignore, other: REF ANY _ NIL --for use by Format ]; ceiling: INT = LAST[INT]; TransistorType: TYPE = {nE, nD, pE, pD}; Layer: TYPE = {Metal, Metal2, Poly, NDiff, PDiff}; CapEstimateClass: TYPE = {incremental, absolute, ignore}; GetFormat: PROC [name: ROPE] RETURNS [format: Format --NIL if not found--]; Format: TYPE = REF FormatRep; FormatRep: TYPE = RECORD [ whatToDo: ARRAY CHAR OF Handler, Init: PROC [pd: ParseData, f: Format] _ NIL, data: FormatData _ NIL]; Handler: TYPE = LIST OF FieldProc; FieldProc: TYPE = PROC [first: CHAR, from: IO.STREAM, f: Format, pd: ParseData, c: Client] RETURNS [continue: BOOL _ TRUE]; FormatData: TYPE = REF ANY; SetFormat: PROC [name: ROPE, format: Format]; NodeName, NodeX, NodeY, MetalArea, PolyArea, DiffArea, MetalPerim, PolyPerim, DiffPerim, EatTrash, ReadCap, Gate, SourceDrain, Length, Width, Shape, TransistorX, TransistorY, TransistorArea, FollowIndirection, EatComment, UseClientsOther: FieldProc; END. όSimRead.Mesa Last Edited by: Spreitzer, May 28, 1984 10:17:03 pm PDT For Nodes: For Transistors: For Both: When an INT has this value, it may have overflowed on input. You can probably count on finding formats: Chipmonk, Stanford, and Berkeley. Κ– "cedar" style˜Icode™ J™7K˜KšΟk œœ˜K˜KšΠbxœœ œ˜K˜Kš˜K˜Kšœœœ˜K˜KšΟn œœœœ"˜CK˜š œœœœœ˜8KšŸ œœ!˜4KšŸœœ!˜.KšŸœœœœ˜2KšŸœœœœœœ œœ˜\KšŸœœœ˜,Kšœ œœœ˜Kšœœ˜—K˜Kšœ œœœ˜K˜š œ œœœœ˜AK™ Kšœœœ˜Kš œœœœœ˜0K™K˜$Kšœœœ˜ Kšœœ˜Kšœ œ˜K™ Kšœœ˜Kšœœ˜ K˜,KšœœœœΟc˜(Kšœ˜—K˜šœ œœœ˜K™<—K˜Kšœœ˜(Kšœœ'˜2Kšœœ#˜9K˜š Ÿ œœœœ œ˜KK™L—K˜š œœœœœ˜8Kšœ œœœ ˜ KšŸœœœ˜,Kšœœ˜—K˜Kšœ œœœ ˜"KšŸ œœœ œœœ'œ œœ˜{K˜Kšœ œœœ˜K˜KšŸ œœœ˜-K˜Kšœϊ˜ϊK˜Kšœ˜—…—b u