Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: §wip/atl/QVT/extracted
Source used for this grammar: Frédéric Jouault, QVT 1.0, QVT.ecore
, 2007/06/03
TemplateExp
, ObjectTemplateExp
, CollectionTemplateExp
, PropertyTemplateItem
, ImperativeIterateExp
, AssignExp
, BlockExp
, SwitchExp
, VariableInitExp
, WhileExp
, ComputeExp
, AltExp
, UnlinkExp
, ReturnExp
, BreakExp
, TryExp
, RaiseExp
, ContinueExp
, ForExp
, TupleExp
, Typedef
, InstantiationExp
, DictionaryType
, DictLiteralExp
, DictLiteralPart
, TemplateParameterType
, LogExp
, AssertExp
, SeverityKind
, ImperativeLoopExp
, CollectorExp
, ImperativeExpression
, UnpackExp
, AnonymousTupleType
, AnonymousTupleLiteralExp
, AnonymousTupleLiteralPart
, ListType
, Class
, DataType
, Element
, Tag
, Enumeration
, NamedElement
, Extent
, Object
, Operation
, MultiplicityElement
, Package
, Type
, Parameter
, EnumerationLiteral
, Property
, TypedElement
, PrimitiveType
, URIExtent
, Boolean
, String
, Integer
, Comment
, MappingBody
, Helper
, ResolveExp
, ResolveInExp
, OperationalTransformation
, MappingParameter
, MappingOperation
, MappingCallExp
, Constructor
, ContextualProperty
, EntryOperation
, ImperativeCallExp
, ImperativeOperation
, DirectionKind
, Library
, ModelParameter
, ModelType
, Module
, ModuleImport
, ImportKind
, VarParameter
, OperationBody
, ConstructorBody
, ObjectExp
, Area
, Assignment
, BottomPattern
, GuardPattern
, Mapping
, RealizedVariable
, CoreDomain
, CorePattern
, EnforcementOperation
, EnforcementMode
, Domain
, Transformation
, TypedModel
, Rule
, Pattern
, Predicate
, Function
, FunctionParameter
, RelationalTransformation
, Relation
, RelationDomain
, DomainPattern
, RelationImplementation
, Key
, BooleanLiteralExp
, CallExp
, CollectionKind
, OclExpression
, UnlimitedNaturalExp
, IfExp
, LetExp
, Variable
, PropertyCallExp
, VariableExp
, TypeExp
, LoopExp
, IteratorExp
, StringLiteralExp
, IntegerLiteralExp
, OperationCallExp
, RealLiteralExp
, LiteralExp
, IterateExp
, PrimitiveLiteralExp
, NumericLiteralExp
, CollectionLiteralExp
, CollectionLiteralPart
, CollectionItem
, CollectionRange
, TupleLiteralExp
, NullLiteralExp
, ExpressionInOcl
, OpaqueExpression
, InvalidLiteralExp
, FeaturePropertyCall
, TupleLiteralPart
, BagType
, CollectionType
, EnumLiteralExp
, InvalidType
, OrderedSetType
, SequenceType
, SetType
, TupleType
, VoidType
, AnyType
), 0 root (—), 3 top (Object
, MultiplicityElement
, OpaqueExpression
), 2 bottom (Real
, UnlimitedNatural
).[part]
7, [referredClass]
, [kind]
5, [referredCollectionType]
, [match]
, [objContainer]
, [value]
7, [referredProperty]
2, [target]
3, [left]
, [defaultValue]
, [isReset]
, [body]
9, [alternativePart]
, [elsePart]
, [referredVariable]
2, [withResult]
, [condition]
7, [returnedElement]
, [item]
2, [tryBody]
, [exception]
2, [exceptBody]
, [element]
3, [base]
, [instantiatedClass]
, [extent]
2, [argument]
2, [keyType]
, [key]
, [specification]
2, [text]
, [level]
, [severity]
, [log]
, [assertion]
, [error]
, [fatal]
, [warning]
, [variable]
3, [elementType]
6, [ownedAttribute]
3, [ownedOperation]
3, [superClass]
3, [isAbstract]
3, [transformation]
4, [owner]
, [name]
, [ownedLiteral]
, [class]
, [ownedParameter]
, [raisedException]
, [ownedType]
, [nestedPackage]
, [uri]
, [operation]
4, [enumeration]
, [Class]
, [opposite]
, [module]
2, [isReadOnly]
, [isDerived]
, [isComposite]
, [isId]
, [default]
, [annotatedElement]
, [initSection]
, [endSection]
, [isQuery]
, [one]
, [isInverse]
, [isDeferred]
, [inMapping]
, [intermediateClass]
, [refined]
, [intermediateProperty]
, [modelParameter]
2, [entry]
, [relation]
2, [refinedDomain]
, [disjunct]
, [refinedRelation]
, [merged]
, [inherited]
, [when]
2, [isStrict]
, [context]
6, [result]
4, [overridden]
4, [isBlackbox]
5, [isVirtual]
, [in]
2, [inout]
, [out]
, [ownedTag]
3, [configProperty]
2, [moduleImport]
2, [usedModelType]
2, [ctxOwner]
2, [resOwner]
2, [metamodel]
, [additionalCondition]
, [conformanceKind]
, [binding]
, [importedModule]
, [extension]
, [access]
, [content]
2, [referredObject]
, [bottomPattern]
3, [slotExpression]
, [targetProperty]
, [isDefault]
, [area]
2, [assignment]
, [realizedVariable]
, [enforcementOperation]
, [local]
, [initExpression]
3, [LetExp]
3, [computeOwner]
3, [bindParameter]
3, [isCheckable]
2, [isEnforceable]
2, [rule]
3, [typedModel]
2, [guardPattern]
, [enforcementMode]
, [operationCallExp]
, [Deletion]
, [Creation]
, [extends]
, [usedPackage]
, [dependsOn]
, [domain]
, [overrides]
, [predicate]
, [bindsTo]
, [whenOwner]
, [whereOwner]
, [conditionExpression]
, [pattern]
2, [queryExpression]
, [ownedKey]
, [isTopLevel]
, [operationalImpl]
, [where]
, [rootVariable]
, [templateExpression]
, [impl]
, [inDirectionOf]
, [identifies]
, [booleanSymbol]
, [OrderedSet]
, [Set]
, [Bag]
, [Sequence]
, [symbol]
, [thenExpression]
, [elseExpression]
, [referredType]
, [iterator]
, [stringSymbol]
, [integerSymbol]
, [referredOperation]
, [realSymbol]
, [first]
, [last]
, [bodyExpression]
, [resultVariable]
, [parameterVariable]
, [TupleLiteralExp]
, [attribute]
, [referredEnumLiteral]
, [package]
3.TemplateExp ::= ObjectTemplateExp
TemplateExp ::= CollectionTemplateExp
ObjectTemplateExp ::=
[part]::PropertyTemplateItem
[referredClass]::ClassCollectionTemplateExp ::=
[part]::OclExpression
[kind]::CollectionKind [referredCollectionType]::CollectionType [match]::OclExpressionPropertyTemplateItem ::= [objContainer]::ObjectTemplateExp [value]::OclExpression [referredProperty]::Property
ImperativeIterateExp ::= [target]::Variable
AssignExp ::=
[value]::OclExpression
[left]::OclExpression [defaultValue]::OclExpression [isReset]::BooleanBlockExp ::=
[body]::OclExpression
SwitchExp ::=
[alternativePart]::AltExp
[elsePart]::OclExpressionVariableInitExp ::= [referredVariable]::Variable [withResult]::Boolean
WhileExp ::= [condition]::OclExpression [body]::OclExpression
ComputeExp ::= [returnedElement]::Variable [body]::OclExpression
AltExp ::= [condition]::OclExpression [body]::OclExpression
UnlinkExp ::= [target]::OclExpression [item]::OclExpression
ReturnExp ::= [value]::OclExpression
BreakExp ::= ε
TryExp ::=
[tryBody]::OclExpression [exception]::Type
[exceptBody]::OclExpressionRaiseExp ::= [exception]::Type
ContinueExp ::= ε
ForExp ::= [condition]::OclExpression
TupleExp ::=
[element]::OclExpression
Typedef ::= [base]::Type [condition]::OclExpression
InstantiationExp ::= ObjectExp
InstantiationExp ::=
[instantiatedClass]::Class [extent]::Variable [argument]::OclExpression
DictionaryType ::= [keyType]::Type
DictLiteralExp ::=
[part]::DictLiteralPart
DictLiteralPart ::= [key]::OclExpression [value]::OclExpression
TemplateParameterType ::= [specification]::String
LogExp ::= [text]::String [level]::Integer [condition]::OclExpression [element]::Element
AssertExp ::= [severity]::SeverityKind [log]::LogExp [assertion]::OclExpression
SeverityKind ::= [error]::ε [fatal]::ε [warning]::ε
ImperativeLoopExp ::= ImperativeIterateExp
ImperativeLoopExp ::= ForExp
ImperativeLoopExp ::= CollectorExp
CollectorExp ::= [target]::Variable
ImperativeExpression ::= AssignExp
ImperativeExpression ::= BlockExp
ImperativeExpression ::= VariableInitExp
ImperativeExpression ::= WhileExp
ImperativeExpression ::= ComputeExp
ImperativeExpression ::= AltExp
ImperativeExpression ::= UnlinkExp
ImperativeExpression ::= ReturnExp
ImperativeExpression ::= BreakExp
ImperativeExpression ::= TryExp
ImperativeExpression ::= RaiseExp
ImperativeExpression ::= ContinueExp
ImperativeExpression ::= TupleExp
ImperativeExpression ::= InstantiationExp
ImperativeExpression ::= LogExp
ImperativeExpression ::= AssertExp
ImperativeExpression ::= UnpackExp
ImperativeExpression ::= SwitchExp
ImperativeExpression ::= ImperativeLoopExp
UnpackExp ::=
[variable]::Variable
AnonymousTupleType ::=
[elementType]::Type
AnonymousTupleLiteralExp ::=
[part]::AnonymousTupleLiteralPart
AnonymousTupleLiteralPart ::=
[value]::OclExpression
ListType ::= [elementType]::Type
Class ::= Typedef
Class ::= AnonymousTupleType
Class ::= ModelType
Class ::= Module
Class ::= Transformation
Class ::= TupleType
Class ::= AnyType
Class ::= [ownedAttribute]::Property[ownedOperation]::Operation [superClass]::Class [isAbstract]::Boolean
DataType ::= Enumeration
DataType ::= PrimitiveType
DataType ::= CollectionType
DataType ::= TupleType
Element ::= PropertyTemplateItem
Element ::= DictLiteralPart
Element ::= AnonymousTupleLiteralPart
Element ::= Tag
Element ::= NamedElement
Element ::= Comment
Element ::= ModuleImport
Element ::= OperationBody
Element ::= Pattern
Element ::= Predicate
Element ::= RelationImplementation
Element ::= Key
Tag ::=
[element]::Element
[transformation]::Transformation [owner]::Module [value]::String [name]::StringEnumeration ::=
[ownedLiteral]::EnumerationLiteral
NamedElement ::= Package
NamedElement ::= Type
NamedElement ::= EnumerationLiteral
NamedElement ::= TypedElement
NamedElement ::= Domain
NamedElement ::= TypedModel
NamedElement ::= Rule
Extent ::= URIExtent
Object ::= Element
Object ::= Extent
Object ::= Element Extent
Operation ::= ImperativeOperation
Operation ::= Function
Operation ::= [class]::Class [ownedParameter]::Parameter[raisedException]::Type
MultiplicityElement ::= Operation
MultiplicityElement ::= Parameter
MultiplicityElement ::= Property
Package ::= Module
Package ::= Transformation
Package ::= [ownedType]::Type[nestedPackage]::Package [uri]::String
Type ::= TemplateParameterType
Type ::= Class
Type ::= DataType
Type ::= InvalidType
Type ::= VoidType
Type ::= AnyType
Parameter ::= VarParameter
Parameter ::= FunctionParameter
Parameter ::= [operation]::Operation
EnumerationLiteral ::= [enumeration]::Enumeration
Property ::= ContextualProperty
Property ::= [Class]::Class [opposite]::Property [module]::Module [isReadOnly]::Boolean [isDerived]::Boolean [isComposite]::Boolean [isId]::Boolean [default]::String
TypedElement ::= OclExpression
TypedElement ::= Variable
TypedElement ::= CollectionLiteralPart
TypedElement ::= TupleLiteralPart
TypedElement ::= Operation
TypedElement ::= Parameter
TypedElement ::= Property
PrimitiveType ::= ε
URIExtent ::= ModelType
URIExtent ::= ε
Boolean ::= "true" "false"
String ::= string
Integer ::= integer
Comment ::=
[annotatedElement]::NamedElement
MappingBody ::= [initSection]::OclExpression[endSection]::OclExpression
Helper ::= [isQuery]::Boolean
ResolveExp ::= ResolveInExp
ResolveExp ::= [condition]::OclExpression [one]::Boolean [isInverse]::Boolean [isDeferred]::Boolean
ResolveInExp ::= [inMapping]::MappingOperation
OperationalTransformation ::= [intermediateClass]::Class[refined]::Transformation [intermediateProperty]::Property [modelParameter]::ModelParameter [entry]::EntryOperation [relation]::Relation
MappingParameter ::= [refinedDomain]::RelationDomain [extent]::ModelParameter
MappingOperation ::= [disjunct]::MappingOperation[refinedRelation]::Relation [merged]::MappingOperation [inherited]::MappingOperation [when]::OclExpression
MappingCallExp ::= [isStrict]::Boolean
Constructor ::=
[context]::VarParameter [result]::VarParameter
[overridden]::ImperativeOperation [body]::OperationBody [isBlackbox]::BooleanContextualProperty ::= [context]::Class [overridden]::Property
EntryOperation ::=
[context]::VarParameter [result]::VarParameter
[overridden]::ImperativeOperation [body]::OperationBody [isBlackbox]::BooleanImperativeCallExp ::= MappingCallExp
ImperativeCallExp ::= [isVirtual]::Boolean
ImperativeOperation ::= Helper
ImperativeOperation ::= Constructor
ImperativeOperation ::= EntryOperation
ImperativeOperation ::= MappingOperation
ImperativeOperation ::=
[context]::VarParameter [result]::VarParameter
[overridden]::ImperativeOperation [body]::OperationBody [isBlackbox]::BooleanDirectionKind ::= [in]::ε [inout]::ε [out]::ε
Library ::= [ownedTag]::Tag[configProperty]::Property [moduleImport]::ModuleImport [usedModelType]::ModelType [isBlackbox]::Boolean
ModelParameter ::= [ctxOwner]::ImperativeOperation [resOwner]::ImperativeOperation [kind]::DirectionKind
ModelType ::= [metamodel]::Package[additionalCondition]::OclExpression [conformanceKind]::String
Module ::= OperationalTransformation
Module ::= Library
Module ::= [ownedTag]::Tag[configProperty]::Property [moduleImport]::ModuleImport [usedModelType]::ModelType [isBlackbox]::Boolean
ModuleImport ::=
[binding]::ModelType
[module]::Module [importedModule]::Module [kind]::ImportKindImportKind ::= [extension]::ε [access]::ε
VarParameter ::= MappingParameter
VarParameter ::= ModelParameter
VarParameter ::= [ctxOwner]::ImperativeOperation [resOwner]::ImperativeOperation [kind]::DirectionKind
OperationBody ::= MappingBody
OperationBody ::= ConstructorBody
OperationBody ::=
[operation]::ImperativeOperation [content]::OclExpression
ConstructorBody ::=
[operation]::ImperativeOperation [content]::OclExpression
ObjectExp ::= [referredObject]::Variable [body]::ConstructorBody
Area ::= Mapping
Area ::= CoreDomain
Assignment ::= [bottomPattern]::BottomPattern [slotExpression]::OclExpression [value]::OclExpression [targetProperty]::Property [isDefault]::Boolean
BottomPattern ::= [area]::Area [assignment]::Assignment[realizedVariable]::RealizedVariable [enforcementOperation]::EnforcementOperation
GuardPattern ::= [area]::Area
Mapping ::= [specification]::Mapping[local]::Mapping [context]::Mapping
RealizedVariable ::= [initExpression]::OclExpression [LetExp]::LetExp [computeOwner]::ComputeExp [bindParameter]::Parameter
CoreDomain ::= [isCheckable]::Boolean [isEnforceable]::Boolean [rule]::Rule [typedModel]::TypedModel [guardPattern]::GuardPattern [bottomPattern]::BottomPattern
CorePattern ::= BottomPattern
CorePattern ::= GuardPattern
CorePattern ::= BottomPattern GuardPattern
EnforcementOperation ::= [enforcementMode]::EnforcementMode [bottomPattern]::BottomPattern [operationCallExp]::OperationCallExp
EnforcementMode ::= [Deletion]::ε [Creation]::ε
Domain ::= RelationDomain
Domain ::= CoreDomain
Domain ::= [isCheckable]::Boolean [isEnforceable]::Boolean [rule]::Rule [typedModel]::TypedModel
Transformation ::= RelationalTransformation
Transformation ::= [ownedTag]::Tag[modelParameter]::TypedModel [rule]::Rule [extends]::Transformation
TypedModel ::= [transformation]::Transformation [usedPackage]::Package[dependsOn]::TypedModel
Rule ::= Relation
Rule ::= Mapping
Rule ::=
[domain]::Domain
[transformation]::Transformation [overrides]::RulePattern ::= CorePattern
Pattern ::= DomainPattern
Pattern ::= [predicate]::Predicate[bindsTo]::Variable [whenOwner]::Relation [whereOwner]::Relation
Predicate ::= [conditionExpression]::OclExpression [pattern]::Pattern
Function ::= [queryExpression]::OclExpression
FunctionParameter ::= [operation]::Operation [initExpression]::OclExpression [LetExp]::LetExp [computeOwner]::ComputeExp [bindParameter]::Parameter
RelationalTransformation ::=
[ownedKey]::Key
Relation ::= [isTopLevel]::Boolean [variable]::Variable[operationalImpl]::RelationImplementation [where]::Pattern [when]::Pattern
RelationDomain ::= [pattern]::DomainPattern [rootVariable]::Variable
DomainPattern ::= [templateExpression]::TemplateExp
RelationImplementation ::= [relation]::Relation [impl]::Operation [inDirectionOf]::TypedModel
Key ::=
[identifies]::Class [part]::Property
[transformation]::RelationalTransformationBooleanLiteralExp ::= [booleanSymbol]::Boolean
CallExp ::= ResolveExp
CallExp ::= FeaturePropertyCall
CallExp ::= SwitchExp
CallExp ::= LoopExp
CollectionKind ::= [OrderedSet]::ε [Set]::ε [Bag]::ε [Sequence]::ε
OclExpression ::= ImperativeExpression
OclExpression ::= CallExp
OclExpression ::= IfExp
OclExpression ::= LetExp
OclExpression ::= VariableExp
OclExpression ::= TypeExp
OclExpression ::= LiteralExp
OclExpression ::= LoopExp
UnlimitedNaturalExp ::= [symbol]::UnlimitedNatural
IfExp ::= [condition]::OclExpression [thenExpression]::OclExpression [elseExpression]::OclExpression
LetExp ::=
[in]::OclExpression
[variable]::VariableVariable ::= RealizedVariable
Variable ::= VarParameter
Variable ::= FunctionParameter
Variable ::= [initExpression]::OclExpression [LetExp]::LetExp [computeOwner]::ComputeExp [bindParameter]::Parameter
PropertyCallExp ::= [referredProperty]::Property
VariableExp ::= [referredVariable]::Variable
TypeExp ::= [referredType]::Type
LoopExp ::= IteratorExp
LoopExp ::= IterateExp
LoopExp ::= ImperativeLoopExp
IteratorExp ::=
[body]::OclExpression [iterator]::Variable
StringLiteralExp ::= [stringSymbol]::String
IntegerLiteralExp ::= [integerSymbol]::Integer
OperationCallExp ::= ImperativeCallExp
OperationCallExp ::=
[argument]::OclExpression
[referredOperation]::OperationRealLiteralExp ::= [realSymbol]::Real
LiteralExp ::= TemplateExp
LiteralExp ::= DictLiteralExp
LiteralExp ::= AnonymousTupleLiteralExp
LiteralExp ::= PrimitiveLiteralExp
LiteralExp ::= CollectionLiteralExp
LiteralExp ::= TupleLiteralExp
LiteralExp ::= NullLiteralExp
LiteralExp ::= InvalidLiteralExp
LiteralExp ::= EnumLiteralExp
IterateExp ::= [result]::Variable
PrimitiveLiteralExp ::= BooleanLiteralExp
PrimitiveLiteralExp ::= StringLiteralExp
PrimitiveLiteralExp ::= NumericLiteralExp
NumericLiteralExp ::= UnlimitedNaturalExp
NumericLiteralExp ::= IntegerLiteralExp
NumericLiteralExp ::= RealLiteralExp
CollectionLiteralExp ::=
[kind]::CollectionKind [part]::CollectionLiteralPart
CollectionLiteralPart ::= CollectionItem
CollectionLiteralPart ::= CollectionRange
CollectionItem ::= [item]::OclExpression
CollectionRange ::= [first]::OclExpression [last]::OclExpression
TupleLiteralExp ::=
[part]::TupleLiteralPart
NullLiteralExp ::= ε
ExpressionInOcl ::= [bodyExpression]::OclExpression [context]::Variable [resultVariable]::Variable [parameterVariable]::Variable
OpaqueExpression ::= ExpressionInOcl
InvalidLiteralExp ::= ε
FeaturePropertyCall ::= PropertyCallExp
FeaturePropertyCall ::= OperationCallExp
TupleLiteralPart ::= [TupleLiteralExp]::TupleLiteralExp [attribute]::Property
BagType ::= [elementType]::Type
CollectionType ::= DictionaryType
CollectionType ::= ListType
CollectionType ::= BagType
CollectionType ::= OrderedSetType
CollectionType ::= SequenceType
CollectionType ::= SetType
EnumLiteralExp ::= [referredEnumLiteral]::EnumerationLiteral
InvalidType ::= [package]::Package
OrderedSetType ::= [elementType]::Type
SequenceType ::= [elementType]::Type
SetType ::= [elementType]::Type
TupleType ::= [ownedAttribute]::Property[ownedOperation]::Operation [superClass]::Class [isAbstract]::Boolean
VoidType ::= [package]::Package
AnyType ::= [ownedAttribute]::Property[ownedOperation]::Operation [superClass]::Class [isAbstract]::Boolean [package]::Package