
Grammar extracted by Vadim Zaytsev, see the Grammar Zoo entry for details: §wip/atl/XMorphLanguage_abstractSyntax/extracted
Source used for this grammar: SIMON Eric, Abstract Syntax of the XMorph Language 1.0, XMorphLanguage_abstractSyntax.ecore, 2006/07/24
String, Boolean, VarScope, AbstractVar, VarUse, MOF::Property, Key, PatternScope, PatternDefn, TRule, Transformation, Query, Term, TRuleVar, PatternVar, ExtentVar, CompoundTerm, AndTerm, OrTerm, NotTerm, IfTerm, SimpleTerm, TrackingUse, MOF::Class, PatternUse, MofTerm, Condition, MofInstance, MofOrder, Expression, CoumpoundExpr, CollectionExpr, FunctionExpr, FeatureExpr, InstanceRef, MOF::Object, SimpleExpr, StringConstant, IntConstant, BooleanConstant, EnumConstant), 0 root (—), 1 top (VarScope), 0 bottom (—).[var], [part], [property], [transformation] 2, [scope], [parameter] 2, [body], [superseded] 2, [superseder] 2, [extended] 2, [extender] 2, [term] 6, [tgt], [keys], [tRule], [query], [patternDefn], [src], [featureNames], [tracking] 2, [tRuleST], [arg], [reason], [isExactly], [typeName], [instance] 2, [lesser], [greater], [unique], [ordered], [function], [collect], [featureName], [obj] 2, [representation] 4.String ::= string
Boolean ::= "true" "false"
VarScope ::= PatternScope
VarScope ::= PatternDefn
VarScope ::= TRule
AbstractVar ::= TRuleVar
AbstractVar ::= PatternVar
AbstractVar ::= ExtentVar
VarUse ::= [var]::AbstractVar
MOF::Property ::= [part]::Key
Key ::=
[property]::MOF::Property [transformation]::TransformationPatternScope ::= Transformation
PatternScope ::= Query
PatternDefn ::=
[scope]::PatternScope [parameter]::PatternVar [body]::TermTRule ::= [superseded]::TRule [superseder]::TRule [transformation]::Transformation [extended]::TRule [extender]::TRule [term]::Term [tgt]::SimpleTerm
Transformation ::= [keys]::Key [tRule]::TRule
Query ::=
[term]::Term [parameter]::PatternVarTerm ::= CompoundTerm
Term ::= SimpleTerm
TRuleVar ::= [superseder]::TRuleVar [superseded]::TRuleVar [extended]::TRuleVar [extender]::TRuleVar
PatternVar ::= [query]::Query [patternDefn]::PatternDefn
ExtentVar ::= [src]::Term
CompoundTerm ::= AndTerm
CompoundTerm ::= OrTerm
CompoundTerm ::= NotTerm
CompoundTerm ::= IfTerm
AndTerm ::=
[term]::TermOrTerm ::=
[term]::TermNotTerm ::=
[term]::TermIfTerm ::=
[term]::TermSimpleTerm ::= TrackingUse
SimpleTerm ::= PatternUse
SimpleTerm ::= MofTerm
SimpleTerm ::= Condition
TrackingUse ::= [featureNames]::String [tracking]::MOF::Class
MOF::Class ::=
[tracking]::TrackingUsePatternUse ::=
[tRuleST]::TRule [arg]::ExpressionMofTerm ::= MofInstance
MofTerm ::= MofOrder
Condition ::= [reason]::String
MofInstance ::= [isExactly]::Boolean [typeName]::Expression [instance]::Expression
MofOrder ::= [lesser]::Expression [instance]::Expression [greater]::Expression
Expression ::= VarUse
Expression ::= CoumpoundExpr
Expression ::= InstanceRef
Expression ::= MOF::Object
Expression ::= SimpleExpr
CoumpoundExpr ::= CollectionExpr
CoumpoundExpr ::= FunctionExpr
CoumpoundExpr ::= FeatureExpr
CollectionExpr ::= [unique]::Boolean [ordered]::Boolean
FunctionExpr ::= [function]::String
FeatureExpr ::= [collect]::String [featureName]::String
InstanceRef ::= [obj]::MOF::Object
MOF::Object ::= [obj]::InstanceRef
SimpleExpr ::= StringConstant
SimpleExpr ::= IntConstant
SimpleExpr ::= BooleanConstant
SimpleExpr ::= EnumConstant
StringConstant ::= [representation]::String
IntConstant ::= [representation]::String
BooleanConstant ::= [representation]::String
EnumConstant ::= [representation]::String