
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: uml/simple/extracted
Source used for this grammar: Ivan Kurtev, QVT_SimpleUML.ecore,
UMLModelElement, Attribute, Package, PackageElement, Classifier, Class, PrimitiveDataType, Association, String), 0 root (—), 2 top (UMLModelElement, String), 0 bottom (—).[owner], [type], [elements], [attribute], [general], [generalOpposite], [reverse], [forward], [typeOpposite], [source], [destination].UMLModelElement ::= Attribute
UMLModelElement ::= Package
UMLModelElement ::= PackageElement
Attribute ::= [owner]::Class [type]::Classifier
Package ::=
[elements]::PackageElementPackageElement ::= Classifier
PackageElement ::= Association
Classifier ::= Class
Classifier ::= PrimitiveDataType
Class ::= [attribute]::Attribute [general]::Class [generalOpposite]::Class [reverse]::Association [forward]::Association
PrimitiveDataType ::=
[typeOpposite]::AttributeAssociation ::= [source]::Class [destination]::Class
String ::= string