
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: uml/reuse/extracted
Source used for this grammar: Julien Baudry, UML with reuse contracts, UML_withReuseContracts.ecore, 2006/07/10
ReuseContract, Dependency, ProviderClause, Package, ReuserClause, CompositeProvider, BasicProvider, CompositeReuser, BasicReuser, Boolean, Integer, String), 0 root (—), 4 top (Package, Boolean, Integer, String), 0 bottom (—).[supplier], [client], [owningDependency], [subDependency], [subcontract], [subreuser].ReuseContract ::= [supplier]::ProviderClause [client]::ReuserClause
Dependency ::= ReuseContract
Dependency ::=
[owningDependency]::Dependency [subDependency]::DependencyProviderClause ::= CompositeProvider
ProviderClause ::= BasicProvider
ProviderClause ::= CompositeProvider BasicProvider
Package ::= ProviderClause
Package ::= ReuserClause
Package ::= ProviderClause ReuserClause
ReuserClause ::= CompositeReuser
ReuserClause ::= BasicReuser
ReuserClause ::= CompositeReuser BasicReuser
CompositeProvider ::= [subcontract]::ReuseContract
BasicProvider ::= ε
CompositeReuser ::=
[subreuser]::ReuserClauseBasicReuser ::= ε
Boolean ::= "true" "false"
Integer ::= integer
String ::= string