Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
3 lines (2 sloc) 46 KB
<?xml version="1.0" encoding="UTF-8"?>
<bgf:grammar xmlns:bgf="http://planet-sl.org/bgf" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>Unit</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>ModuleElement</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>InPattern</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>OutPattern</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>Binding</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>LibraryRef</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>ActionBlock</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>MapElement</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>VariableDeclaration</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>TupleTypeAttribute</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>OclFeatureDefinition</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>OclContextDefinition</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>OclFeature</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LocatedElement</nonterminal><bgf:expression><nonterminal>OclModel</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Unit</nonterminal><bgf:expression><nonterminal>Library</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Unit</nonterminal><bgf:expression><nonterminal>Query</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Unit</nonterminal><bgf:expression><nonterminal>Module</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Unit</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>libraries</selector><bgf:expression><nonterminal>LibraryRef</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Library</nonterminal><bgf:expression><plus><bgf:expression><selectable><selector>helpers</selector><bgf:expression><nonterminal>Helper</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></bgf:production><bgf:production><nonterminal>Query</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>body</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>helpers</selector><bgf:expression><nonterminal>Helper</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Module</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>isRefining</selector><bgf:expression><nonterminal>Boolean</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>inModels</selector><bgf:expression><nonterminal>OclModel</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>outModels</selector><bgf:expression><nonterminal>OclModel</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>elements</selector><bgf:expression><nonterminal>ModuleElement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>ModuleElement</nonterminal><bgf:expression><nonterminal>Helper</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>ModuleElement</nonterminal><bgf:expression><nonterminal>Rule</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Helper</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>query</selector><bgf:expression><nonterminal>Query</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>library</selector><bgf:expression><nonterminal>Library</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>definition</selector><bgf:expression><nonterminal>OclFeatureDefinition</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Rule</nonterminal><bgf:expression><nonterminal>MatchedRule</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Rule</nonterminal><bgf:expression><nonterminal>CalledRule</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>MatchedRule</nonterminal><bgf:expression><nonterminal>LazyMatchedRule</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>MatchedRule</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>inPattern</selector><bgf:expression><nonterminal>InPattern</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>children</selector><bgf:expression><nonterminal>MatchedRule</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><selectable><selector>superRule</selector><bgf:expression><nonterminal>MatchedRule</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>isAbstract</selector><bgf:expression><nonterminal>Boolean</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>isRefining</selector><bgf:expression><nonterminal>Boolean</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>isNoDefault</selector><bgf:expression><nonterminal>Boolean</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>LazyMatchedRule</nonterminal><bgf:expression><selectable><selector>isUnique</selector><bgf:expression><nonterminal>Boolean</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>CalledRule</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>parameters</selector><bgf:expression><nonterminal>Parameter</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><selectable><selector>isEntrypoint</selector><bgf:expression><nonterminal>Boolean</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>isEndpoint</selector><bgf:expression><nonterminal>Boolean</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>InPattern</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>elements</selector><bgf:expression><nonterminal>InPatternElement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><selectable><selector>rule</selector><bgf:expression><nonterminal>MatchedRule</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>filter</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>OutPattern</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>rule</selector><bgf:expression><nonterminal>Rule</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>elements</selector><bgf:expression><nonterminal>OutPatternElement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>PatternElement</nonterminal><bgf:expression><nonterminal>InPatternElement</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>PatternElement</nonterminal><bgf:expression><nonterminal>OutPatternElement</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>InPatternElement</nonterminal><bgf:expression><nonterminal>SimpleInPatternElement</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>SimpleInPatternElement</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>mapsTo</selector><bgf:expression><nonterminal>OutPatternElement</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>inPattern</selector><bgf:expression><nonterminal>InPattern</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>models</selector><bgf:expression><nonterminal>OclModel</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>OutPatternElement</nonterminal><bgf:expression><nonterminal>SimpleOutPatternElement</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OutPatternElement</nonterminal><bgf:expression><nonterminal>ForEachOutPatternElement</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>SimpleOutPatternElement</nonterminal><bgf:expression><plus><bgf:expression><selectable><selector>reverseBindings</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></bgf:production><bgf:production><nonterminal>ForEachOutPatternElement</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>collection</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>iterator</selector><bgf:expression><nonterminal>Iterator</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Binding</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>value</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>outPatternElement</selector><bgf:expression><nonterminal>OutPatternElement</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>propertyName</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>isAssignment</selector><bgf:expression><nonterminal>Boolean</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>RuleVariableDeclaration</nonterminal><bgf:expression><selectable><selector>rule</selector><bgf:expression><nonterminal>Rule</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>LibraryRef</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>unit</selector><bgf:expression><nonterminal>Unit</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>ActionBlock</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>rule</selector><bgf:expression><nonterminal>Rule</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>statements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>ExpressionStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>BindingStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>IfStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Statement</nonterminal><bgf:expression><nonterminal>ForStat</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>ExpressionStat</nonterminal><bgf:expression><selectable><selector>expression</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>BindingStat</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>source</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>propertyName</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>isAssignment</selector><bgf:expression><nonterminal>Boolean</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>value</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>IfStat</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>condition</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>thenStatements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>elseStatements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>ForStat</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>iterator</selector><bgf:expression><nonterminal>Iterator</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>collection</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>statements</selector><bgf:expression><nonterminal>Statement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>OclExpression</nonterminal><bgf:expression><nonterminal>VariableExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclExpression</nonterminal><bgf:expression><nonterminal>SuperExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclExpression</nonterminal><bgf:expression><nonterminal>PrimitiveExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclExpression</nonterminal><bgf:expression><nonterminal>CollectionExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclExpression</nonterminal><bgf:expression><nonterminal>TupleExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclExpression</nonterminal><bgf:expression><nonterminal>MapExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclExpression</nonterminal><bgf:expression><nonterminal>EnumLiteralExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclExpression</nonterminal><bgf:expression><nonterminal>OclUndefinedExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclExpression</nonterminal><bgf:expression><nonterminal>PropertyCallExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclExpression</nonterminal><bgf:expression><nonterminal>LetExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclExpression</nonterminal><bgf:expression><nonterminal>IfExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclExpression</nonterminal><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>VariableExp</nonterminal><bgf:expression><selectable><selector>referredVariable</selector><bgf:expression><nonterminal>VariableDeclaration</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>SuperExp</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>type</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>ifExp3</selector><bgf:expression><nonterminal>IfExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>appliedProperty</selector><bgf:expression><nonterminal>PropertyCallExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>collection</selector><bgf:expression><nonterminal>CollectionExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>letExp</selector><bgf:expression><nonterminal>LetExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>loopExp</selector><bgf:expression><nonterminal>LoopExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>parentOperation</selector><bgf:expression><nonterminal>OperationCallExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>initializedVariable</selector><bgf:expression><nonterminal>VariableDeclaration</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>ifExp2</selector><bgf:expression><nonterminal>IfExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>owningOperation</selector><bgf:expression><nonterminal>Operation</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>ifExp1</selector><bgf:expression><nonterminal>IfExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>owningAttribute</selector><bgf:expression><nonterminal>Attribute</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>PrimitiveExp</nonterminal><bgf:expression><nonterminal>StringExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>PrimitiveExp</nonterminal><bgf:expression><nonterminal>BooleanExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>PrimitiveExp</nonterminal><bgf:expression><nonterminal>NumericExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>StringExp</nonterminal><bgf:expression><selectable><selector>stringSymbol</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>BooleanExp</nonterminal><bgf:expression><selectable><selector>booleanSymbol</selector><bgf:expression><nonterminal>Boolean</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>NumericExp</nonterminal><bgf:expression><nonterminal>RealExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>NumericExp</nonterminal><bgf:expression><nonterminal>IntegerExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>RealExp</nonterminal><bgf:expression><selectable><selector>realSymbol</selector><bgf:expression><nonterminal>Double</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>IntegerExp</nonterminal><bgf:expression><selectable><selector>integerSymbol</selector><bgf:expression><nonterminal>Integer</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>CollectionExp</nonterminal><bgf:expression><nonterminal>BagExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>CollectionExp</nonterminal><bgf:expression><nonterminal>OrderedSetExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>CollectionExp</nonterminal><bgf:expression><nonterminal>SequenceExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>CollectionExp</nonterminal><bgf:expression><nonterminal>SetExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>BagExp</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>elements</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>OrderedSetExp</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>elements</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>SequenceExp</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>elements</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>SetExp</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>elements</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>TupleExp</nonterminal><bgf:expression><plus><bgf:expression><selectable><selector>tuplePart</selector><bgf:expression><nonterminal>TuplePart</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></bgf:production><bgf:production><nonterminal>TuplePart</nonterminal><bgf:expression><selectable><selector>tuple</selector><bgf:expression><nonterminal>TupleExp</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>MapExp</nonterminal><bgf:expression><plus><bgf:expression><selectable><selector>elements</selector><bgf:expression><nonterminal>MapElement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></bgf:production><bgf:production><nonterminal>MapElement</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>map</selector><bgf:expression><nonterminal>MapExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>key</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>value</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>EnumLiteralExp</nonterminal><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>OclUndefinedExp</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>type</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>ifExp3</selector><bgf:expression><nonterminal>IfExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>appliedProperty</selector><bgf:expression><nonterminal>PropertyCallExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>collection</selector><bgf:expression><nonterminal>CollectionExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>letExp</selector><bgf:expression><nonterminal>LetExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>loopExp</selector><bgf:expression><nonterminal>LoopExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>parentOperation</selector><bgf:expression><nonterminal>OperationCallExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>initializedVariable</selector><bgf:expression><nonterminal>VariableDeclaration</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>ifExp2</selector><bgf:expression><nonterminal>IfExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>owningOperation</selector><bgf:expression><nonterminal>Operation</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>ifExp1</selector><bgf:expression><nonterminal>IfExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>owningAttribute</selector><bgf:expression><nonterminal>Attribute</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>PropertyCallExp</nonterminal><bgf:expression><nonterminal>NavigationOrAttributeCallExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>PropertyCallExp</nonterminal><bgf:expression><nonterminal>OperationCallExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>PropertyCallExp</nonterminal><bgf:expression><nonterminal>LoopExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>NavigationOrAttributeCallExp</nonterminal><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>OperationCallExp</nonterminal><bgf:expression><nonterminal>OperatorCallExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OperationCallExp</nonterminal><bgf:expression><nonterminal>CollectionOperationCallExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OperationCallExp</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>arguments</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><selectable><selector>operationName</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>OperatorCallExp</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>arguments</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><selectable><selector>operationName</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>CollectionOperationCallExp</nonterminal><bgf:expression><sequence><bgf:expression><plus><bgf:expression><selectable><selector>arguments</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><selectable><selector>operationName</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>LoopExp</nonterminal><bgf:expression><nonterminal>IterateExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>LoopExp</nonterminal><bgf:expression><nonterminal>IteratorExp</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>IterateExp</nonterminal><bgf:expression><selectable><selector>result</selector><bgf:expression><nonterminal>VariableDeclaration</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>IteratorExp</nonterminal><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>LetExp</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>variable</selector><bgf:expression><nonterminal>VariableDeclaration</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>in_</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>IfExp</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>thenExpression</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>condition</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>elseExpression</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>VariableDeclaration</nonterminal><bgf:expression><nonterminal>PatternElement</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>VariableDeclaration</nonterminal><bgf:expression><nonterminal>RuleVariableDeclaration</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>VariableDeclaration</nonterminal><bgf:expression><nonterminal>TuplePart</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>VariableDeclaration</nonterminal><bgf:expression><nonterminal>Iterator</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>VariableDeclaration</nonterminal><bgf:expression><nonterminal>Parameter</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>VariableDeclaration</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>id</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>varName</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>type</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>initExpression</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>letExp</selector><bgf:expression><nonterminal>LetExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>baseExp</selector><bgf:expression><nonterminal>IterateExp</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>variableExp</selector><bgf:expression><nonterminal>VariableExp</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Iterator</nonterminal><bgf:expression><selectable><selector>loopExpr</selector><bgf:expression><nonterminal>LoopExp</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>Parameter</nonterminal><bgf:expression><selectable><selector>operation</selector><bgf:expression><nonterminal>Operation</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>CollectionType</nonterminal><bgf:expression><nonterminal>BagType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>CollectionType</nonterminal><bgf:expression><nonterminal>OrderedSetType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>CollectionType</nonterminal><bgf:expression><nonterminal>SequenceType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>CollectionType</nonterminal><bgf:expression><nonterminal>SetType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>CollectionType</nonterminal><bgf:expression><selectable><selector>elementType</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>OclType</nonterminal><bgf:expression><nonterminal>CollectionType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclType</nonterminal><bgf:expression><nonterminal>Primitive</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclType</nonterminal><bgf:expression><nonterminal>OclAnyType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclType</nonterminal><bgf:expression><nonterminal>TupleType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclType</nonterminal><bgf:expression><nonterminal>OclModelElement</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclType</nonterminal><bgf:expression><nonterminal>MapType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclType</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>definitions</selector><bgf:expression><nonterminal>OclContextDefinition</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>oclExpression</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>operation</selector><bgf:expression><nonterminal>Operation</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>mapType2</selector><bgf:expression><nonterminal>MapType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>attribute</selector><bgf:expression><nonterminal>Attribute</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>mapType</selector><bgf:expression><nonterminal>MapType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>collectionTypes</selector><bgf:expression><nonterminal>CollectionType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>tupleTypeAttribute</selector><bgf:expression><nonterminal>TupleTypeAttribute</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>variableDeclaration</selector><bgf:expression><nonterminal>VariableDeclaration</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Primitive</nonterminal><bgf:expression><nonterminal>StringType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Primitive</nonterminal><bgf:expression><nonterminal>BooleanType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Primitive</nonterminal><bgf:expression><nonterminal>NumericType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>StringType</nonterminal><bgf:expression><epsilon/></bgf:expression></bgf:production><bgf:production><nonterminal>BooleanType</nonterminal><bgf:expression><epsilon/></bgf:expression></bgf:production><bgf:production><nonterminal>NumericType</nonterminal><bgf:expression><nonterminal>IntegerType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>NumericType</nonterminal><bgf:expression><nonterminal>RealType</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>IntegerType</nonterminal><bgf:expression><epsilon/></bgf:expression></bgf:production><bgf:production><nonterminal>RealType</nonterminal><bgf:expression><epsilon/></bgf:expression></bgf:production><bgf:production><nonterminal>BagType</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>elementType</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>OrderedSetType</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>elementType</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>SequenceType</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>elementType</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>SetType</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>elementType</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>OclAnyType</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>definitions</selector><bgf:expression><nonterminal>OclContextDefinition</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>oclExpression</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>operation</selector><bgf:expression><nonterminal>Operation</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>mapType2</selector><bgf:expression><nonterminal>MapType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>attribute</selector><bgf:expression><nonterminal>Attribute</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>mapType</selector><bgf:expression><nonterminal>MapType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>collectionTypes</selector><bgf:expression><nonterminal>CollectionType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>tupleTypeAttribute</selector><bgf:expression><nonterminal>TupleTypeAttribute</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>variableDeclaration</selector><bgf:expression><nonterminal>VariableDeclaration</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>TupleType</nonterminal><bgf:expression><plus><bgf:expression><selectable><selector>attributes</selector><bgf:expression><nonterminal>TupleTypeAttribute</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></bgf:production><bgf:production><nonterminal>TupleTypeAttribute</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>type</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>tupleType</selector><bgf:expression><nonterminal>TupleType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>OclModelElement</nonterminal><bgf:expression><selectable><selector>model</selector><bgf:expression><nonterminal>OclModel</nonterminal></bgf:expression></selectable></bgf:expression></bgf:production><bgf:production><nonterminal>MapType</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>valueType</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>keyType</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>OclFeatureDefinition</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>feature</selector><bgf:expression><nonterminal>OclFeature</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>context_</selector><bgf:expression><nonterminal>OclContextDefinition</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>OclContextDefinition</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>definition</selector><bgf:expression><nonterminal>OclFeatureDefinition</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>context_</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>OclFeature</nonterminal><bgf:expression><nonterminal>Attribute</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>OclFeature</nonterminal><bgf:expression><nonterminal>Operation</nonterminal></bgf:expression></bgf:production><bgf:production><nonterminal>Attribute</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>initExpression</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>type</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Operation</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>parameters</selector><bgf:expression><nonterminal>Parameter</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><selectable><selector>returnType</selector><bgf:expression><nonterminal>OclType</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>body</selector><bgf:expression><nonterminal>OclExpression</nonterminal></bgf:expression></selectable></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>OclModel</nonterminal><bgf:expression><sequence><bgf:expression><selectable><selector>name</selector><bgf:expression><nonterminal>String</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><selectable><selector>metamodel</selector><bgf:expression><nonterminal>OclModel</nonterminal></bgf:expression></selectable></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>elements</selector><bgf:expression><nonterminal>OclModelElement</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression><bgf:expression><plus><bgf:expression><selectable><selector>model</selector><bgf:expression><nonterminal>OclModel</nonterminal></bgf:expression></selectable></bgf:expression></plus></bgf:expression></sequence></bgf:expression></bgf:production><bgf:production><nonterminal>Boolean</nonterminal><bgf:expression><choice><bgf:expression><terminal>true</terminal></bgf:expression><bgf:expression><terminal>false</terminal></bgf:expression></choice></bgf:expression></bgf:production><bgf:production><nonterminal>Integer</nonterminal><bgf:expression><value>int</value></bgf:expression></bgf:production><bgf:production><nonterminal>String</nonterminal><bgf:expression><value>string</value></bgf:expression></bgf:production></bgf:grammar>