<> <> <> DIRECTORY Arpa USING [Address], Rope USING [ROPE]; ArpaNameSupport: CEDAR DEFINITIONS = BEGIN ROPE: TYPE = Rope.ROPE; <> <<>> AddressInList: PROC [addresses: LIST OF Arpa.Address, address: Arpa.Address] RETURNS [yes: BOOL]; <> <<>> CountAddresses: PROC [addresses: LIST OF Arpa.Address] RETURNS [count: INT]; <> AppendUniqueAddress: PROC [address: Arpa.Address, addresses: LIST OF Arpa.Address _ NIL] RETURNS [new: LIST OF Arpa.Address]; <> <<>> AppendUniqueRope: PUBLIC PROC [ropes: LIST OF ROPE, name: ROPE] RETURNS [new: LIST OF ROPE]; <> AddressToRope: PROC [address: Arpa.Address, brackets: BOOL _ TRUE] RETURNS [rope: ROPE]; <> RopeToAddress: PROC [rope: ROPE] RETURNS [address: Arpa.Address]; <> <> <<>> IsAddressRope: PROC [rope: ROPE] RETURNS [BOOL]; <> AddressRopeToQueryRope: PROC [addrRope: ROPE] RETURNS [queryRope: ROPE]; <> <<>> AddressToQueryRope: PROC [addr: Arpa.Address] RETURNS [queryRope: ROPE]; <> <<>> StripBrackets: PROC [inRope: ROPE] RETURNS [outRope: ROPE]; Tailed: PROC [body, tail: ROPE] RETURNS [match: BOOL]; <> <<>> StripTail: PROC [body, tail: ROPE] RETURNS [new: ROPE]; <> <<>> END.