DIRECTORY TSAList; TSAListImpl: CEDAR MONITOR EXPORTS TSAList = BEGIN list: REF Pair; Pair: TYPE = RECORD [succ: REF Pair, key: LONG CARDINAL, value: REF ANY]; Define: PUBLIC ENTRY PROCEDURE [key: LONG CARDINAL, value: REF ANY] = BEGIN ENABLE UNWIND => {}; p: REF Pair; FOR p _ list, p.succ UNTIL p=NIL OR p.key = key DO ENDLOOP; IF p=NIL THEN BEGIN pair:REF Pair = NEW[Pair]; pair^ _ [succ:list, key:key, value:value]; list _ pair END ELSE p.value _ value END; Find: PUBLIC ENTRY PROCEDURE [key: LONG CARDINAL] RETURNS [value: REF ANY] = BEGIN ENABLE UNWIND => {}; p: REF Pair; FOR p _ list, p.succ UNTIL p=NIL OR p.key = key DO ENDLOOP; value _ IF p=NIL THEN NIL ELSE p.value END; UnDefine: PUBLIC ENTRY PROCEDURE [key: LONG CARDINAL] = BEGIN ENABLE UNWIND => {}; prev,p: REF Pair; prev _ NIL; p _ list; UNTIL p=NIL OR p.key = key DO prev _ p; p _ p.succ ENDLOOP; IF p#NIL THEN BEGIN IF prev=NIL THEN list _ list.succ ELSE prev.succ _ p.succ END END; END. Michael Plass, June 28, 1982 8:46 am. Rename of module. Michael Plass, November 2, 1982 10:47 am. CEDARized. ¬TSAListImpl.mesa Maintains an association list from long cardinals to REF ANYs. Michael Plass, November 2, 1982 10:47 am Last Edited by: Beach, May 24, 1983 9:12 am Κ”– "cedar" style˜JšΟc™Jš>™>Jš)™)Jš+™+JšΟk œ ˜J˜šœ ž ˜Jšžœ ˜—Jšž˜J˜Jšœžœ˜J˜Jšœžœžœžœ žœžœ žœžœ˜IJ˜šΟnœžœžœž œžœžœ žœžœ˜EJšžœžœžœ˜Jšœžœ˜ Jš žœžœžœžœ žœžœ˜;šžœžœž˜ Jšž˜Jšœžœžœ˜J˜*J˜ Jšž˜—Jšžœ˜Jšžœ˜J˜—šŸœžœžœž œžœžœžœ žœžœ˜LJšžœžœžœ˜Jšœžœ˜ Jš žœžœžœžœ žœžœ˜;Jš œžœžœžœžœžœ˜&Jšžœ˜J˜—š Ÿœžœžœž œžœžœ˜7Jšžœžœžœ˜Jšœžœ˜Jšœžœ ˜šžœžœžœ ž˜J˜ J˜ Jšžœ˜—šžœžœž˜ Jšž˜Jšžœžœžœ˜!Jšžœ˜Jšž˜—Jšžœ˜J˜—Jšžœ˜J˜J˜9J˜4—…—6v