-- PPTree.Mesa -- Russ Atkinson, June 8, 1982 3:13 pm PPTree: CEDAR DEFINITIONS = BEGIN -- data structures Link: TYPE = REF ANY; Null: Link = NIL; Node: TYPE = RECORD [ name: NodeName, attr: PACKED ARRAY AttrId OF BOOL _ ALL[FALSE], info: CARDINAL _ 0, son: SEQUENCE sonLimit: [1..MaxNSons] OF Link]; MaxNSons: PRIVATE CARDINAL = LAST[INTEGER]; SonId: TYPE = [1..MaxNSons); AttrId: TYPE = [1..3]; Handle: TYPE = REF Node; NullHandle: Handle = NIL; NodeName: TYPE = { -- general tree constructors list, item, -- declarations decl, typedecl, basicTC, enumeratedTC, recordTC, monitoredTC, variantTC, refTC, pointerTC, listTC, arrayTC, arraydescTC, sequenceTC, procTC, processTC, portTC, signalTC, errorTC, programTC, anyTC, definitionTC, unionTC, relativeTC, subrangeTC, longTC, opaqueTC, zoneTC, linkTC, spareTC, implicitTC, frameTC, discrimTC, entry, internal, unit, diritem, module, body, inline, lambda, block, -- statements assign, extract, if, case, casetest, caseswitch, bind, do, forseq, upthru, downthru, return, result, goto, exit, loop, free, resume, reject, continue, retry, catchmark, restart, stop, lock, wait, notify, broadcast, unlock, null, label, open, enable, catch, dst, lst, lstf, syscall, spareS1, spareS2, spareS3, subst, call, portcall, signal, error, syserror, xerror, start, join, -- expressions apply, callx, portcallx, signalx, errorx, syserrorx, startx, fork, joinx, index, dindex, seqindex, reloc, construct, union, rowcons, sequence, listcons, substx, ifx, casex, bindx, assignx, extractx, or, and, relE, relN, relL, relGE, relG, relLE, in, notin, plus, minus, times, div, mod, dot, cdot, dollar, create, not, uminus, addr, uparrow, min, max, lengthen, abs, all, size, first, last, pred, succ, arraydesc, length, base, loophole, nil, new, void, clit, llit, cast, check, float, pad, chop, safen, syscallx, narrow, istype, openx, mwconst, cons, atom, typecode, stringinit, textlit, signalinit, procinit, intOO, intOC, intCO, intCC, thread, none, exlist, initlist, ditem, self, mergecons}; -- tree manipulation Id: TYPE = Link; Scan: TYPE = PROC [t: Link]; Map: TYPE = PROC [t: Link] RETURNS [v: Link]; Test: TYPE = PROC [t: Link] RETURNS [BOOL]; END. Κύ– "Mesa" style˜IprocšbΟc6œ Οkœž œžœœ žœžœžœžœ žœžœ!žœžœžœžœžœžœ žœžœžœžœžœžœžœ žœžœžœžœžœžœœœ¬œΚœΩœžœ ΟnœžœžœŸœžœžœ žœŸœžœžœ žœžœžœ˜έ—…— ΰ γ