
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: meta/syntax/dsltools/hillairet2/extracted
Source used for this grammar: Guillaume Hillairet, DSLModel.ecore, 2005/07/05
Model, Element, ModelElement, ModelElementLink, EmbeddingLink, ReferenceLink, NamedElement, Property, Role, Value, IntegerValue, DoubleValue, BooleanValue, StringValue, Boolean, Integer, String), 0 root (—), 6 top (Model, Element, NamedElement, Boolean, Integer, String), 4 bottom (PrimitiveTypes/String 2, PrimitiveTypes/Double, PrimitiveTypes/Boolean, PrimitiveTypes/Integer).[domainModel], [contents], [parentLink], [properties], [embeddinglinks], [referencelinks], [links], [owner] 4, [elements], [modelElement], [roles], [value] 5, [element].Model ::=
[domainModel]::PrimitiveTypes/String [contents]::ModelElementElement ::= ModelElement
Element ::= ReferenceLink
ModelElement ::= ModelElementLink
ModelElement ::= [parentLink]::EmbeddingLink [properties]::Property [embeddinglinks]::EmbeddingLink [referencelinks]::ReferenceLink
ModelElementLink ::=
[links]::ReferenceLinkEmbeddingLink ::=
[owner]::ModelElement [elements]::ModelElementReferenceLink ::= [owner]::ModelElement [modelElement]::ModelElementLink [roles]::Role
NamedElement ::= EmbeddingLink
NamedElement ::= Property
NamedElement ::= Role
Property ::= [owner]::ModelElement [value]::Value
Role ::= [element]::ModelElement [owner]::ReferenceLink
Value ::= IntegerValue
Value ::= DoubleValue
Value ::= BooleanValue
Value ::= StringValue
IntegerValue ::= [value]::PrimitiveTypes/Integer
DoubleValue ::= [value]::PrimitiveTypes/Double
BooleanValue ::= [value]::PrimitiveTypes/Boolean
StringValue ::= [value]::PrimitiveTypes/String
Boolean ::= "true" "false"
Integer ::= integer
String ::= string