DIRECTORY Atom, OrderedSymbolTableRef, Rope; SchemeRep: CEDAR DEFINITIONS = BEGIN LORA: TYPE = LIST OF REF ANY; ROPE: TYPE = Rope.ROPE; Table: TYPE = OrderedSymbolTableRef.Table; PropList: TYPE = Atom.PropList; CellType: TYPE = REF CellTypeRep; CellTypeRep: TYPE = RECORD [ name: ROPE, otherProps: PropList _ NIL, icons: Table --of PictureDef--, expansion: PictureDef, ports: Table --of Port--, nets: Table --of Net--, components: Table --of Component--, writtenFor: INT _ 0 --used only during Write--]; Port: TYPE = REF PortRep; PortRep: TYPE = RECORD [ name: ROPE, otherProps: PropList _ NIL, pt: Point, label: Text _ NIL]; Net: TYPE = REF NetRep; NetRep: TYPE = RECORD [ name: ROPE, otherProps: PropList _ NIL, stuff: LORA, --LIST OF UNION [Point, Line, Text] eatenBy: Net _ NIL]; ComponentPort: TYPE = REF ComponentPortRep; ComponentPortRep: TYPE = RECORD [ component: Component, port: Port, point: Point]; Component: TYPE = REF ComponentRep; ComponentRep: TYPE = RECORD [ name: ROPE, otherProps: PropList _ NIL, type: CellType, ports: Table--Of ComponentPort--, inst: PictureInstance, label: Text _ NIL]; PictureDef: TYPE = REF PictureDefRep; PictureDefRep: TYPE = RECORD [ name: ROPE, coordsByValue: ARRAY Axis OF Table --of UNION [Coord, LORA]--, coordsByName, points: Table, objects: Table --OF UNION [Line, Text, PictureInstance]--, instances--of self--: LORA _ NIL, --LIST OF PictureInstance editor: REF ANY _ NIL ]; Coord: TYPE = REF CoordRep; CoordRep: TYPE = RECORD [ name: ROPE, pic: PictureDef, axis: Axis _ X, exported: BOOLEAN _ FALSE, z, sz, dz: REAL _ 0, dependents: LORA, --LIST OF UNION [Coord, Point] portName: ROPE _ NIL, --if from PictureInstance parent: REF ANY _ NIL, --UNION [Coord, PictureInstance] exportedTo: Coord --only meaningful during instantiation operation ]; Axis: TYPE = {X, Y}; Vertex: TYPE = ARRAY Axis OF Coord; VertexReals: TYPE = ARRAY Axis OF REAL _ ALL[0]; Point: TYPE = REF PointRep; PointRep: TYPE = RECORD [ c: Vertex, name: ROPE, pic: PictureDef, exported, deleted: BOOLEAN _ FALSE, dependents: LORA, --LIST OF UNION [Text, Line, PictureInstance] fromPort: ROPE _ NIL, fromPI: PictureInstance _ NIL, fromCP: ComponentPort _ NIL, toPort: Port _ NIL, net: Net _ NIL]; Line: TYPE = REF LineRep; LineRep: TYPE = RECORD [ name: ROPE, a, b: Point, sa, sb: VertexReals, net: Net _ NIL]; Text: TYPE = REF TextRep; TextRep: TYPE = RECORD [ name: ROPE, org: Point, sxy: VertexReals, rope, sr: ROPE, labelOf: REF ANY _ NIL --UNION [Port, Net, Component] ]; PictureInstance: TYPE = REF PictureInstanceRep; PictureInstanceRep: TYPE = RECORD [ name: ROPE, in, of: PictureDef, org: Point, s: VertexReals, coords, points: Table, asComponent: Component _ NIL]; END. \Scheme.Mesa Last Edited by: Spreitzer, February 12, 1984 6:33 pm PictureDefPort: TYPE = REF PictureDefPortRep; PictureDefPortRep: TYPE = RECORD [ pic: PictureDef, portName: ROPE, point: Point]; PictureInstancePort: TYPE = REF PictureInstancePortRep; PictureInstancePortRep: TYPE = RECORD [ pi: PictureInstance, portName: ROPE, point: Point]; ΚF– "cedar" style˜Icode™ Jšœ4™4K˜KšΟk œ#˜,K˜KšΠbx œœ œ˜K˜Kš˜K˜Kš œœœœœœ˜Kšœœœ˜Kšœœ˜*Kšœ œ˜K˜š œ œœœœ˜>Kšœœ˜ Kšœœ˜Kšœ Οcœ˜K˜Kšœ Ÿ œ˜Kšœ Ÿ œ˜KšœŸœ˜#Kšœ œŸœ˜0—K˜š œœœ œ œœ˜2Kšœœ˜ Kšœœ˜K˜ Kšœœ˜—K˜š œœœœœ˜/Kšœœ˜ Kšœœ˜KšœœŸ#˜0Kšœœ˜—K˜š œœœ%œœ˜MK˜Kšœ ˜ Kšœ˜—K˜š œ œœœœ˜AKšœœ˜ Kšœœ˜K˜Kšœ Ÿœ˜!K˜Kšœœ˜—K˜š œ œœœœœ˜DKšœœ˜ KšœœœŸœ˜>K˜KšœŸ*œ˜:Kšœ Ÿ œœœŸ˜;Kšœœœ˜K˜—K˜š œœœœœ˜5Kšœœ˜ K˜Kšœ œ˜Kšœ œœ˜Kšœ œ˜Kšœ œŸ˜0Kšœ œœŸ˜/KšœœœœŸ ˜7KšœŸ0˜BKšœ˜—K˜Kšœœœœ˜Kšœœœœ˜#Kš œ œœœœœ˜0K˜š œœœœœ˜5K˜ Kšœœ˜ K˜Kšœœœ˜#Kšœ œŸ-˜?Kšœ œœ˜Kšœœ˜Kšœœ˜Kšœœ˜Kšœ œ˜—K˜š œœœœœ˜2Kšœœ˜ K˜ Kšœ˜Kšœ œ˜—K˜š œœœœœ˜2Kšœœ˜ K˜ Kšœ˜Kšœ œ˜Kšœ œœœŸ˜5Kšœ˜—K˜Kšœœœ˜/šœœœ˜#Kšœœ˜ Kšœ˜Kšœ ˜ Kšœ˜Kšœ˜Kšœœ˜—K˜Kšœ˜K˜š œœœ'œœ™PKšœ™Kšœ œ™K™—K˜Kšœœœ™7šœœœ™'Kšœ™Kšœ œ™K™——…—  B