<> <> DIRECTORY RoseTypes; RoseLogging: CEDAR DEFINITIONS = BEGIN OPEN RoseTypes; Row: TYPE = REF RowRep; RowRep: TYPE = RECORD [ to: STREAM, elts: EltList, intro: PROC [row: Row] _ NIL, data: REF ANY _ NIL ]; EltList: TYPE = LIST OF Element; Element: TYPE = RECORD [ n: Node, nFmt: Format, ioFmt: ROPE]; WriteRow: PROC [row: Row]; WriteEverySettle: PROC [row: Row, sim: Simulation]; DontWriteEverySettle: PROC [row: Row, sim: Simulation]; RowFromNames: PROC [to: STREAM, enl: EltNamesList, pathPrefix: LIST OF REF ANY--actually UNION [ROPE, REF TEXT]-- _ NIL, from: Cell _ NIL] RETURNS [row: Row]; EltNamesList: TYPE = LIST OF EltNames; EltNames: TYPE = RECORD [ name: REF ANY, <> nodeFormat: ROPE _ NIL--means default--, ioFormat: ROPE _ NIL--means IF last THEN "%g\n" ELSE "%g\t"--, from: Cell _ NIL--means start from Cell identified in args from & pathPrefix--]; END.