<> <> <<>> <> <> 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 <> <<>> < CedarDeclarationSeries CedarStatementSeries>> <<>> <> <<>> <> 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.