DIRECTORY CD, CDDirectory, CDProperties, Core, CoreClasses, CoreCreate, CoreOps, IO, Rope, SCLibGen; SCMakeInterfaceImpl: CEDAR PROGRAM IMPORTS CDDirectory, CDProperties, CoreClasses, CoreCreate, CoreOps, IO, SCLibGen = BEGIN CellTypeFromRope: PROC [r: Rope.ROPE] RETURNS [ct: Core.CellType] = { stream: IO.STREAM _ IO.RIS[r]; wrs: LIST OF CoreCreate.WR _ NIL; end: LIST OF CoreCreate.WR _ NIL; wire: Core.Wire; WHILE NOT IO.EndOf[stream] DO token: Rope.ROPE _ IO.GetTokenRope[stream].token; piece: LIST OF CoreCreate.WR _ LIST[token]; IF wrs=NIL THEN wrs _ piece ELSE end.rest _ piece; end _ piece; ENDLOOP; wire _ CoreCreate.WireList[wrs]; ct _ CoreClasses.CreateUnspecified[public: wire]; }; MakeIF: PROC [ob: CD.Object] = { WITH CDProperties.GetProp[ob, $PinOrder] SELECT FROM r: Rope.ROPE => { ct: Core.CellType _ CellTypeFromRope[r]; [] _ CoreOps.SetCellTypeName[ct, CDDirectory.Name[ob]]; CDProperties.PutProp[ob, $Interface, ct]; } ENDCASE => NULL; }; SCLibGen.SeeMe[MakeIF]; END. ΖSCMakeInterfaceImpl.mesa Copyright (C) 1986 by Xerox Corporation. All rights reserved. Created by: Jacobi, July 11, 1986 10:45:18 am PDT Last Edited by: Jacobi July 11, 1986 11:16:32 am PDT Κ―˜šœ™Icode™>K™1K™4—šΟk ˜ JšœZ˜Z—J˜šΟbœœ˜"JšœL˜S—Jš˜J˜šΟnœœ œœ˜EJš œœœœœ˜Kš œœœ œœ˜!Kš œœœ œœ˜!Jšœ˜šœœœ˜Jšœ œœ˜1Jš œœœ œœ˜+Jšœœœ œ˜4Jšœ ˜ Jšœ˜—Jšœ ˜ Jšœ1˜1Jšœ˜—J˜šŸœœœ ˜ šœ%œ˜4šœœ˜Jšœ(˜(Jšœ7˜7Jšœ)˜)J˜—Jšœœ˜—J˜—J˜Jšœ˜Jšœ˜J˜J™—…—ζ[