
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: §wip/atl/M/extracted
Source used for this grammar: Hugo Brunelière, M 1.0, M.ecore, 2009
IdentifiedElement, MElement, MElementReference, Module, ModuleMember, ImportDirective, ExportDirective, Value, NumericalValue, StringValue, IntegerValue, DecimalValue, BooleanValue, DerivedType, TypeReference, IntrinsicTypeReference, DerivedTypeReference, Field, Collection, ComputedValue, InitializationExpression, WhereExpression, IdentityExpression, EqualExpression, InExpression, CollectionExpression, DefaultValueExpression, StandardValueExpression, Language, Entity, Boolean, Integer, String), 0 root (—), 12 top (IdentifiedElement, TypeReference, IntrinsicTypeReference, DerivedTypeReference, InitializationExpression, WhereExpression, IdentityExpression, EqualExpression, InExpression, CollectionExpression, DefaultValueExpression, StandardValueExpression), 11 bottom (Types/TypeReference 2, Double, Expressions/InExpression, Expressions/InitializationExpression, Expressions/Expression, Expressions/QueryExpression, Expressions/CollectionExpression, Types/Field 3, Expressions/ValueExpression 5, Expressions/WhereExpression, Types/DerivedType 5).[alias], [referencedElement], [imports], [exports], [moduleMembers], [module] 4, [importedElements], [exportedElements], [value] 6, [supertypes], [fields], [initializationExpression], [whereExpression], [expression], [subtype], [field], [lowerBound], [upperBound], [typeIdentifier], [type] 4, [owner], [qualifiers] 2, [identifier] 2, [values], [queryExpressions], [identity], [leftValue], [rightValue], [collection], [inExpression], [collectionValue], [context].IdentifiedElement ::= MElement
IdentifiedElement ::= Field
IdentifiedElement ::= Collection
IdentifiedElement ::= ComputedValue
MElement ::= Module
MElement ::= ModuleMember
MElementReference ::= [alias]::String [referencedElement]::MElement
Module ::= [imports]::ImportDirective [exports]::ExportDirective [moduleMembers]::ModuleMember
ModuleMember ::= DerivedType
ModuleMember ::= Language
ModuleMember ::= Entity
ImportDirective ::=
[module]::Module [importedElements]::MElementReferenceExportDirective ::=
[module]::Module [exportedElements]::ModuleMemberValue ::= NumericalValue
Value ::= StringValue
Value ::= BooleanValue
NumericalValue ::= IntegerValue
NumericalValue ::= DecimalValue
StringValue ::= [value]::String
IntegerValue ::= [value]::Integer
DecimalValue ::= [value]::Double
BooleanValue ::= [value]::Boolean
DerivedType ::= [supertypes]::Types/TypeReference [fields]::Types/Field [initializationExpression]::Expressions/InitializationExpression [whereExpression]::Expressions/WhereExpression [expression]::Expressions/Expression
TypeReference ::= [subtype]::Types/DerivedType [field]::Types/Field [lowerBound]::Integer [upperBound]::Integer
IntrinsicTypeReference ::= [typeIdentifier]::String
DerivedTypeReference ::= [type]::Types/DerivedType
Field ::= [owner]::Types/DerivedType [type]::Types/TypeReference
Collection ::=
[qualifiers]::String [identifier]::StringComputedValue ::=
[qualifiers]::String [identifier]::StringInitializationExpression ::=
[type]::Types/DerivedType [values]::ValueWhereExpression ::=
[type]::Types/DerivedType [queryExpressions]::Expressions/QueryExpressionIdentityExpression ::= [identity]::Types/Field
EqualExpression ::= [leftValue]::Expressions/ValueExpression [rightValue]::Expressions/ValueExpression
InExpression ::= [value]::Expressions/ValueExpression [collection]::Expressions/CollectionExpression
CollectionExpression ::= [inExpression]::Expressions/InExpression [collectionValue]::Expressions/ValueExpression
DefaultValueExpression ::= ε
StandardValueExpression ::= [context]::Expressions/ValueExpression [value]::String
Language ::= [module]::Module
Entity ::= [module]::Module
Boolean ::= "true" "false"
Integer ::= integer
String ::= string