<> <> <> <> <> <> <> DIRECTORY Rope USING [ROPE], TextNode USING [Ref]; NodeProps: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE = Rope.ROPE; true: REF BOOL; false: REF BOOL; <> PutProp: PROC [n: TextNode.Ref, name: ATOM, value: REF]; <> GetProp: PROC [n: TextNode.Ref, name: ATOM] RETURNS [REF]; RemProp: PROC [n: TextNode.Ref, name: ATOM]; MapPropsAction: TYPE = PROC [name: ATOM, value: REF] RETURNS [quit: BOOL _ FALSE]; MapProps: PROC [n: TextNode.Ref, action: MapPropsAction, formatFlag, commentFlag: BOOL _ TRUE] RETURNS [quit: BOOL]; <> <> <> <> <> ReadSpecsProc: TYPE = PROC [name: ATOM, specs: ROPE] RETURNS [value: REF]; WriteSpecsProc: TYPE = PROC [name: ATOM, value: REF] RETURNS [specs: ROPE]; CopyInfoProc: TYPE = PROC [name: ATOM, value: REF] RETURNS [new: REF]; Register: PROC [name: ATOM, reader: ReadSpecsProc, writer: WriteSpecsProc, copier: CopyInfoProc]; <> <> NullRead: ReadSpecsProc; -- returns NIL always NullWrite: WriteSpecsProc; -- returns NIL always NullCopy: CopyInfoProc; -- returns NIL always DoSpecs: ReadSpecsProc; <> <> <> GetSpecs: WriteSpecsProc; <> <> <> CopyInfo: CopyInfoProc; <> <> <> <<>> END.