Author: Daniel Grundmann, Fraunhofer ISST.
Specification: Definition | Definition Specification Definition: TypeDcl ; | ConstDcl ; | ExceptDcl ; | Interface ; | Module ; | Class ; Class: ClassHeader { InterfaceBody } ClassHeader: CLASS Id OptTypePropertyList | CLASS Id EXTENDS ScopedName OptTypePropertyList | CLASS Id : InheritanceSpec OptTypePropertyList | CLASS Id : EXTENDS ScopedName : InheritanceSpec OptTypePropertyList Module: MODULE Id { Specification } Interface: InterfaceDcl | ForwardDcl InterfaceDcl: INTERFACE Id : InheritanceSpec { OptInterfaceBody } | INTERFACE Id { OptInterfaceBody } ForwardDcl: INTERFACE Id OptInterfaceBody: | InterfaceBody OptTypePropertyList: | TypePropertyList TypePropertyList: ( OptExtentSpec OptKeySpec ) OptExtentSpec: | ExtentSpec ExtentSpec: EXTENT Id OptKeySpec: | KeySpec KeySpec: KEY KeyList | KEYS KeyList KeyList: Key | Key , KeyList Key: PropertyName | ( PropertyList ) PropertyList: PropertyName | PropertyName , PropertyList PropertyName: Id AttributeNameList: AttributeName | AttributeName , AttributeNameList AttributeName: Id InterfaceBody: Export | Export InterfaceBody Export: TypeDcl ; | ConstDcl ; | ExceptDcl ; | AttrDcl ; | RelDcl ; | OpDcl ; InheritanceSpec: ScopedName | ScopedName , InheritanceSpec ScopedName: Id | :: Id | ScopedName :: Id ConstDcl: CONST ConstType Id = ConstExp ConstType: IntegerType | CharType | BooleanType | FloatingPtType | StringType | ScopedName ConstExp: OrExpr OrExpr: XOrExpr | OrExpr | XOrExpr XOrExpr: AndExpr | XOrExpr ^ AndExpr AndExpr: ShiftExpr | AndExpr & ShiftExpr ShiftExpr: AddExpr | ShiftExpr >> AddExpr | ShiftExpr << AddExpr AddExpr: MultExpr | AddExpr + MultExpr | AddExpr - MultExpr MultExpr: UnaryExpr | MultExpr * UnaryExpr | MultExpr / UnaryExpr | MultExpr % UnaryExpr UnaryExpr: UnaryOperator PrimaryExpr | PrimaryExpr UnaryOperator: - | + | ~ PrimaryExpr: ScopedName | Literal | ( ConstExp ) Literal: IntegerLiteral | StringLiteral | CharacterLiteral | FloatingPtLiteral | BooleanLiteral BooleanLiteral: TRUE | FALSE PositiveIntConst: ConstExp TypeDcl: TYPEDEF TypeDeclarator | StructType | UnionType | EnumType TypeDeclarator: TypeSpec Declarators TypeSpec: SimpleTypeSpec | ConstrTypeSpec SimpleTypeSpec: BaseTypeSpec | TemplateTypeSpec | ScopedName BaseTypeSpec: FloatingPtType | IntegerType | CharType | BooleanType | OctetType | AnyType | DATE | TIME | INTERVAL | TIMESTAMP TemplateTypeSpec: ArrayType | StringType | CollType CollType: SET < SimpleTypeSpec > | LIST < SimpleTypeSpec > | BAG < SimpleTypeSpec > | DICTIONARY < SimpleTypeSpec , SimpleTypeSpec > ConstrTypeSpec: StructType | UnionType | EnumType Declarators: Declarator | Declarator , Declarators Declarator: SimpleDeclarator | ComplexDeclarator SimpleDeclarator: Id ComplexDeclarator: ArrayDeclarator FloatingPtType: FLOAT | DOUBLE IntegerType: SignedInt | UnsignedInt SignedInt: SignedLongInt | SignedShortInt SignedLongInt: LONG SignedShortInt: SHORT UnsignedInt: UnsignedLongInt | UnsignedShortInt UnsignedLongInt: UNSIGNED LONG UnsignedShortInt: UNSIGNED SHORT CharType: CHAR BooleanType: BOOLEAN OctetType: OCTET AnyType: ANY StructType: STRUCT Id { MemberList } MemberList: Member | Member MemberList Member: TypeSpec Declarators ; UnionType: UNION Id SWITCH ( SwitchTypeSpec ) { SwitchBody } SwitchTypeSpec: IntegerType | CharType | BooleanType | EnumType | ScopedName SwitchBody: Case | Case SwitchBody Case: CaseLabelList ElementSpec ; CaseLabelList: CaseLabel | CaseLabel CaseLabelList CaseLabel: CASE ConstExp : | DEFAULT : ElementSpec: TypeSpec Declarator EnumType: ENUM Id { EnumeratorList } EnumeratorList: Enumerator | Enumerator , EnumeratorList Enumerator: Id ArrayType: ARRAY < SimpleTypeSpec , PositiveIntConst > | SEQUENCE < SimpleTypeSpec , PositiveIntConst > | ARRAY < SimpleTypeSpec > | SEQUENCE < SimpleTypeSpec > StringType: STRING < PositiveIntConst > | STRING ArrayDeclarator: Id ArraySizeList ArraySizeList: FixedArraySize | FixedArraySize ArraySizeList FixedArraySize: LEPAR PositiveIntConst REPAR AttrDcl: READONLY ATTRIBUTE DomainType FixedArraySize AttributeNameList | ATTRIBUTE DomainType FixedArraySize AttributeNameList | READONLY ATTRIBUTE DomainType AttributeNameList | ATTRIBUTE DomainType AttributeNameList DomainType: SimpleTypeSpec | StructType | EnumType | SET < Literal > | LIST < Literal > | BAG < Literal > RelDcl: RELATIONSHIP TargetOfPath TraversalPathName1 OptInverseTraversalPath TraversalPathName1: Id TargetOfPath: Id | RelCollectionType < Id > OptInverseTraversalPath: | INVERSE Id :: TraversalPathName2 TraversalPathName2: Id AttributeList: ScopedName | ScopedName , AttributeList RelCollectionType: SET | LIST | BAG ExceptDcl: EXCEPTION Id { OptMemberList } OptMemberList: | MemberList OpDcl: OpAttribute OpTypeSpec Id ParameterDcls RaisesExpr ContextExpr | OpTypeSpec Id ParameterDcls RaisesExpr ContextExpr | OpAttribute OpTypeSpec Id ParameterDcls ContextExpr | OpAttribute OpTypeSpec Id ParameterDcls RaisesExpr | OpTypeSpec Id ParameterDcls ContextExpr | OpAttribute OpTypeSpec Id ParameterDcls | OpTypeSpec Id ParameterDcls RaisesExpr | OpTypeSpec Id ParameterDcls OpAttribute: ONEWAY OpTypeSpec: SimpleTypeSpec | VOID ParameterDcls: ( ParamDclList ) | ( ) ParamDclList: ParamDcl | ParamDcl , ParamDclList ParamDcl: ParamAttribute SimpleTypeSpec Declarator ParamAttribute: IN | OUT | INOUT RaisesExpr: RAISES ( ScopedNameList ) ScopedNameList: ScopedName | ScopedName , ScopedNameList ContextExpr: CONTEXT ( StringLiteralList ) StringLiteralList: StringLiteral | StringLiteral , StringLiteralList
Last modified: 1/20/99 by Leonidas Fegaras