CompilationUnit: ModuleStatement ( ; ModuleStatement)* ModuleStatement: Reference | ChildrenCedar | CellConstructor | Def Reference: (Directory | Open | Imports | Exports | 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 ) CedarInteger: CedarReal: CedarNumber: CedarInteger | CedarReal InterfaceProc: PortsProc CedarDeclarationSeries CedarStatementSeries StateType: (State | InittableState) CedarVariantFieldList RecordHelp: (SwitchIOAux | SimpleIOAux | 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 | EnumerateVicinity Expansion: Expand ExpansionStatement ( ; ExpansionStatement)* ExpansionStatement: NodeInstantiation | CellInstantiation | SplitJoin | ChildrenCedar NodeInstantiation: IDList : NodeTypeConstructor Note* [InitialValue] [InitialData] InitialValue: _v (RopeLiteral | CedarLiteral) [fmt RopeLiteral] InitialData: _d CedarLiteral CellInstantiation: IDList : CellInstanceConstructor Note* CellInstanceConstructor: CellTypeExpr [[ [ConnectionList] ]] ConnectionList: Connection ( , Connection)* Connection: [ IDList : ] ID CellTypeExpr: ID [ [ ArgList ] ] SplitJoin: EQUIVALENCE NodeExpression, NodeExpression NodeExpression: ID | NodeExpression [ CedarInteger [ .. CedarInteger] ] | [NodeExpression ( , NodeExpression)*] | NodeExpression cat NodeExpression 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 ports of leaf cells. Default is XPhobic. (SimpleInstructions) (SwitchInstructions) Says whether test procs will instruct this port at the switch level or the simple. Default is simple. (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. 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, May 8, 1985 5:09:24 pm PDT 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), expressed as in Cedar. A 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]. 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™5J™JšœΟbœ:™OJ™hK˜Kšœ#œ˜6K˜šœB˜BK™9—K˜Kš œ  œœœœœ˜BK˜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™H—K˜šœ ˜ K™-—K™Kšœ%˜%K˜šœ œ8˜PK™—K˜Kšœ œœ#˜EK˜Kšœ  œ œœœœœ œ˜tK˜Kšœ  œ8˜PK˜KšœœN˜ZK˜Kšœ˜K˜Kšœ œ˜K˜KšœJ˜JK˜Kšœ  œœœœœœ œ˜bK˜Kšœ œœ˜=K˜KšœU˜UK˜Kšœœ7˜RK˜Kšœœœ ˜?K˜Kšœ œ ˜K˜Kšœœ˜9K˜Kšœ'œœ˜