DIRECTORY AMModel USING [Context], CD USING [Design, Object], Core USING [CellType, ROPE, Wire, Wires], Sinix USING [Mode], SymTab USING [Ref]; Sisyph: CEDAR DEFINITIONS = BEGIN Context: TYPE = SymTab.Ref; CellType: TYPE = Core.CellType; Wire: TYPE = Core.Wire; Wires: TYPE = Core.Wires; Object: TYPE = CD.Object; ROPE: TYPE = Core.ROPE; expressionsProp: ATOM; designRope: ROPE; cellIconRope: ROPE; wireIconRope: ROPE; wireRope: ROPE; nameRope: ROPE; globalNamesRope: ROPE; corePropsRope: ROPE; coreInstPropsRope: ROPE; cdObjRope: ROPE; iconicProp: ATOM; iconicCell: ATOM; iconicWire: ATOM; parmNamesProp: ATOM; cachedResultProp: ATOM; defaultGlobalNames: LIST OF ROPE; sisyphMode: Sinix.Mode; ES, ExtractSchematicByName: PROC [name: ROPE, cx: Context] RETURNS [CellType]; IsResultExpression: PROC [expr: ROPE] RETURNS [BOOL]; Create: PUBLIC PROC [design: CD.Design, globalNames: LIST OF ROPE _ defaultGlobalNames] RETURNS [cx: Context]; Copy: PUBLIC PROC [cx: Context] RETURNS [newCx: Context]; Store: PUBLIC PROC [cx: Context, var: ROPE, value: REF _ NIL]; Eval: PUBLIC PROC [cx: Context, expr: ROPE, cedarCx: AMModel.Context _ NIL]; END. –Sisyph.mesa Copyright c 1985 by Xerox Corporation. All rights reserved. Created by Pradeep Sindhu and Bertrand Serlet, June 1, 1986 3:14:31 pm PDT Pradeep Sindhu April 17, 1986 6:02:22 pm PST Barth, January 13, 1986 3:31:45 pm PST Abstract Sisyph is a schematics to core extractor: it operates on instances of CD objects to produce Core CellTypes. Conceptually, its graphical input consists of a small number of different object types: wires, schematics, icons, and wireIcons. Wires represent the electrical notion of a wire (wires are unstructured for the moment, and will remain this way till Sinix is able to handle structure). Schematics represent the electrical notion of a circuit. Icons are simply graphical shorthands for schematicsthey are the graphical equivalent of a procedure call where the schematic is the analog of the procedure. Finally, wireIcons serve the same function for wires as icons do for schematics. Types Extraction Property on CD objects and CD instances that holds Sisyph expressions. name of Sisyph variable that holds the ChipNDale design. name of Sisyph variable that holds the Core for a cell icon. name of Sisyph variable that holds the Core for a wire icon. name of Sisyph variable that holds the Core for a wire. name of Sisyph variable that represents the name of a wire or a cellType. name of Sisyph variable that represents a list of names of global wires. name of Sisyph variable that represents a list of properties to be put on a CellType or Wire. name of Sisyph variable that represents a list of properties to be put on a CellType instance. name of Sisyph variable that holds the CD object being extracted. property whose value is an atom; a NIL value indicates a schematic, a non-nil value indicates an iconicCell or an iconicWire depending on its value. value of iconicProp that indicates that the object is a cell icon. value of iconicProp that indicates that the object is an icon for a wire. property on icon that contains the names of the icon's parameters. A NIL value => any variable is potentially a parameter; a list with a rope="0" as its first element => 0 parameters. property containing cached core result. mode record containing which properties Sinix should use. Context Handling Procedures Creates a new context and copies cx to it. Stores value into var in cx; if var didn't exist it is created; a NIL value removes var from cx. Computes the value of expr in . Κ˜™ Jšœ Οmœ1™K™`—K˜š £œ œ œ œ œ˜LK™,K™—Kš œ˜—J™—…—€