AcceptBlock )*
AcceptBlock = AcceptClause Block
AcceptClause = ( Name )?
QualifiedNameList
/* CLASSIFY STATEMENTS */
ClassifyStatement = Expression ClassificationClause
ClassificationClause = ClassificationFromClause
( ClassificationToClause )?
| ( ReclassifyAllClause )?
ClassificationToClause
ClassificationFromClause = QualifiedNameList
ClassificationToClause = QualifiedNameList
ReclassifyAllClause =
QualifiedNameList = QualifiedName ( QualifiedName )*
/*********
* UNITS *
*********/
UnitDefinition = ( NamespaceDeclaration )?
( ImportDeclaration )*
( )?
StereotypeAnnotations NamespaceDefinition
StereotypeAnnotations = ( StereotypeAnnotation )*
StereotypeAnnotation = QualifiedName
( TaggedValues )?
TaggedValues = QualifiedNameList
| TaggedValueList
TaggedValueList = TaggedValue ( "," TaggedValue )*
TaggedValue = Name
(
|
|
| (
| )?
(
|
|
|
)
)
NamespaceDeclaration = QualifiedName
ImportDeclaration = ImportVisibilityIndicator
ImportReference
ImportVisibilityIndicator =
|
ImportReference = ColonQualifiedName
(
| AliasDefinition )?
| DotQualifiedName
( | AliasDefinition )?
| Name
( ( | )
| AliasDefinition )?
AliasDefinition = Name
/* NAMESPACES */
NamespaceDefinition = PackageDefinition | ClassifierDefinition
VisibilityIndicator = ImportVisibilityIndicator |
/* PACKAGES */
PackageDeclaration =
Name
PackageDefinition = PackageDeclaration PackageBody
PackageDefinitionOrStub = PackageDeclaration
( | PackageBody )
PackageBody = ( PackagedElement )*
PackagedElement = ( )?
StereotypeAnnotations
ImportVisibilityIndicator
PackagedElementDefinition
PackagedElementDefinition = PackageDefinitionOrStub
| ClassifierDefinitionOrStub
/***************
* CLASSIFIERS *
***************/
ClassifierDefinition = ClassDefinition
| ActiveClassDefinition
| DataTypeDefinition
| EnumerationDefinition
| AssociationDefinition
| SignalDefinition
| ActivityDefinition
ClassifierDefinitionOrStub = ClassDefinitionOrStub
| ActiveClassDefinitionOrStub
| DataTypeDefinitionOrStub
| EnumerationDefinitionOrStub
| AssociationDefinitionOrStub
| SignalDefinitionOrStub
| ActivityDefinitionOrStub
ClassifierSignature = Name ( TemplateParameters )?
( SpecializationClause )?
TemplateParameters = ClassifierTemplateParameter
( ClassifierTemplateParameter )*
ClassifierTemplateParameter = ( )? Name
( QualifiedName )?
SpecializationClause = QualifiedNameList
/* CLASSES */
ClassDeclaration = ( )? ClassifierSignature
ClassDefinition = ClassDeclaration ClassBody
ClassDefinitionOrStub = ClassDeclaration ( | ClassBody )
ClassBody = ( ClassMember )*
ClassMember = ( )?
StereotypeAnnotations
( VisibilityIndicator )?
ClassMemberDefinition
ClassMemberDefinition = ClassifierDefinitionOrStub
| FeatureDefinitionOrStub
/* ACTIVE CLASSES */
ActiveClassDeclaration = ( )?
ClassifierSignature
ActiveClassDefinition = ActiveClassDeclaration ActiveClassBody
ActiveClassDefinitionOrStub = ActiveClassDeclaration
( | ActiveClassBody )
ActiveClassBody = ( ActiveClassMember )*
( BehaviorClause )?
BehaviorClause = Block | Name
ActiveClassMember = ( )?
StereotypeAnnotations
( VisibilityIndicator )?
ActiveClassMemberDefinition
ActiveClassMemberDefinition = ClassMemberDefinition
| ActiveFeatureDefinitionOrStub
/* DATA TYPES */
DataTypeDeclaration = ( )?
ClassifierSignature
DataTypeDefinition = DataTypeDeclaration StructuredBody
DataTypeDefinitionOrStub = DataTypeDeclaration
( | StructuredBody )
StructuredBody = ( StructuredMember )*
StructuredMember = ( )?
StereotypeAnnotations (
)?
PropertyDefinition
/* ASSOCIATIONS */
AssociationDeclaration = ( )? ClassifierSignature
AssociationDefinition = AssociationDeclaration StructuredBody
AssociationDefinitionOrStub = AssociationDeclaration
( | StructuredBody )
/* ENUMERATIONS */
EnumerationDeclaration = Name ( SpecializationClause )?
EnumerationDefinition = EnumerationDeclaration EnumerationBody
EnumerationDefinitionOrStub = EnumerationDeclaration
( | EnumerationBody )
EnumerationBody = EnumerationLiteralName
( EnumerationLiteralName )*
EnumerationLiteralName = ( )? Name
/* SIGNALS */
SignalDeclaration = ( )? ClassifierSignature
SignalDefinition = SignalDeclaration StructuredBody
SignalDefinitionOrStub = SignalDeclaration
( | StructuredBody )
/* ACTIVITIES */
ActivityDeclaration = Name ( TemplateParameters )?
FormalParameters ( TypePart )?
ActivityDefinition = ActivityDeclaration Block
ActivityDefinitionOrStub = ActivityDeclaration ( | Block )
FormalParameters = ( FormalParameterList )?
FormalParameterList = FormalParameter ( FormalParameter )*
FormalParameter = ( )?
StereotypeAnnotations ParameterDirection Name
TypePart
ParameterDirection = | |
/* FEATURES */
FeatureDefinitionOrStub = AttributeDefinition
| OperationDefinitionOrStub
ActiveFeatureDefinitionOrStub = ReceptionDefinition
| SignalReceptionDefinitionOrStub
/* PROPERTIES */
PropertyDefinition = PropertyDeclaration
AttributeDefinition = PropertyDeclaration ( AttributeInitializer )?
AttributeInitializer = InitializationExpression
PropertyDeclaration = Name ( )? TypePart
TypePart = TypeName ( Multiplicity )?
TypeName = ( QualifiedName | )
Multiplicity = ( MultiplicityRange )?
( ( )?
| ( )?
|
)?
MultiplicityRange = ( )?
UnlimitedNaturalLiteral
UnlimitedNaturalLiteral = |
/* OPERATIONS */
OperationDeclaration = ( )? Name FormalParameters
( TypePart )? ( RedefinitionClause )?
OperationDefinitionOrStub = OperationDeclaration ( | Block )
RedefinitionClause = QualifiedNameList
/* RECEPTIONS */
ReceptionDefinition = QualifiedName
SignalReceptionDeclaration = Name
( SpecializationClause )?
SignalReceptionDefinitionOrStub
= SignalReceptionDeclaration
( | StructuredBody )