<> <> <<>> <> <> CompilationUnit: ModuleStatement ( ; ModuleStatement)* ModuleStatement: Reference | ModuleCedar | External | CellConstructor | Def <> Reference: (Directory | Open | Imports | Exports | Library | TranslationNeeds) IDList IDList: ID ( , ID)* ModuleCedar: InterfaceCedar | ChildrenCedar InterfaceCedar: InterfaceCedar CedarDeclarationSeries CedarStatementSeries ChildrenCedar: CEDAR CedarDeclarationSeries CedarStatementSeries Def: IDList : CellFnConstructor CellFnConstructor: LAMBDA Parameters RETURN CellConstructor [HowToApply] Parameters: [ Parameter (, Parameter)* ] Parameter: IDList : CedarLiteral--denoting type-- CedarLiteral: <> <> External: EXTERNAL IDList <> 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.