<<>> <> <> <> <> <> <> <<>> DIRECTORY PFS USING [ErrorGroup, OpenFile], Rope USING [ROPE], Tioga USING [Looks, CharSet, PropList, Node, Location]; TiogaAccess: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; <> Looks: TYPE ~ Tioga.Looks; CharSet: TYPE ~ Tioga.CharSet; -- = Char.CharSet PropList: TYPE ~ Tioga.PropList; -- = Prop.PropList TiogaChar: TYPE ~ PACKED RECORD [ charSet: CharSet, -- used with char to represent an extended character char: CHAR, looks: Looks, format: ATOM, comment: BOOL, endOfNode: BOOL, deltaLevel: [-16000..1], propList: PropList <> ]; <> <> <<>> GetExternalProp: PROC [key: ATOM, value: REF] RETURNS [ROPE]; GetInternalProp: PROC [key: ATOM, value: ROPE] RETURNS [REF]; <> Error: ERROR [group: PFS.ErrorGroup, expl: ROPE]; <> <> Reader: TYPE ~ REF ReaderRep; ReaderRep: TYPE; FromNode: PROC [node: Tioga.Node, offset: INT ¬ 0] RETURNS [Reader]; <> <<>> FromFile: PROC [fileName: ROPE] RETURNS [Reader]; FromOpenFile: PROC [openFile: PFS.OpenFile] RETURNS [Reader]; <> <<>> EndOf: PROC [reader: Reader] RETURNS [BOOL]; Get: PROC [reader: Reader] RETURNS [TiogaChar]; Peek: PROC [reader: Reader] RETURNS [TiogaChar]; GetNodeProps: PROC [reader: Reader] RETURNS [PropList]; <> <> Writer: TYPE ~ REF WriterRep; WriterRep: TYPE; Create: PROC RETURNS [Writer]; Put: PROC [writer: Writer, tiogaChar: TiogaChar]; <> Nest: PROC [writer: Writer, delta: INT]; <> <<>> WriteFile: PROC [writer: Writer, fileName: ROPE]; <> <<>> WriteOpenFile: PROC [writer: Writer, openFile: PFS.OpenFile]; <> <<>> WriteReader: PROC [writer: Writer] RETURNS [Reader]; <> <<>> WriteNode: PROC [writer: Writer] RETURNS [Tioga.Node]; <> <<>> Reset: PROC [writer: Writer]; <> <<>> <> DoneWith: PROC [reader: Reader]; <> PeekRope: PROC [reader: Reader] RETURNS [ROPE]; <> SkipToNextNode: PROC [reader: Reader] RETURNS [deltaLevel: INT]; <> <<>> CopyNode: PROC [writer: Writer, reader: Reader, maxLength: INT ¬ INT.LAST] RETURNS [nodeEnd: BOOL]; <> <> <<>> GetIndex: PROC [reader: Reader] RETURNS [INT]; <> <<>> GetLength: PROC [reader: Reader] RETURNS [INT]; <> <<>> GetPosition: PROC [reader: Reader] RETURNS [position: INT]; <> <<>> GetLocation: PROC [reader: Reader] RETURNS [Tioga.Location]; <> <> <<>> SetIndex: PROC [reader: Reader, index: INT]; <> <<>> SetPosition: PROC [reader: Reader, position: INT]; <<>> PutBack: PROC [reader: Reader, tiogaChar: TiogaChar]; <> FinishWrite: PROC [writer: Writer, action: PROC [root, first, last: Tioga.Node]]; END.