<> <> <> <> <> <> DIRECTORY IO, Rope; ThymeParser: CEDAR DEFINITIONS = { <> TypeList: TYPE = REF TypeListRec; TypeListRec: TYPE = RECORD [ name: Rope.ROPE, <> clientData: REF ANY _ NIL, <> next: TypeList <> ]; ReadFile: PROC[inStream, errorStream:IO.STREAM, table: TypeList _ NIL, resProc: ResistorProc _ NIL, capProc: CapacitorProc _ NIL, fetProc: TransistorProc _ NIL, attProc: AttributeProc _ NIL, nodeProc: NodeProc _ NIL, clientData: REF ANY _ NIL, stopValue: REF BOOL _ NIL] RETURNS [nodes, fets, caps, res: INT]; <> ResistorProc: TYPE = PROC[nodeA, nodeB: Rope.ROPE, ohms: REAL, clientData: REF ANY]; <> CapacitorProc: TYPE = PROC[nodeA, nodeB: Rope.ROPE, pfs: REAL, clientData: REF ANY]; <> TransistorProc: TYPE = PROC[gate, source, drain: Rope.ROPE, fetData: REF ANY, l, w, x, y: REAL, clientData: REF ANY _ NIL] RETURNS [handle: REF ANY]; <> <<>> AttributeProc: TYPE = PROC[fetHandle: REF ANY, name, value: Rope.ROPE, clientData: REF ANY]; <> NodeProc: TYPE = PROC[name: Rope.ROPE, clientData: REF ANY]; <> <<>> }.