
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]::OclExpressionSwitchExp ::=
[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]::OclExpressionTypedef ::= [base]::Type [condition]::OclExpression
InstantiationExp ::= ObjectExp
InstantiationExp ::=
[instantiatedClass]::Class [extent]::Variable [argument]::OclExpressionDictionaryType ::= [keyType]::Type
DictLiteralExp ::=
[part]::DictLiteralPartDictLiteralPart ::= [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]::VariableAnonymousTupleType ::=
[elementType]::TypeAnonymousTupleLiteralExp ::=
[part]::AnonymousTupleLiteralPartAnonymousTupleLiteralPart ::=
[value]::OclExpressionListType ::= [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]::EnumerationLiteralNamedElement ::= 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]::NamedElementMappingBody ::= [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]::OclExpressionConstructorBody ::=
[operation]::ImperativeOperation [content]::OclExpressionObjectExp ::= [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]::KeyRelation ::= [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]::VariableStringLiteralExp ::= [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]::CollectionLiteralPartCollectionLiteralPart ::= CollectionItem
CollectionLiteralPart ::= CollectionRange
CollectionItem ::= [item]::OclExpression
CollectionRange ::= [first]::OclExpression [last]::OclExpression
TupleLiteralExp ::=
[part]::TupleLiteralPartNullLiteralExp ::= ε
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