-- File DJExtMergeDefs.mesa -- Written by Martin Newell, June 1980 -- Last updated: July 24, 1981 3:15 PM DIRECTORY DJExtTypes: FROM "DJExtTypes" USING [NodeNumber]; DJExtMergeDefs: DEFINITIONS = BEGIN OPEN DJExtTypes; InitMerge: PUBLIC PROCEDURE []; -- Initialize merge table FinishMerge: PUBLIC PROCEDURE; -- Close files and release structures GenNodeNumber: PUBLIC PROCEDURE RETURNS[n: NodeNumber]; -- Generate new node number ReserveNodeNumbers: PUBLIC PROCEDURE [n: NodeNumber]; -- Reserves node numbers 1 through n Merge: PUBLIC PROCEDURE [n1,n2: NodeNumber] RETURNS[r: NodeNumber]; --Merge numbers n1 and n2 towards smaller of the two --Returns resulting value of Lookup[n1] (=Lookup[n2]) Lookup: PUBLIC PROCEDURE[n1: NodeNumber] RETURNS[n2: NodeNumber]; --Return smallest number to which n1 has been merged, transitively closed --Can be called before FinishMerge --Cannot be called after LookSmall LookSmall: PUBLIC PROCEDURE[n: NodeNumber] RETURNS[r: NodeNumber]; --Return smallest number it can assign to n GetSmall: PUBLIC PROCEDURE RETURNS[NodeNumber]; --Return smallest number assigned IsSmall: PUBLIC PROCEDURE[n: NodeNumber] RETURNS[BOOLEAN]; --Return true if it has been assigned a small number PutProp: PUBLIC PROCEDURE[n: NodeNumber, prop:LONG UNSPECIFIED]; --attach prop to node number n GetProp: PUBLIC PROCEDURE[n: NodeNumber] RETURNS[LONG UNSPECIFIED]; --get the prop that has been attached to n. MergeError: PUBLIC ERROR[reason: STRING]; END. (635)\169b14B40b9B50b11B59b13B72b18B74b5B171b6B205b9B102b9B74b8B105b8B89b8B106b10B