Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: uml/collab/extracted
Source used for this grammar: Julien Baudry, Collaborations and Interactions in UML Metamodel, Collaborations_Interactions_UML.ecore
, 2006/07/10
Package
, ProviderClause
, CollaborationPackage
, Collaboration
, InteractionPackage
, Interaction
, AssociationRole
, ClassifierRole
, AssociationEndRole
, Message
, Request
, Operation
, Interface
, Boolean
, Integer
, String
), 0 root (—), 3 top (Boolean
, Integer
, String
), 0 bottom (—).[ownedEltColl]
2, [ownedEltInt]
2, [ownedElt]
2, [interaction]
2, [ownedEltAss]
, [ownedEltClass]
, [providerClause]
, [context]
, [message]
3, [connection]
, [associationEndRole]
, [receiverMess]
, [senderMess]
, [availableFeature]
, [base]
, [associationRole]
, [type]
, [activator]
, [receiver]
, [sender]
, [specification]
, [classifierRole]
2, [owner]
, [feature]
.Package ::=
[ownedEltColl]::CollaborationPackage [ownedEltInt]::InteractionPackage
ProviderClause ::= Package
ProviderClause ::=
[ownedEltColl]::CollaborationPackage [ownedEltInt]::InteractionPackage
CollaborationPackage ::= [ownedElt]::Collaboration
Collaboration ::=
[interaction]::Interaction
[ownedEltAss]::AssociationRole [ownedEltClass]::ClassifierRoleInteractionPackage ::= [providerClause]::ProviderClause [ownedElt]::Interaction
Interaction ::=
[context]::Collaboration [message]::Message
AssociationRole ::= [connection]::AssociationEndRole
ClassifierRole ::= [associationEndRole]::AssociationEndRole[receiverMess]::Message [senderMess]::Message [availableFeature]::Operation [base]::Interface
AssociationEndRole ::= [associationRole]::AssociationRole [type]::ClassifierRole
Message ::= [message]::Message[activator]::Message [interaction]::Interaction [receiver]::ClassifierRole [sender]::ClassifierRole [specification]::Request
Request ::= Operation
Request ::=
[message]::Message
Operation ::=
[classifierRole]::ClassifierRole
[owner]::InterfaceInterface ::= [classifierRole]::ClassifierRole[feature]::Operation
Boolean ::= "true" "false"
Integer ::= integer
String ::= string