
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: §wip/atl/KM3/extracted
Source used for this grammar: Frédéric Jouault, KM3 1.1, KM3.ecore, 2004/11/01
Boolean, Integer, String, LocatedElement, ModelElement, Classifier, DataType, Enumeration, EnumLiteral, Class, StructuralFeature, Attribute, Reference, Package, Metamodel), 0 root (—), 1 top (LocatedElement), 0 bottom (—).[literals], [name], [package], [isAbstract], [supertypes], [structuralFeatures], [lower] 2, [upper] 2, [isOrdered] 2, [isUnique] 2, [owner] 2, [type] 2, [isContainer], [opposite], [contents] 2, [metamodel].Boolean ::= "true" "false"
Integer ::= integer
String ::= string
LocatedElement ::= ModelElement
LocatedElement ::= Metamodel
ModelElement ::= Classifier
ModelElement ::= EnumLiteral
ModelElement ::= StructuralFeature
ModelElement ::= Package
Classifier ::= DataType
Classifier ::= Enumeration
Classifier ::= Class
Classifier ::= DataType Enumeration Class
DataType ::= ε
Enumeration ::=
[literals]::EnumLiteralEnumLiteral ::= [name]::String [package]::Package
Class ::= [isAbstract]::Boolean [supertypes]::Class [structuralFeatures]::StructuralFeature
StructuralFeature ::= Attribute
StructuralFeature ::= Reference
StructuralFeature ::= [lower]::Integer [upper]::Integer [isOrdered]::Boolean [isUnique]::Boolean [owner]::Class [type]::Classifier
Attribute ::= [lower]::Integer [upper]::Integer [isOrdered]::Boolean [isUnique]::Boolean [owner]::Class [type]::Classifier
Reference ::= [isContainer]::Boolean [opposite]::Reference
Package ::=
[contents]::ModelElement [metamodel]::MetamodelMetamodel ::=
[contents]::Package