DIRECTORY Core, CoreClasses, Pipal, PipalSinix, RefTab; PipalSisyph: CEDAR DEFINITIONS = BEGIN IntegerParameter: TYPE = RECORD [variable: ATOM, value: INT]; Extract: PROC [name: Core.ROPE, parameters: LIST OF IntegerParameter _ NIL] RETURNS [Core.CellType]; instanceExpressionsProp: ATOM; objectExpressionsProp: ATOM; CreateContext: PROC RETURNS [context: PipalSinix.Context]; Define: PROC [context: PipalSinix.Context, variable: ATOM, value: REF]; Set: PROC [context: PipalSinix.Context, variable: ATOM, value: REF]; Get: PROC [context: PipalSinix.Context, variable: ATOM] RETURNS [value: REF]; GetInt: PROC [context: PipalSinix.Context, variable: ATOM] RETURNS [value: INT]; GetAtom: PROC [context: PipalSinix.Context, variable: ATOM] RETURNS [value: ATOM]; GetRope: PROC [context: PipalSinix.Context, variable: ATOM] RETURNS [value: Core.ROPE]; Eval: PROC [context: PipalSinix.Context, expr: Core.ROPE] RETURNS [value: REF]; DefineEval: PROC [context: PipalSinix.Context, variable: ATOM, expr: Core.ROPE]; SetEval: PROC [context: PipalSinix.Context, variable: ATOM, expr: Core.ROPE]; ContextProblem: SIGNAL [message: Core.ROPE, variable: ATOM]; GlobalNonAtomic: SIGNAL [object: Pipal.Object, name: Core.ROPE, wire: Core.Wire]; InterpreterProblem: SIGNAL [context: PipalSinix.Context, expr, errorRope: Core.ROPE]; defaultGlobalNames: PRIVATE LIST OF Core.ROPE; globalNames: PRIVATE LIST OF Core.ROPE; ParseSatellite: PRIVATE PROC [satellite: Core.ROPE] RETURNS [variable: ATOM _ NIL, char: CHAR, expr: Core.ROPE]; ParsedRope: TYPE = RECORD [variable: ATOM, expr: Core.ROPE]; ParseSatellites: PRIVATE PROC [satellites: LIST OF Core.ROPE] RETURNS [declarations, assignments, properties: LIST OF ParsedRope _ NIL, others: LIST OF Core.ROPE _ NIL]; ProcessGlobalNames: PROC [mode: PipalSinix.Mode, objName: Core.ROPE, context: PipalSinix.Context, fused: RefTab.Ref, instances: LIST OF CoreClasses.CellInstance]; END. PipalSisyph.mesa Copyright Σ 1985, 1986, 1987, 1988 by Xerox Corporation. All rights reserved. Created by Sindhu and Serlet, November 26, 1985 1:02:25 am PDT Pradeep Sindhu November 15, 1986 11:24:25 pm PST Barth, January 13, 1986 3:31:45 pm PST Bertrand Serlet April 30, 1988 6:56:28 pm PDT Extraction Conveniences Extracts name with the given (INT) parameters. Annotations The annotation value is of type LIST OF ROPE. It is similar to instance satellites, but invisible. The annotation value is of type LIST OF ROPE. It is similar to object satellites, but invisible. Context Handling Procedures Evaluates all design satellites or expressions in that context. Defines variable for context, and sets its value. Assumes that variable is a defined variable, and sets its value. Retrieves the value of variable. Retrieves the value of variable, and converts to INT. Retrieves the value of variable, and converts to an ATOM. Retrieves the value of variable, and converts to a ROPE. Computes the value of expr. Expressions yielding a non-REF (such as an INT) a REFized, to allow satellites like: "Value: 2". Might raise InterpreterError. Defines variable for context, and sets its value to the evaluated expression. Assumes that variable is a defined variable, and sets its value to the evaluated expression. Exceptions Private Utilities for implementors of Extract Procs variables treated specially by the extractor. Recognized satellites are: ~ (declaration) _ (parameter passing) : (property) others (for those, variable=NIL and expr=satellite) Global wires for a given global name are identified as wire (named appropriately or unnamed) connected in instances to a sub public appropriately named. They are made public and fused. ΚΧ˜™JšœN™NIcodešœ;Οk™>Kšœ-™0Kšœ#™&Kšœ-™-—K˜š œ˜ Kšœ˜Kšœ˜Kšœ˜K˜—KšΟn œœ œ˜&head™Kš œœœ œ œ˜=šžœœ œœœœœ˜dKšœœ ™.——šœ ™ šœœ˜Kšœ œœœ7™c—šœœ˜Kšœ œœœ5™a——™šž œœœ˜:Kšœ?™?K˜—šžœœ)œ œ˜GKšœ1™1K™—šžœœ)œ œ˜DKšœ@™@K˜—š žœœ)œœ œ˜MKšœ ™ K™—š žœœ)œœ œ˜PKšœ1œ™5K™—š žœœ)œœ œ˜RKšœ4œ™9K™—š žœœ)œœœ˜WKšœ3œ™8K™—š žœœ*œœ œ˜OK™Kšœœ œ2™`Kšœ™K™—šž œœ)œ œ˜PKšœM™MK™—šžœœ)œ œ˜MKšœ\™\——™ šžœœœ œ˜