DIRECTORY EDIFGrammar; EDIFSemanticsHeap2: CEDAR PROGRAM IMPORTS EDIFGrammar = {OPEN EDIFGrammar; DefineEm: PROC = { [] _ DL[$Interface, LIST[StarCh[LIST[$Define, $Unused, $Joined, $TwoDArrayJoin, $WeakJoined, $MustJoin, $Permutable, $Timing, $Simulate, Oo[$Body], $PortImplementation, Oo[$ArrayRelatedInfo], $Comment, $UserData, $Level1Ctl, $Level2Ctl]] ]]; [] _ DL[$Unused, LIST[Star[$Reference]]]; [] _ DL[$Joined, LIST[StarCh[LIST[$Reference, $Joined, $WeakJoined]] ]]; [] _ DL[$WeakJoined, LIST[StarCh[LIST[$Reference, $Joined, $WeakJoined]] ]]; [] _ DL[$MustJoin, LIST[StarCh[LIST[$Reference, $Joined, $WeakJoined]] ]]; [] _ DL[$Permutable, LIST[StarCh[LIST[NameRef[], $NonPermutable, $Permutable]] ]]; [] _ DL[$NonPermutable, LIST[StarCh[LIST[NameRef[], $NonPermutable, $Permutable]] ]]; [] _ DL[$Timing, LIST[NameRef[], StarCh[LIST[$Delay, $Stable, $Comment, $UserData]] ]]; [] _ DL[$Delay, LIST[Star[$Transition], Star[$Reference]]]; [] _ DL[$Transition, LIST[NameRef[], NameRef[], $Value, Opt[$Value]]]; [] _ DL[$Stable, LIST[NameRef[], $Number, $Number, NameRef[], NameRef[], NameRef[]]]; [] _ DL[$Simulate, LIST[NameRef[], NameDef[], StarCh[LIST[Oo[$Rename], $PortListAlias, Oo[$IgnoreValue], $WaveValue, $Apply, $Comment, $UserData]] ]]; [] _ DL[$PortListAlias, LIST[NameDef[], $NameRefs]]; [] _ DL[$IgnoreValue, LIST[NameDef[]]]; [] _ DL[$WaveValue, LIST[NameDef[], $Number, $LogicWaveform]]; [] _ DL[$Apply, LIST[$WholeNumber, $Number, StarCh[LIST[$LogicInput, $LogicOutput, $Comment, $UserData]] ]]; [] _ DL[$LogicInput, LIST[$NameRefs, $LogicWaveform]]; [] _ DL[$LogicOutput, LIST[$NameRefs, $LogicWaveform]]; [] _ DL[$LogicWaveform, LIST[Star[NameRef[]]]]; [] _ DL[$Body, LIST[StarCh[LIST[$FigureGroup, $Comment, $Property]] ]]; [] _ DL[$PortImplementation, LIST[NameRef[], StarCh[LIST[$FigureGroup, $Comment, $Property]] ]]; [] _ DL[$FigureGroup, LIST[$FigureGroupRef, StarCh[LIST[$Figure, $SignalGroup, $Comment, $UserData]] ]]; [] _ DC[$FigureGroupRef, LIST[NameRef[], $FigureGroupSpecification]]; [] _ DC[$Figure, LIST["Polygon", "Path", "Rectangle", "Dot", "Shape", "OpenShape", "Circle", "Annotate"]]; [] _ DL[$Polygon, LIST[Star[$Point], Star[$Property]]]; [] _ DL[$Path, LIST[Star[$Point], Star[$Property]]]; [] _ DL[$Rectangle, LIST[$Point, $Point, Star[$Property]]]; [] _ DL[$Dot, LIST[$Point, Star[$Property]]]; [] _ DL[$Shape, LIST[Star[$Corner], Star[$Property]]]; [] _ DL[$OpenShape, LIST[Star[$Corner], Star[$Property]]]; [] _ DL[$Circle, LIST[$Point, $Point, Star[$Property]]]; [] _ DL[$Point, LIST[$Coordinate, $Coordinate], 0, 0]; [] _ DC[$Point, LIST[$Expression], 1]; [] _ DC[$Corner, LIST[$Point, $Arc]]; [] _ DL[$Arc, LIST[$Point, $Point, $Point]]; [] _ DL[$Annotate, LIST[$String, $Point, $Point, $Justify]]; [] _ DC[$Justify, JdC[LIST[$Upper, $Center, $Lower], LIST[$Left, $Center, $Right]]]; [] _ DL[$SignalGroup, LIST[NameRef[], StarCh[LIST[$FigureGroup, $Comment, $UserData]] ]]; [] _ DL[$ArrayRelatedInfo, LIST[$ArrayUse, Opt[Ch[LIST[$Socket, $Plug]]], StarCh[LIST[$Comment, $UserData]] ]]; [] _ DC[$ArrayUse, LIST["ArrayMacro", "ArraySite", "BaseArray"]]; [] _ DL[$Socket, LIST[Star[$Transform]]]; [] _ DL[$Plug, LIST[Star[$SocketSet]]]; [] _ DL[$SocketSet, LIST[Star[$Instance], Star[$Transform]]]; [] _ DL[$Contents, LIST[StarCh[LIST[$Define, $Instance, $Unused, $Global, $Joined, $TwoDArrayJoin, $MustJoin, $Required, $Measured, $CriticalSignal, $FigureGroup, $Annotate, $Wire, $Section, Oo[$LogicModel], $Comment, $UserData, $Level1Ctl, $Level2Ctl]] ]]; [] _ DL[$Instance, LIST[$References, NameRef[], NameDef[], Opt[$Rename], Opt[$Transform], Star[$Parameter], Star[$Property], Star[$PortInstance]]]; [] _ DQ[$References, LIST[$Multiple, Star[$Reference]], $Reference]; [] _ DL[$Transform, LIST[Opt[$ScaleX], Opt[$ScaleY], Opt[$Orientation], Opt[$Translate]]]; [] _ DL[$ScaleX, LIST[$Coordinate, $Coordinate]]; [] _ DL[$ScaleY, LIST[$Coordinate, $Coordinate]]; [] _ DC[$Orientation, LIST["r0", "r90", "r180", "r270", "mx", "myr90", "my", "mxr90"]]; [] _ DL[$Translate, LIST[$Place, $Place]]; [] _ DC[$Place, LIST[$Coordinate, $Step]]; [] _ DL[$Step, LIST[$Coordinate, $WholeNumber, $Coordinate]]; [] _ DL[$Parameter, LIST[NameRef[], $ParameterValue]]; [] _ DQ[$ParameterValue, LIST[$Multiple, Star[$PrimitiveData]], $PrimitiveData, 0, 0]; [] _ DQ[$ParameterValue, LIST[$Multiple, Star[$Expression]], $Expression, 1]; [] _ DL[$PortInstance, LIST[NameRef[], Star[$Property]]]; [] _ DL[$Global, LIST[Star[NameRef[]]]]; [] _ DL[$Required, LIST[NameRef[], Star[$Delay]]]; [] _ DL[$Measured, LIST[NameRef[], Star[$Delay]]]; [] _ DL[$CriticalSignal, LIST[$WholeNumber, Star[NameRef[]]]]; [] _ DL[$Wire, LIST[NameRef[], NameRef[], Opt[$FigureGroup], Star[$Property]]]; [] _ DL[$Section, LIST[$String, StarCh[LIST[$String, $Instance, $Section]] ]]; [] _ DL[$LogicModel, LIST[NameRef[], $LogicOtherwise, StarCh[LIST[$LogicState, $Comment, $UserData]] ]]; [] _ DL[$LogicOtherwise, LIST[NameRef[]]]; [] _ DL[$LogicState, LIST[Star[$Condition], $Result]]; [] _ DL[$Condition, LIST[Star[$WFF]]]; [] _ DL[$Result, LIST[Star[$WFF]]]; [] _ DL[$WFF, LIST[NameRef[], NameRef[], $Number, $Number]]; }; }. JEDIFSemanticsHeap2.Mesa Spreitzer, February 24, 1986 5:32:58 pm PST Κδ– "cedar" style˜code™K™+—K˜KšΟk œ ˜K˜šΠbxœœ˜!Kšœ ˜Kšœœ ˜K˜šΟnœœ˜Kšœœ œœΝ˜ρKšœœ œ˜)Kšœœ œœ'˜HKšœœœœ'˜LKšœœ œœ'˜JKšœœœœ-˜RKšœœœœ-˜UKšœœ œœ+˜WKšœœ œ'˜;Kšœœœ-˜FKšœœ œ@˜UKšœœ œœ]˜–Kšœœœ˜4Kšœœœ ˜'Kšœœ œ&˜>Kšœœ œœ5˜lKšœœœ˜6Kšœœœ˜7Kšœœœ˜/Kšœœœœ(˜GKšœœœœ(˜`Kšœœœœ1˜hKšœœœ(˜EKšœœ œU˜jKšœœ œ!˜7Kšœœœ!˜4Kšœœ œ#˜;Kšœœœ˜-Kšœœ œ"˜6Kšœœ œ"˜:Kšœœ œ#˜8Kšœœ œ"˜6Kšœœ œ˜&Kšœœ œ˜%Kšœœœ˜,Kšœœ œ%˜Kšœœœ<˜OKšœœ œœ#˜NKšœœœ$œ'˜hKšœœœ ˜*Kšœœœ˜6Kšœœ œ˜&Kšœœ œ˜#Kšœœœ*˜<˜K˜——K˜——…—D