CompilationUnit: ModuleStatement ( ; ModuleStatement)* ModuleStatement: Reference | ChildrenCedar | CellConstructor | Def Reference: (Directory | Open | Imports | Library) IDList IDList: ID ( , ID)* ChildrenCedar: CEDAR 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 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 CedarDeclarationSeries CedarStatementSeries StateType: (State | InittableState) CedarVariantFieldList RecordHelp: (IOAux | StateAux | DriveAux) (RefType | RecType | InitialValue) (ID | CedarLiteral) Initializer: Initializer CedarDeclarationSeries CedarStatementSeries Tester: Test TesterName TesterType CedarDeclarationSeries CedarStatementSeries TesterName: ID TesterType: BlackBox | StateToo Behavior: EvalName 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 CedarDeclarationSeries CedarStatementSeries HowToApply: ApplyCode 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 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Ί