DIRECTORY CD, CDCommandOps, CDProperties, CDSequencer, SX, SXAccess, SXAtoms, SXAccessInternal, TerminalIO; SXAccessImpl: CEDAR PROGRAM IMPORTS CDCommandOps, CDProperties, SXAtoms, SXAccessInternal, TerminalIO EXPORTS SXAccess = BEGIN design: PUBLIC CD.Design _ NIL; formatKey: PUBLIC REF _ NIL; invocation: PUBLIC REF _ NIL; stopFlag: PUBLIC REF BOOL _ NIL; sxTech: PUBLIC REF SX.TechHandle _ NIL; CallingRec: TYPE = RECORD [ design: CD.Design, hierarchyRoots: CD.ApplicationList, formatKey: REF, stopFlag: REF BOOL ]; Analyze: PUBLIC PROC [design: CD.Design, hierarchyRoots: CD.ApplicationList, formatKey: REF, stopFlag: REF BOOL_NIL] RETURNS [skipped: BOOL_FALSE] = BEGIN ik: REF CallingRec; comm: CDSequencer.Command; IF stopFlag=NIL THEN stopFlag _ NEW[BOOL_FALSE]; ik _ NEW[CallingRec_[ design: design, hierarchyRoots: hierarchyRoots, formatKey: formatKey, stopFlag: stopFlag ]]; comm _ NEW[CDSequencer.CommandRec _[ a: $SX, design: design, ref: ik ]]; skipped _ CDCommandOps.CallWithResource[PseudoCommand, comm, $SX, stopFlag]; IF skipped THEN TerminalIO.WriteRope["**analyze skipped\n"] END; PseudoCommand: PROC [comm: CDSequencer.Command] = BEGIN GetSXTech: PROC [technology: CD.Technology] RETURNS [th: REF SX.TechHandle] = BEGIN WITH CDProperties.GetProp[technology, SXAtoms.spinifex] SELECT FROM x: REF SX.TechHandle => th _ x; ENDCASE => th _ NIL; IF th=NIL THEN TerminalIO.WriteRope["technology not implemented for Spinifex\n"]; END; callParameters: REF CallingRec = NARROW[comm.ref]; design _ callParameters.design; formatKey _ callParameters.formatKey; invocation _ callParameters; stopFlag _ callParameters.stopFlag; stopFlag^ _ FALSE; sxTech _ GetSXTech[design.technology]; IF sxTech#NIL THEN ProtectedAnalyze[callParameters.hierarchyRoots]; design _ NIL; invocation _ NIL; formatKey _ NIL; sxTech _ NIL; END; ProtectedAnalyze: PROC [hierarchyRoots: CD.ApplicationList] = BEGIN SXAccessInternal.Analyze[hierarchyRoots]; END; END. vSXAccessImpl.mesa Copyright c 1984, 1985 by Xerox Corporation. All rights reserved. Written by Jacobi, April 2, 1985 5:11:35 pm PST Last Edited by: Jacobi, April 2, 1985 5:11:39 pm PST --variables only valid inside an analysis invocation --if stopFlag^ gets true, analysis might be aborted --OldSpinifexAccess.Analyze[design, hierarchyRoots, formatKey, stopFlag];- Κ΅˜code™Kšœ Οmœ7™BK™/K™4—K˜šΟk ˜ Jšžœ˜Jšœ ˜ Jšœ ˜ Jšœ ˜ Jšœ˜Jšœ ˜ Jšœ˜Jšœ˜Jšœ ˜ —J˜šΟb œžœž˜JšžœB˜IJšžœ ˜—Jšž˜J˜Jšœ4™4Jšœžœžœ žœ˜Jšœ žœžœžœ˜Jšœ žœžœžœ˜Jš œ žœžœžœžœ˜ Jš œžœžœžœ žœžœ˜'J˜šœ žœžœ˜Jšœžœ˜Jšœžœ˜#Jšœ žœ˜Jšœ žœž˜Jšœ˜—J˜šΟnœžœžœ žœžœžœ žœžœžœžœ žœžœ˜”Jšœ3™3Jšž˜Jšœžœ ˜Jšœ˜Jš žœ žœžœ žœžœžœ˜0šœžœ ˜Jšœ˜Jšœ ˜ Jšœ˜Jšœ˜Jšœ˜—šœžœ˜$Jšœ˜Jšœ˜Jšœ˜Jšœ˜—JšœL˜LJšžœ žœ,˜;Jšžœ˜—J˜š  œžœ˜1Jšž˜š   œžœžœ žœžœžœ˜MJšž˜šžœ4žœž˜CKšœžœžœ˜Kšžœ žœ˜—šžœžœž˜JšœB˜B—Jšžœ˜—Iunitšœžœžœ ˜2Jšœ˜Jšœ%˜%Jšœ˜Jšœ#˜#Jšœ žœ˜Jšœ&˜&šžœžœžœ˜Jšœ0˜0—Jšœ žœ˜ Jšœ žœ˜Jšœ žœ˜Jšœ žœ˜ Jšžœ˜—J˜š œžœžœ˜=Jšž˜Jšœ)˜)JšœJ™JJšžœ˜—J˜Jšžœ˜J™J˜—…—¬ Χ