-- OtherNode.Mesa
-- written by Paxton. May 1981
-- last written by McGregor. June 10, 1982 4:38 pm
DIRECTORY
TextNode,
Rope;
OtherNode: CEDAR DEFINITIONS =
BEGIN
RefOtherNode: TYPE = TextNode.RefOtherNode;
Register: PROC [variety: ATOM,
reader: ReadSpecsProc,
writer: WriteSpecsProc,
copier: CopyInfoProc];
-- registers these procs for this variety of node
-- they will be called by DoSpecs, GetSpecs, and CopyInfo
ReadSpecsProc: TYPE = PROC [n: RefOtherNode, specs: Rope.ROPE];
WriteSpecsProc: TYPE = PROC [n: RefOtherNode] RETURNS [specs: Rope.ROPE];
CopyInfoProc: TYPE = PROC [old: RefOtherNode] RETURNS [newinfo: REF ANY];
DoSpecs: ReadSpecsProc;
-- used when reading files
-- calls the registered reader for this variety of node
-- sets n.info ← specs if no reader is registered
GetSpecs: WriteSpecsProc;
-- used when writing files
-- calls the registered writer for this variety of node
-- if no writer is registered, returns n.info if it is a rope, NIL otherwise
CopyInfo: CopyInfoProc;
-- used when copying nodes
-- calls the registered copier for this variety of node
-- if no copier is registered, returns old.info
-- ***** Initialization
Start: PROC; -- for initialization only
END.