Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: meta/mof/cwm/core/extracted
Source used for this grammar: Hugo Brunelière, CWMCore 1.0, CWMCore.ecore
, 2005/08/10
VisibilityKind
, BooleanExpression
, ModelElement
, Dependency
, Constraint
, Feature
, StructuralFeature
, Attribute
, NameSpace
, Classifier
, Package
, Class
, Datatype
, Subsystem
, Model
, Integer
, String
, Boolean
), 0 root (—), 2 top (Integer
, Boolean
), 0 bottom (—).[vk_public_vis]
, [vk_private_vis]
, [vk_protected_vis]
, [expresssion]
, [name]
, [visibility]
, [contraints]
, [clientDependencies]
, [supplierDependencies]
, [namespace]
, [importers]
, [kind]
, [clients]
, [suppliers]
, [body]
, [constrainedElements]
, [owner]
, [type]
2, [ownedElements]
, [features]
4, [importedElements]
3.VisibilityKind ::= [vk_public_vis]::ε [vk_private_vis]::ε [vk_protected_vis]::ε
BooleanExpression ::= [expresssion]::String
ModelElement ::= Dependency
ModelElement ::= Constraint
ModelElement ::= Feature
ModelElement ::= NameSpace
ModelElement ::= [name]::String [visibility]::VisibilityKind [contraints]::Constraint[clientDependencies]::Dependency [supplierDependencies]::Dependency [namespace]::NameSpace [importers]::Package
Dependency ::= [kind]::String [clients]::ModelElement[suppliers]::ModelElement
Constraint ::=
[body]::BooleanExpression [constrainedElements]::ModelElement
Feature ::= StructuralFeature
Feature ::= [owner]::Classifier
StructuralFeature ::= Attribute
StructuralFeature ::= [type]::Classifier
Attribute ::= [type]::Classifier
NameSpace ::= Classifier
NameSpace ::= Package
NameSpace ::=
[ownedElements]::ModelElement
Classifier ::= Class
Classifier ::= Datatype
Classifier ::= Subsystem
Classifier ::=
[features]::Feature
Package ::= Model
Package ::= Subsystem
Package ::=
[importedElements]::ModelElement
Class ::=
[features]::Feature
Datatype ::=
[features]::Feature
Subsystem ::= [features]::Feature[importedElements]::ModelElement
Model ::=
[importedElements]::ModelElement
Integer ::= integer
String ::= string
Boolean ::= "true" "false"