<> <> <> <> DIRECTORY GVBasics USING [ItemHeader], IO USING [STREAM], Rope USING [ROPE]; SMTPSyntax: CEDAR DEFINITIONS = BEGIN STREAM: TYPE = IO.STREAM; ROPE: TYPE = Rope.ROPE; <> BlessReturnPath: PROC [raw: ROPE] RETURNS [arpa: ROPE]; UnBlessReturnPath: PROC [raw: ROPE] RETURNS [arpa: ROPE]; ReversePath: PROC [gv: ROPE] RETURNS [arpa: ROPE]; HostAndUser: PROC [raw: ROPE] RETURNS [host, user: ROPE]; <> EnumerateGVItems: PROC [GVStream: STREAM, proc: GVItemProc, procData: REF ANY _ NIL]; <> GVItemProc: TYPE = PROC [itemHeader: GVBasics.ItemHeader, itemStream: STREAM, procData: REF ANY] RETURNS [continue: BOOL _ TRUE]; PrintGVItem: GVItemProc; <> ReceiveRName: PROC[GVStream: STREAM] RETURNS [ROPE]; -- for convenience <> ReceiveCount: PROC[GVStream: STREAM] RETURNS [CARDINAL]; -- for convenience <> SyntaxError: ERROR [reason: ROPE]; END.