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]::PatternVar
Term ::= 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]::Term
OrTerm ::=
[term]::Term
NotTerm ::=
[term]::Term
IfTerm ::=
[term]::Term
SimpleTerm ::= TrackingUse
SimpleTerm ::= PatternUse
SimpleTerm ::= MofTerm
SimpleTerm ::= Condition
TrackingUse ::= [featureNames]::String [tracking]::MOF::Class
MOF::Class ::=
[tracking]::TrackingUse
PatternUse ::=
[tRuleST]::TRule [arg]::Expression
MofTerm ::= 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