CompilationUnit: ModuleStatement ( ; ModuleStatement)* ModuleStatement: Reference | ChildrenCedar | CellConstructor | Def Reference: (Directory | Open | Imports | Library) IDList IDList: ID ( , ID)* ChildrenCedar: CEDAR <children:> CedarDeclarationSeries CedarStatementSeries Def: IDList : CellFnConstructor CellFnConstructor: LAMBDA Parameters RETURN CellConstructor [HowToApply] Parameters: [ Parameter (, Parameter)* ] Parameter: IDList : CedarLiteral--denoting type-- CedarLiteral: CellConstructor: CELLTYPE NameDescription CellStatement* ENDCELLTYPE NameDescription: RopeLiteral | NameProc | AutoName NameProc: NameMaker <children:> CedarDeclarationSeries CedarStatementSeries CellStatement: InterfaceDescription | StateType | Initializer | Expansion | Tester | Behavior | RecordHelp | Other | InitCTProps InterfaceDescription: SimpleInterface | InterfaceProc SimpleInterface: PORTS [ [Port (, Port)*] ] Port: IDList DirectionFlag NodeTypeConstructor Note* DirectionFlag: < | = | > Note: - Assertion Assertion: ( ID RefAny* ) RefAny: NodeTypeConstructor: ID [[ [ArgList] ]] ArgList: Arg ( , Arg)* Arg: [ IDList : ] ( ID | CedarRopeLiteral | CedarNumber | CedarLiteral ) CedarNumber: InterfaceProc: PortsProc <children:> CedarDeclarationSeries CedarStatementSeries StateType: (State | InittableState) <children:> CedarVariantFieldList RecordHelp: (IOAux | StateAux | DriveAux) (RefType | RecType | InitialValue) (ID | CedarLiteral) Initializer: Initializer <children:> CedarDeclarationSeries CedarStatementSeries Tester: Test TesterName TesterType <children:> CedarDeclarationSeries CedarStatementSeries TesterName: ID TesterType: BlackBox | StateToo Behavior: EvalName <children:> CedarDeclarationSeries CedarStatementSeries EvalName: ValsChanged | InitQ | PropQ | InitUD | PropUD | FinalUD | EvalSimple | FindVicinity Expansion: Expand ExpansionStatement ( ; ExpansionStatement)* ExpansionStatement: NodeInstantiation | CellInstantiation | ChildrenCedar NodeInstantiation: IDList : NodeTypeConstructor Note* [InitialValue] [InitialData] InitialValue: _v (RopeLiteral | CedarLiteral) [fmt RopeLiteral] InitialData: _d CedarLiteral CellInstantiation: IDList : CellInstanceConstructor Note* CellInstanceConstructor: CellTypeExpr [[ [ArgList] ]] CellTypeExpr: ID [ [ ArgList ] ] Other: Assert AssertionList AssertionList: ( Assertion* ) InitCTProps: InitCTProps <children:> CedarDeclarationSeries CedarStatementSeries HowToApply: ApplyCode <children:> CedarDeclarationSeries CedarStatementSeries Here are some assertions that can be made about ports: (XPhobic) (XPhillic) Says whether or not Xes may cross the port. Only meaningful on switch-level ports. Default is XPhobic. (Special) (General) Again only meaningful on switch-level ports. Says whether the general or special protocol is used. Default is general. (EC relation:ID class:ID) Specifies which equivalence class (as defined by the given relation) the port belongs to. Here are some assertions that can be made about node instantiations: (XPhobic) (XPhillic) Says whether or not the node may be in an X state. Only meaningful on switch-level nodes. Default is XPhobic. Here are some assertions that can be made about cell types: (EC relation:ID class:ID) Specifies which equivalence class (as defined by the given relation) the cell type belongs to. ���„��RoseGrammar.Tioga Last Edited by: Spreitzer, January 25, 1985 2:50:30 pm PST Terminals are in bold face; syntactic categories and meta-characters are plain. Syntactic categories whose names begin with "Cedar" are from the Cedar language, unless otherwise noted. All of the References must come before any of the others. A Cedar expression surrounded by vertical bars (double to include). Example: |"This is a text literal with a '||' (single vertical bar) in it"| This code should compute the name of the CellType. This code will go in a PROC [...] RETURNS [name: ROPE]. For all the random things up with which we do not want to garbage the syntax. Something parseable by IO.GetRefAny. An integer (expressed in decimal, octal, or hex) or real number literal, expressed as in Cedar. This code should compute the RoseTypes.Ports describing the cell type's interface. This code will go in a PROC [...] RETURNS [ports: Ports]. InitialStateValue: InitialStateValue CedarLiteral IOCreator: IOCreator <children:> CedarDeclarationSeries CedarStatementSeries IORefType: IORefTypeName ID InitialDriveValue: InitialDriveValue CedarLiteral This code computes an initial assertion list for the cell type. This code will go in a PROC [...] RETURNS [other: Asserting.Assertions]. This code should compute the RoseTypes.CellType describing the cell type. This code will go in a PROC [...] RETURNS [ct: CellType]. �Ê��– "cedar" style˜�Icode™J™:J™�JšœÏbœ:™OJ™hK˜�Kšœ#œ˜6K˜�šœB˜BK™9—K˜�Kš œ œœœœ˜8K˜�Kšœ œ˜K˜�Kšœœ8˜LK˜�Kšœœ˜K˜�Kšœœœ˜HK˜�Kšœœœ ˜(K˜�Kšœœ Ïc˜1K˜�˜ K™CK™K—K˜�Kšœœ ˜DK˜�Kšœ*˜2K˜�šœ œ8˜KK™k—K˜�Kšœ€˜€K˜�Kšœ5˜5K˜�Kšœœœœ ˜+K˜�Kšœ4˜4K˜�Kšœœœ˜K˜�šœœ ˜K™M—K˜�Kšœœ˜K˜�šœ˜K™$—K˜�Kšœœœ˜'K˜�Kšœœ˜K˜�Kšœœ9˜HK˜�šœ˜K™_—K˜�šœ œ8˜PK™—K˜�Kšœœœ#˜EK˜�Kšœœ ™1K™�Kšœ œ8™LK™�Kšœ œ™K™�Kšœœ ™1K˜�Kš œ œœœœœœ˜`K˜�Kšœ œ8˜PK˜�KšœœN˜ZK˜�Kšœ˜K˜�Kšœœ˜K˜�KšœJ˜JK˜�Kšœ œœœœœœ œ˜]K˜�Kšœœœ˜=K˜�KšœI˜IK˜�Kšœœ7˜RK˜�Kšœœœ ˜?K˜�Kšœ œ ˜K˜�Kšœœ˜9K˜�Kšœ'œœ˜5K˜�Kšœœ œ˜ K˜�Kšœœ˜K˜�Kšœœ˜K˜�šœ œ8˜PK™‰—K˜�šœ œ8˜MK™„—K˜�block˜6L˜�Kš ˜ š ˜ L˜h—L˜�Kš ˜ š ˜ L˜x—L˜�šœÏi œŸ˜L˜Y——L˜�˜DL˜�Kš ˜ š ˜ L˜o——L˜�˜;L˜�šœŸ œŸ˜L˜^———�…—���� 0��º��