<> <> 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. <> <> <> <> <> <> <> <> <>