DIRECTORY AMTypes, IO, Rope; Cucumber: DEFINITIONS = BEGIN Error: ERROR [msg: Rope.ROPE]; Transfer: PROC [what: REF ANY, where: IO.STREAM, direction: Direction]; Register: SAFE PROC [handler: Handler, type: AMTypes.Type]; Handler: TYPE = REF HandlerRep; HandlerRep: TYPE = RECORD [ PartTransfer: PartTransferProc, PrepareWhole, FinishWhole: Bracket _ NIL, data: REF ANY _ NIL]; PartTransferProc: TYPE = PROC [whole: REF ANY, part: Path, where: IO.STREAM, direction: Direction, data: REF ANY]; Bracket: TYPE = PROC [whole: REF ANY, where: IO.STREAM, direction: Direction, data: REF ANY] RETURNS [leaveTheseToMe: SelectorList _ NIL]; all: SelectorList; SelectorList: TYPE = LIST OF Selector; Path: TYPE = LIST OF Selector; --outermost first Selector: TYPE = REF ANY; Direction: TYPE = {in, out}; END. Cucumber.Mesa Last Edited by: Spreitzer, July 8, 1985 2:29:28 pm PDT actually UNION [ ATOM --selects fields of records REF INT --selects anonymous fields of records REF INT --indices of ARRAYs indexed by numbers REF --indices of ARRAYs indexed by an enumerated type ] Κ΄˜J™ Jšœ6™6Icode˜KšΟk œ œ˜K˜KšΠbxœ œ˜K˜Kš˜K˜Kšœœ œ˜K˜Kš Οnœœœœ œœ˜GK˜KšŸœœœ(˜;K˜Kšœ œœ ˜šœ œœ˜K˜Kšœ%œ˜)Kšœœœœ˜—K˜KšŸœœœ œœœœœœ˜rK˜šŸœœœ œœ œœœœœ!œ˜ŠK˜K˜—K˜Kšœœœœ ˜&Kšœœœœ Οc˜0šœ œœœ˜™K™ K™-K™.K™?K™——K˜Kšœ œ ˜K˜Kšœ˜—…—.ώ