[unrelated] Regenerate with Xtext 2.4.2
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/AbstractQVTcoreProposalProvider.java b/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/AbstractQVTcoreProposalProvider.java
index b874a8f..698b171 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/AbstractQVTcoreProposalProvider.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/AbstractQVTcoreProposalProvider.java
@@ -9,7 +9,7 @@
 import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
 
 /**
- * Represents a generated, default implementation of interface {@link IProposalProvider}.
+ * Represents a generated, default implementation of superclass {@link org.eclipse.qvtd.xtext.qvtcorebase.ui.contentassist.QVTcoreBaseProposalProvider}.
  * Methods are dynamically dispatched on the first parameter, i.e., you can override them 
  * with a more concrete subtype. 
  */
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/antlr/internal/InternalQVTcore.tokens b/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/antlr/internal/InternalQVTcore.tokens
index 62cfc39..22d6024 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/antlr/internal/InternalQVTcore.tokens
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/antlr/internal/InternalQVTcore.tokens
@@ -1,154 +1,154 @@
-T__42=42

-T__86=86

-T__28=28

-T__57=57

-T__23=23

-T__80=80

-T__51=51

-RULE_LETTER_CHARACTER=9

-T__69=69

-T__47=47

-T__73=73

-T__50=50

-T__21=21

-RULE_ML_SINGLE_QUOTED_STRING=11

-T__65=65

-T__19=19

-T__72=72

-T__70=70

-T__67=67

-T__74=74

-T__39=39

-T__30=30

-T__46=46

-T__52=52

 T__68=68

-T__17=17

+T__69=69

+T__66=66

+T__67=67

+T__64=64

+T__29=29

+T__65=65

+T__28=28

 T__62=62

-RULE_INT=4

 T__27=27

+T__63=63

+T__26=26

+RULE_ESCAPED_CHARACTER=8

+T__25=25

 T__24=24

+T__23=23

+T__22=22

+RULE_ANY_OTHER=15

+T__21=21

+T__20=20

+RULE_ESCAPED_ID=7

+RULE_DOUBLE_QUOTED_STRING=10

+T__61=61

+T__60=60

+T__55=55

+T__56=56

+T__19=19

+T__57=57

+T__58=58

+T__16=16

+T__51=51

+T__52=52

+T__18=18

+T__53=53

+T__17=17

+T__54=54

+T__59=59

+RULE_SIMPLE_ID=6

+RULE_INT=4

+T__50=50

+T__42=42

+T__43=43

+T__40=40

+RULE_ML_SINGLE_QUOTED_STRING=11

+T__41=41

+T__80=80

+T__46=46

+T__81=81

+T__47=47

+T__82=82

+T__44=44

+T__83=83

+T__45=45

+T__48=48

 T__49=49

 RULE_SINGLE_QUOTED_STRING=5

-T__61=61

-RULE_DOUBLE_QUOTED_STRING=10

-T__59=59

-T__48=48

-T__54=54

-T__34=34

-T__56=56

-RULE_ESCAPED_CHARACTER=8

-RULE_ML_COMMENT=12

-T__35=35

-T__78=78

-T__36=36

-T__20=20

-T__58=58

-T__79=79

-T__64=64

-RULE_SIMPLE_ID=6

-T__44=44

-T__66=66

-T__33=33

-T__22=22

-T__77=77

-T__29=29

-T__45=45

-T__55=55

-RULE_ESCAPED_ID=7

-T__84=84

-RULE_WS=14

-T__63=63

-T__75=75

-T__43=43

-T__31=31

-T__40=40

-T__53=53

 T__85=85

-T__16=16

-T__32=32

-T__38=38

-T__76=76

-T__37=37

-RULE_ANY_OTHER=15

-T__82=82

-T__26=26

-T__81=81

-T__25=25

 RULE_SL_COMMENT=13

-T__83=83

-T__60=60

-T__41=41

+T__84=84

+T__86=86

+RULE_ML_COMMENT=12

+RULE_LETTER_CHARACTER=9

+T__30=30

+T__31=31

+T__32=32

 T__71=71

-T__18=18

-'<'=34

-'pre'=76

-'..'=71

-'>'=33

-'transformation'=26

-'let'=81

-'else'=79

-'invalid'=74

-'-'=29

-'Integer'=47

-'String'=49

-'?'=59

-':='=66

+T__33=33

+T__72=72

+T__34=34

+T__35=35

+T__70=70

+T__36=36

+T__37=37

+T__38=38

+T__39=39

+RULE_WS=14

+T__76=76

+T__75=75

+T__74=74

+T__73=73

+T__79=79

+T__78=78

+T__77=77

 '>='=35

-'map'=22

-'Bag'=55

-'<='=36

-'='=37

-'Real'=48

+'/'=31

 'Sequence'=56

-'::'=70

-'uses'=27

-'Boolean'=46

-'xor'=41

-'{'=60

-'OclVoid'=53

-'then'=78

-'OrderedSet'=58

-':'=69

-'OclAny'=51

-'Tuple'=45

-'.'=43

-'<>'=38

-'*'=28

-'Set'=54

-'imports'=20

-'}'=61

-'->'=44

-'self'=82

 'where'=64

+'then'=78

+':='=66

+'enforce'=18

+'Real'=48

+'>'=33

+'Integer'=47

 ';'=16

+'Boolean'=46

+'<>'=38

+'uses'=27

+'transformation'=26

+'OclInvalid'=52

+'+'=32

+'pre'=76

+'.'=43

+'imports'=20

+'library'=21

+'import'=19

+'Set'=54

 'true'=84

-'default'=83

-']'=73

-'false'=85

-','=63

-'endif'=80

-'refines'=25

+'else'=79

+'let'=81

+'and'=39

+'{'=60

+'check'=17

+'?'=59

+'OclVoid'=53

+'if'=77

+':'=69

+'('=67

 'not'=30

+'-'=29

+','=63

+'default'=83

+'in'=62

+']'=73

 'query'=23

+'..'=71

+'|'=65

+'OrderedSet'=58

+'UnlimitedNatural'=50

+'null'=75

+'Tuple'=45

+'Collection'=57

+'String'=49

+'='=37

+'map'=22

+'@'=86

+'::'=70

+'Bag'=55

+')'=68

+'xor'=41

+'->'=44

+'}'=61

+'refines'=25

+'<='=36

+'false'=85

+'<'=34

+'realize'=24

+'invalid'=74

+'OclAny'=51

 '['=72

 'or'=40

-'/'=31

-'and'=39

+'*'=28

 'implies'=42

-'Collection'=57

-'|'=65

-'realize'=24

-')'=68

-'OclInvalid'=52

-'@'=86

-'import'=19

-'if'=77

-'('=67

-'enforce'=18

-'UnlimitedNatural'=50

-'check'=17

-'in'=62

-'null'=75

-'+'=32

-'library'=21

+'self'=82

+'endif'=80

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/antlr/internal/InternalQVTcoreLexer.java b/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/antlr/internal/InternalQVTcoreLexer.java
index 8d4ca42..7fa1fb7 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/antlr/internal/InternalQVTcoreLexer.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/antlr/internal/InternalQVTcoreLexer.java
@@ -12,90 +12,90 @@
 
 @SuppressWarnings("all")
 public class InternalQVTcoreLexer extends Lexer {
-    public static final int T__42=42;
-    public static final int T__86=86;
-    public static final int T__28=28;
-    public static final int T__23=23;
-    public static final int T__57=57;
-    public static final int T__51=51;
-    public static final int T__80=80;
-    public static final int RULE_LETTER_CHARACTER=9;
-    public static final int T__47=47;
-    public static final int T__69=69;
-    public static final int T__73=73;
-    public static final int T__50=50;
-    public static final int T__21=21;
-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
-    public static final int T__19=19;
-    public static final int T__65=65;
-    public static final int T__72=72;
-    public static final int T__70=70;
-    public static final int T__67=67;
-    public static final int T__74=74;
-    public static final int T__39=39;
-    public static final int T__30=30;
-    public static final int T__46=46;
-    public static final int T__52=52;
     public static final int T__68=68;
-    public static final int T__17=17;
-    public static final int T__62=62;
-    public static final int RULE_INT=4;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__29=29;
+    public static final int T__64=64;
+    public static final int T__28=28;
+    public static final int T__65=65;
     public static final int T__27=27;
+    public static final int T__62=62;
+    public static final int T__26=26;
+    public static final int T__63=63;
+    public static final int T__25=25;
+    public static final int RULE_ESCAPED_CHARACTER=8;
     public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=15;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int RULE_ESCAPED_ID=7;
+    public static final int RULE_DOUBLE_QUOTED_STRING=10;
+    public static final int T__61=61;
+    public static final int EOF=-1;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__19=19;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__16=16;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__18=18;
+    public static final int T__53=53;
+    public static final int T__17=17;
+    public static final int T__54=54;
+    public static final int T__59=59;
+    public static final int RULE_SIMPLE_ID=6;
+    public static final int RULE_INT=4;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
+    public static final int T__46=46;
+    public static final int T__80=80;
+    public static final int T__47=47;
+    public static final int T__81=81;
+    public static final int T__44=44;
+    public static final int T__82=82;
+    public static final int T__45=45;
+    public static final int T__83=83;
+    public static final int T__48=48;
     public static final int T__49=49;
     public static final int RULE_SINGLE_QUOTED_STRING=5;
-    public static final int T__61=61;
-    public static final int RULE_DOUBLE_QUOTED_STRING=10;
-    public static final int T__59=59;
-    public static final int T__48=48;
-    public static final int T__54=54;
-    public static final int T__34=34;
-    public static final int T__56=56;
-    public static final int RULE_ESCAPED_CHARACTER=8;
-    public static final int RULE_ML_COMMENT=12;
-    public static final int T__35=35;
-    public static final int T__78=78;
-    public static final int T__36=36;
-    public static final int T__20=20;
-    public static final int T__58=58;
-    public static final int T__79=79;
-    public static final int T__64=64;
-    public static final int RULE_SIMPLE_ID=6;
-    public static final int T__44=44;
-    public static final int T__66=66;
-    public static final int T__33=33;
-    public static final int T__22=22;
-    public static final int T__77=77;
-    public static final int T__55=55;
-    public static final int T__45=45;
-    public static final int T__29=29;
-    public static final int RULE_ESCAPED_ID=7;
-    public static final int T__84=84;
-    public static final int T__63=63;
-    public static final int RULE_WS=14;
-    public static final int T__43=43;
-    public static final int T__75=75;
-    public static final int T__31=31;
-    public static final int T__40=40;
-    public static final int EOF=-1;
-    public static final int T__53=53;
-    public static final int T__32=32;
-    public static final int T__16=16;
     public static final int T__85=85;
-    public static final int T__38=38;
-    public static final int T__37=37;
-    public static final int T__76=76;
-    public static final int T__26=26;
-    public static final int T__82=82;
-    public static final int RULE_ANY_OTHER=15;
-    public static final int T__25=25;
-    public static final int T__81=81;
+    public static final int T__84=84;
     public static final int RULE_SL_COMMENT=13;
-    public static final int T__60=60;
-    public static final int T__83=83;
-    public static final int T__41=41;
-    public static final int T__18=18;
+    public static final int T__86=86;
+    public static final int RULE_LETTER_CHARACTER=9;
+    public static final int RULE_ML_COMMENT=12;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
     public static final int T__71=71;
+    public static final int T__34=34;
+    public static final int T__72=72;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__70=70;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int T__76=76;
+    public static final int RULE_WS=14;
+    public static final int T__75=75;
+    public static final int T__74=74;
+    public static final int T__73=73;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__77=77;
 
     // delegates
     // delegators
@@ -2833,7 +2833,7 @@
         "\1\37\1\40\3\uffff\1\46\2\uffff\1\104\1\uffff\1\51\13\uffff\1\45"+
         "\1\53\1\52\6\uffff\1\13\2\uffff\1\43";
     static final String DFA11_specialS =
-        "\1\2\56\uffff\1\0\1\1\u0114\uffff}>";
+        "\1\2\56\uffff\1\1\1\0\u0114\uffff}>";
     static final String[] DFA11_transitionS = {
             "\11\65\2\64\2\65\1\64\22\65\1\64\1\65\1\57\4\65\1\60\1\46\1"+
             "\47\1\13\1\17\1\42\1\14\1\26\1\16\12\63\1\45\1\1\1\21\1\22\1"+
@@ -3207,20 +3207,20 @@
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA11_47 = input.LA(1);
+                        int LA11_48 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA11_47>='\u0000' && LA11_47<='\uFFFF')) ) {s = 120;}
+                        if ( ((LA11_48>='\u0000' && LA11_48<='\uFFFF')) ) {s = 121;}
 
                         else s = 53;
 
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA11_48 = input.LA(1);
+                        int LA11_47 = input.LA(1);
 
                         s = -1;
-                        if ( ((LA11_48>='\u0000' && LA11_48<='\uFFFF')) ) {s = 121;}
+                        if ( ((LA11_47>='\u0000' && LA11_47<='\uFFFF')) ) {s = 120;}
 
                         else s = 53;
 
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/antlr/internal/InternalQVTcoreParser.java b/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/antlr/internal/InternalQVTcoreParser.java
index 4772a3b..4ecdb7b 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/antlr/internal/InternalQVTcoreParser.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore.ui/src-gen/org/eclipse/qvtd/xtext/qvtcore/ui/contentassist/antlr/internal/InternalQVTcoreParser.java
@@ -25,90 +25,90 @@
     public static final String[] tokenNames = new String[] {

         "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_SINGLE_QUOTED_STRING", "RULE_SIMPLE_ID", "RULE_ESCAPED_ID", "RULE_ESCAPED_CHARACTER", "RULE_LETTER_CHARACTER", "RULE_DOUBLE_QUOTED_STRING", "RULE_ML_SINGLE_QUOTED_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "';'", "'check'", "'enforce'", "'import'", "'imports'", "'library'", "'map'", "'query'", "'realize'", "'refines'", "'transformation'", "'uses'", "'*'", "'-'", "'not'", "'/'", "'+'", "'>'", "'<'", "'>='", "'<='", "'='", "'<>'", "'and'", "'or'", "'xor'", "'implies'", "'.'", "'->'", "'Tuple'", "'Boolean'", "'Integer'", "'Real'", "'String'", "'UnlimitedNatural'", "'OclAny'", "'OclInvalid'", "'OclVoid'", "'Set'", "'Bag'", "'Sequence'", "'Collection'", "'OrderedSet'", "'?'", "'{'", "'}'", "'in'", "','", "'where'", "'|'", "':='", "'('", "')'", "':'", "'::'", "'..'", "'['", "']'", "'invalid'", "'null'", "'pre'", "'if'", "'then'", "'else'", "'endif'", "'let'", "'self'", "'default'", "'true'", "'false'", "'@'"

     };

-    public static final int T__42=42;

-    public static final int T__86=86;

-    public static final int T__28=28;

-    public static final int T__57=57;

-    public static final int T__23=23;

-    public static final int T__80=80;

-    public static final int T__51=51;

-    public static final int RULE_LETTER_CHARACTER=9;

-    public static final int T__69=69;

-    public static final int T__47=47;

-    public static final int T__73=73;

-    public static final int T__50=50;

-    public static final int T__21=21;

-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

-    public static final int T__65=65;

-    public static final int T__19=19;

-    public static final int T__72=72;

-    public static final int T__70=70;

-    public static final int T__67=67;

-    public static final int T__74=74;

-    public static final int T__39=39;

-    public static final int T__30=30;

-    public static final int T__46=46;

-    public static final int T__52=52;

     public static final int T__68=68;

-    public static final int T__17=17;

+    public static final int T__69=69;

+    public static final int T__66=66;

+    public static final int T__67=67;

+    public static final int T__64=64;

+    public static final int T__29=29;

+    public static final int T__65=65;

+    public static final int T__28=28;

     public static final int T__62=62;

-    public static final int RULE_INT=4;

     public static final int T__27=27;

+    public static final int T__63=63;

+    public static final int T__26=26;

+    public static final int RULE_ESCAPED_CHARACTER=8;

+    public static final int T__25=25;

     public static final int T__24=24;

+    public static final int T__23=23;

+    public static final int T__22=22;

+    public static final int RULE_ANY_OTHER=15;

+    public static final int T__21=21;

+    public static final int T__20=20;

+    public static final int RULE_ESCAPED_ID=7;

+    public static final int RULE_DOUBLE_QUOTED_STRING=10;

+    public static final int T__61=61;

+    public static final int T__60=60;

+    public static final int EOF=-1;

+    public static final int T__55=55;

+    public static final int T__56=56;

+    public static final int T__19=19;

+    public static final int T__57=57;

+    public static final int T__58=58;

+    public static final int T__16=16;

+    public static final int T__51=51;

+    public static final int T__52=52;

+    public static final int T__18=18;

+    public static final int T__53=53;

+    public static final int T__17=17;

+    public static final int T__54=54;

+    public static final int T__59=59;

+    public static final int RULE_SIMPLE_ID=6;

+    public static final int RULE_INT=4;

+    public static final int T__50=50;

+    public static final int T__42=42;

+    public static final int T__43=43;

+    public static final int T__40=40;

+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

+    public static final int T__41=41;

+    public static final int T__80=80;

+    public static final int T__46=46;

+    public static final int T__81=81;

+    public static final int T__47=47;

+    public static final int T__82=82;

+    public static final int T__44=44;

+    public static final int T__83=83;

+    public static final int T__45=45;

+    public static final int T__48=48;

     public static final int T__49=49;

     public static final int RULE_SINGLE_QUOTED_STRING=5;

-    public static final int T__61=61;

-    public static final int RULE_DOUBLE_QUOTED_STRING=10;

-    public static final int T__59=59;

-    public static final int T__48=48;

-    public static final int T__54=54;

-    public static final int T__34=34;

-    public static final int T__56=56;

-    public static final int RULE_ESCAPED_CHARACTER=8;

-    public static final int RULE_ML_COMMENT=12;

-    public static final int T__35=35;

-    public static final int T__78=78;

-    public static final int T__36=36;

-    public static final int T__20=20;

-    public static final int T__58=58;

-    public static final int T__79=79;

-    public static final int T__64=64;

-    public static final int RULE_SIMPLE_ID=6;

-    public static final int T__44=44;

-    public static final int T__66=66;

-    public static final int T__33=33;

-    public static final int T__22=22;

-    public static final int T__77=77;

-    public static final int T__29=29;

-    public static final int T__45=45;

-    public static final int T__55=55;

-    public static final int RULE_ESCAPED_ID=7;

-    public static final int T__84=84;

-    public static final int RULE_WS=14;

-    public static final int T__63=63;

-    public static final int T__75=75;

-    public static final int T__43=43;

-    public static final int T__31=31;

-    public static final int T__40=40;

-    public static final int EOF=-1;

-    public static final int T__53=53;

     public static final int T__85=85;

-    public static final int T__16=16;

-    public static final int T__32=32;

-    public static final int T__38=38;

-    public static final int T__76=76;

-    public static final int T__37=37;

-    public static final int RULE_ANY_OTHER=15;

-    public static final int T__82=82;

-    public static final int T__26=26;

-    public static final int T__81=81;

-    public static final int T__25=25;

     public static final int RULE_SL_COMMENT=13;

-    public static final int T__83=83;

-    public static final int T__60=60;

-    public static final int T__41=41;

+    public static final int T__84=84;

+    public static final int T__86=86;

+    public static final int RULE_ML_COMMENT=12;

+    public static final int RULE_LETTER_CHARACTER=9;

+    public static final int T__30=30;

+    public static final int T__31=31;

+    public static final int T__32=32;

     public static final int T__71=71;

-    public static final int T__18=18;

+    public static final int T__33=33;

+    public static final int T__72=72;

+    public static final int T__34=34;

+    public static final int T__35=35;

+    public static final int T__70=70;

+    public static final int T__36=36;

+    public static final int T__37=37;

+    public static final int T__38=38;

+    public static final int T__39=39;

+    public static final int RULE_WS=14;

+    public static final int T__76=76;

+    public static final int T__75=75;

+    public static final int T__74=74;

+    public static final int T__73=73;

+    public static final int T__79=79;

+    public static final int T__78=78;

+    public static final int T__77=77;

 

     // delegates

     // delegators

@@ -7083,12 +7083,12 @@
             else if ( (LA5_0==24) ) {

                 int LA5_2 = input.LA(2);

 

-                if ( (LA5_2==69) ) {

-                    alt5=1;

-                }

-                else if ( ((LA5_2>=RULE_SIMPLE_ID && LA5_2<=RULE_ESCAPED_ID)||(LA5_2>=17 && LA5_2<=27)) ) {

+                if ( ((LA5_2>=RULE_SIMPLE_ID && LA5_2<=RULE_ESCAPED_ID)||(LA5_2>=17 && LA5_2<=27)) ) {

                     alt5=2;

                 }

+                else if ( (LA5_2==69) ) {

+                    alt5=1;

+                }

                 else {

                     if (state.backtracking>0) {state.failed=true; return ;}

                     NoViableAltException nvae =

@@ -45273,45 +45273,45 @@
     static final String DFA4_eofS =

         "\21\uffff";

     static final String DFA4_minS =

-        "\1\74\1\4\11\20\1\6\3\20\2\uffff";

+        "\1\74\1\4\1\uffff\11\20\1\6\3\20\1\uffff";

     static final String DFA4_maxS =

-        "\1\74\1\125\15\126\2\uffff";

+        "\1\74\1\125\1\uffff\15\126\1\uffff";

     static final String DFA4_acceptS =

-        "\17\uffff\1\2\1\1";

+        "\2\uffff\1\2\15\uffff\1\1";

     static final String DFA4_specialS =

         "\21\uffff}>";

     static final String[] DFA4_transitionS = {

             "\1\1",

-            "\2\17\1\2\1\3\11\uffff\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13"+

-            "\1\14\1\15\1\16\3\17\16\uffff\16\17\2\uffff\1\17\5\uffff\1\17"+

-            "\6\uffff\2\17\1\uffff\1\17\3\uffff\5\17",

-            "\1\17\13\uffff\2\17\1\uffff\16\17\17\uffff\1\17\5\uffff\2"+

-            "\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

-            "\1\17\13\uffff\2\17\1\uffff\16\17\17\uffff\1\17\5\uffff\2"+

-            "\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

-            "\1\17\13\uffff\2\17\1\uffff\16\17\17\uffff\1\17\5\uffff\2"+

-            "\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

-            "\1\17\13\uffff\2\17\1\uffff\16\17\17\uffff\1\17\5\uffff\2"+

-            "\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

-            "\1\17\13\uffff\2\17\1\uffff\16\17\17\uffff\1\17\5\uffff\2"+

-            "\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

-            "\1\17\13\uffff\2\17\1\uffff\16\17\17\uffff\1\17\5\uffff\2"+

-            "\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

-            "\1\17\13\uffff\2\17\1\uffff\16\17\17\uffff\1\17\5\uffff\2"+

-            "\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

-            "\1\17\13\uffff\2\17\1\uffff\16\17\17\uffff\1\17\5\uffff\2"+

-            "\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

-            "\1\17\13\uffff\2\17\1\uffff\16\17\17\uffff\1\17\5\uffff\2"+

-            "\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

-            "\2\20\10\uffff\1\17\13\20\2\17\1\uffff\16\17\17\uffff\1\17"+

-            "\5\uffff\2\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

-            "\1\17\13\uffff\2\17\1\uffff\16\17\17\uffff\1\17\5\uffff\2"+

-            "\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

-            "\1\17\13\uffff\2\17\1\uffff\16\17\17\uffff\1\17\5\uffff\2"+

-            "\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

-            "\1\17\13\uffff\2\17\1\uffff\16\17\17\uffff\1\17\5\uffff\2"+

-            "\17\1\uffff\1\20\1\17\1\uffff\1\17\15\uffff\1\17",

+            "\2\2\1\3\1\4\11\uffff\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+

+            "\1\15\1\16\1\17\3\2\16\uffff\16\2\2\uffff\1\2\5\uffff\1\2\6"+

+            "\uffff\2\2\1\uffff\1\2\3\uffff\5\2",

             "",

+            "\1\2\13\uffff\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff\2\2\1"+

+            "\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

+            "\1\2\13\uffff\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff\2\2\1"+

+            "\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

+            "\1\2\13\uffff\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff\2\2\1"+

+            "\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

+            "\1\2\13\uffff\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff\2\2\1"+

+            "\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

+            "\1\2\13\uffff\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff\2\2\1"+

+            "\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

+            "\1\2\13\uffff\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff\2\2\1"+

+            "\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

+            "\1\2\13\uffff\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff\2\2\1"+

+            "\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

+            "\1\2\13\uffff\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff\2\2\1"+

+            "\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

+            "\1\2\13\uffff\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff\2\2\1"+

+            "\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

+            "\2\20\10\uffff\1\2\13\20\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff"+

+            "\2\2\1\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

+            "\1\2\13\uffff\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff\2\2\1"+

+            "\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

+            "\1\2\13\uffff\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff\2\2\1"+

+            "\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

+            "\1\2\13\uffff\2\2\1\uffff\16\2\17\uffff\1\2\5\uffff\2\2\1"+

+            "\uffff\1\20\1\2\1\uffff\1\2\15\uffff\1\2",

             ""

     };

 

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/QVTcore.xmi b/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/QVTcore.xmi
deleted file mode 100644
index 213e8c3..0000000
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/QVTcore.xmi
+++ /dev/null
@@ -1,1728 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>

-<xmi:XMI xmi:version="2.0" 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" xmlns:xtext="http://www.eclipse.org/2008/Xtext">

-  <xtext:Grammar name="org.eclipse.qvtd.xtext.qvtcore.QVTcore" usedGrammars="/1">

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">

-      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="base">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/BaseCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="essentialocl">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="pivot">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/Pivot#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtbase">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTbase#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtcorebase">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTcoreBase#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtcore">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTcore#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTcoreCST#/"/>

-    </metamodelDeclarations>

-    <rules xsi:type="xtext:ParserRule" name="TopLevelCS">

-      <type metamodel="/0/@metamodelDeclarations.7">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreCST#//TopLevelCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:Assignment" feature="ownedImport" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.4"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="ownedLibrary" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.5"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:Assignment" feature="mappings" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="transformations" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.10"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="queries" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.8"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MappingCS">

-      <type metamodel="/0/@metamodelDeclarations.7">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreCST#//MappingCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/0/@metamodelDeclarations.7">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreCST#//MappingCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="map"/>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="in"/>

-          <elements xsi:type="xtext:Assignment" feature="in" operator="=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/0/@metamodelDeclarations.4">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTbase#//Transformation"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-            </terminal>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="refines"/>

-          <elements xsi:type="xtext:Assignment" feature="refines" operator="+=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/0/@metamodelDeclarations.6">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcore#//Mapping"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-            </terminal>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="refines" operator="+=">

-              <terminal xsi:type="xtext:CrossReference">

-                <type metamodel="/0/@metamodelDeclarations.6">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcore#//Mapping"/>

-                </type>

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-              </terminal>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Assignment" cardinality="*" feature="domains" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.6"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="where"/>

-          <elements xsi:type="xtext:Assignment" feature="middle" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.13"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="*" feature="composedMappings" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-  </xtext:Grammar>

-  <xtext:Grammar name="org.eclipse.qvtd.xtext.qvtcorebase.QVTcoreBase" usedGrammars="/2">

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">

-      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="base">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/BaseCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="essentialocl">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="pivot">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/Pivot#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtbase">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTbase#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtcorebase">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTcoreBase#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#/"/>

-    </metamodelDeclarations>

-    <rules xsi:type="xtext:ParserRule" name="BottomPatternCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//BottomPatternCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Keyword" value="{"/>

-          <elements xsi:type="xtext:Alternatives">

-            <elements xsi:type="xtext:Assignment" feature="unrealizedVariables" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.11"/>

-            </elements>

-            <elements xsi:type="xtext:Assignment" feature="realizedVariables" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.12"/>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Assignment" feature="unrealizedVariables" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.11"/>

-              </elements>

-              <elements xsi:type="xtext:Assignment" feature="realizedVariables" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.12"/>

-              </elements>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="|"/>

-          <elements xsi:type="xtext:Assignment" cardinality="*" feature="constraints" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="}"/>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/1/@metamodelDeclarations.6">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//BottomPatternCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="{"/>

-          <elements xsi:type="xtext:Assignment" cardinality="*" feature="constraints" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="}"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="AssignmentCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//AssignmentCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="default" operator="?=">

-          <terminal xsi:type="xtext:Keyword" value="default"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="target" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":="/>

-          <elements xsi:type="xtext:Assignment" feature="initialiser" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="DirectionCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DirectionCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/1/@metamodelDeclarations.6">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DirectionCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="imports"/>

-          <elements xsi:type="xtext:Assignment" feature="imports" operator="+=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/1/@metamodelDeclarations.3">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-            </terminal>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="imports" operator="+=">

-              <terminal xsi:type="xtext:CrossReference">

-                <type metamodel="/1/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>

-                </type>

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-              </terminal>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="uses"/>

-          <elements xsi:type="xtext:Assignment" feature="uses" operator="+=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/1/@metamodelDeclarations.5">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBase#//CoreDomain"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-            </terminal>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="uses" operator="+=">

-              <terminal xsi:type="xtext:CrossReference">

-                <type metamodel="/1/@metamodelDeclarations.5">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBase#//CoreDomain"/>

-                </type>

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-              </terminal>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="GuardPatternCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//GuardPatternCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Assignment" feature="unrealizedVariables" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.11"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="unrealizedVariables" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.11"/>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="|"/>

-          <elements xsi:type="xtext:Assignment" cardinality="*" feature="constraints" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/1/@metamodelDeclarations.6">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//GuardPatternCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Assignment" cardinality="*" feature="constraints" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ImportCS">

-      <type metamodel="/1/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//ImportCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="import"/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.22"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=":"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="pathName" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.35"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="all" operator="?=">

-            <terminal xsi:type="xtext:Keyword" value="::"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="*"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LibraryCS">

-      <type metamodel="/1/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//LibraryCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="library"/>

-        <elements xsi:type="xtext:Assignment" feature="package" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/1/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.17"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NamedDomainCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DomainCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="check" operator="?=">

-          <terminal xsi:type="xtext:Keyword" value="check"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="enforce" operator="?=">

-          <terminal xsi:type="xtext:Keyword" value="enforce"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="direction" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/1/@metamodelDeclarations.4">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTbase#//TypedModel"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="guardPattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.3"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="bottomPattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ParamDeclarationCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//ParamDeclarationCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="QueryCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//QueryCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="query"/>

-        <elements xsi:type="xtext:Assignment" feature="pathName" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.9"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="("/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="inputParamDeclaration" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="inputParamDeclaration" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=")"/>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-        </elements>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value=";"/>

-          <elements xsi:type="xtext:Group">

-            <elements xsi:type="xtext:Keyword" value="{"/>

-            <elements xsi:type="xtext:Assignment" feature="expression" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-            </elements>

-            <elements xsi:type="xtext:Keyword" value="}"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ScopeNameCS">

-      <type metamodel="/1/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathNameCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.33"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="::"/>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.34"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="::"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TransformationCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//TransformationCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="transformation"/>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="pathName" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.9"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.31"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Assignment" feature="directions" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=";"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnrealizedVariableCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//UnrealizedVariableCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="RealizedVariableCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//RealizedVariableCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="realize"/>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnnamedDomainCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DomainCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/1/@metamodelDeclarations.6">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DomainCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="guardPattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.3"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="bottomPattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnrestrictedName">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.28"/>

-        <elements xsi:type="xtext:Keyword" value="check"/>

-        <elements xsi:type="xtext:Keyword" value="enforce"/>

-        <elements xsi:type="xtext:Keyword" value="import"/>

-        <elements xsi:type="xtext:Keyword" value="imports"/>

-        <elements xsi:type="xtext:Keyword" value="library"/>

-        <elements xsi:type="xtext:Keyword" value="map"/>

-        <elements xsi:type="xtext:Keyword" value="query"/>

-        <elements xsi:type="xtext:Keyword" value="realize"/>

-        <elements xsi:type="xtext:Keyword" value="refines"/>

-        <elements xsi:type="xtext:Keyword" value="transformation"/>

-        <elements xsi:type="xtext:Keyword" value="uses"/>

-      </alternatives>

-    </rules>

-  </xtext:Grammar>

-  <xtext:Grammar name="org.eclipse.ocl.examples.xtext.essentialocl.EssentialOCL" definesHiddenTokens="true" hiddenTokens="/2/@rules.15 /2/@rules.13 /2/@rules.14">

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">

-      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="pivot">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/Pivot#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="base">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/BaseCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#/"/>

-    </metamodelDeclarations>

-    <rules xsi:type="xtext:ParserRule" name="Model">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ContextCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="ownedExpression" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ESCAPED_CHARACTER" fragment="true">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="\"/>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="b"/>

-          <elements xsi:type="xtext:Keyword" value="t"/>

-          <elements xsi:type="xtext:Keyword" value="n"/>

-          <elements xsi:type="xtext:Keyword" value="f"/>

-          <elements xsi:type="xtext:Keyword" value="r"/>

-          <elements xsi:type="xtext:Keyword" value="u"/>

-          <elements xsi:type="xtext:Keyword" value="&quot;"/>

-          <elements xsi:type="xtext:Keyword" value="'"/>

-          <elements xsi:type="xtext:Keyword" value="\"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="LETTER_CHARACTER" fragment="true">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:CharacterRange">

-          <left value="a"/>

-          <right value="z"/>

-        </elements>

-        <elements xsi:type="xtext:CharacterRange">

-          <left value="A"/>

-          <right value="Z"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="_"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="DOUBLE_QUOTED_STRING">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="&quot;"/>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.1"/>

-          <elements xsi:type="xtext:NegatedToken">

-            <terminal xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Keyword" value="\"/>

-              <elements xsi:type="xtext:Keyword" value="&quot;"/>

-            </terminal>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="&quot;"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="SINGLE_QUOTED_STRING">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="'"/>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.1"/>

-          <elements xsi:type="xtext:NegatedToken">

-            <terminal xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Keyword" value="\"/>

-              <elements xsi:type="xtext:Keyword" value="'"/>

-            </terminal>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="'"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ML_SINGLE_QUOTED_STRING">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="/'"/>

-        <elements xsi:type="xtext:UntilToken">

-          <terminal xsi:type="xtext:Keyword" value="'/"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="SIMPLE_ID">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.2"/>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.2"/>

-          <elements xsi:type="xtext:CharacterRange">

-            <left value="0"/>

-            <right value="9"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ESCAPED_ID">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="_"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.4"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ID">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.6"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.7"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="INT">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:CharacterRange" cardinality="+">

-        <left value="0"/>

-        <right value="9"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LOWER">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.9"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UPPER">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.9"/>

-        <elements xsi:type="xtext:Keyword" value="*"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NUMBER_LITERAL">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BigNumber"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.9"/>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="/*"/>

-        <elements xsi:type="xtext:UntilToken">

-          <terminal xsi:type="xtext:Keyword" value="*/"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="--"/>

-        <elements xsi:type="xtext:NegatedToken" cardinality="*">

-          <terminal xsi:type="xtext:Alternatives">

-            <elements xsi:type="xtext:Keyword" value="&#xA;"/>

-            <elements xsi:type="xtext:Keyword" value="&#xD;"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>

-          <elements xsi:type="xtext:Keyword" value="&#xA;"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="WS">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives" cardinality="+">

-        <elements xsi:type="xtext:Keyword" value=" "/>

-        <elements xsi:type="xtext:Keyword" value="&#x9;"/>

-        <elements xsi:type="xtext:Keyword" value="&#xD;"/>

-        <elements xsi:type="xtext:Keyword" value="&#xA;"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Wildcard"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="URI">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.4"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLReservedKeyword">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Keyword" value="and"/>

-        <elements xsi:type="xtext:Keyword" value="else"/>

-        <elements xsi:type="xtext:Keyword" value="endif"/>

-        <elements xsi:type="xtext:Keyword" value="if"/>

-        <elements xsi:type="xtext:Keyword" value="implies"/>

-        <elements xsi:type="xtext:Keyword" value="in"/>

-        <elements xsi:type="xtext:Keyword" value="let"/>

-        <elements xsi:type="xtext:Keyword" value="not"/>

-        <elements xsi:type="xtext:Keyword" value="or"/>

-        <elements xsi:type="xtext:Keyword" value="then"/>

-        <elements xsi:type="xtext:Keyword" value="xor"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLUnaryOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="-"/>

-          <elements xsi:type="xtext:Keyword" value="not"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLInfixOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BinaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="*"/>

-          <elements xsi:type="xtext:Keyword" value="/"/>

-          <elements xsi:type="xtext:Keyword" value="+"/>

-          <elements xsi:type="xtext:Keyword" value="-"/>

-          <elements xsi:type="xtext:Keyword" value=">"/>

-          <elements xsi:type="xtext:Keyword" value="&lt;"/>

-          <elements xsi:type="xtext:Keyword" value=">="/>

-          <elements xsi:type="xtext:Keyword" value="&lt;="/>

-          <elements xsi:type="xtext:Keyword" value="="/>

-          <elements xsi:type="xtext:Keyword" value="&lt;>"/>

-          <elements xsi:type="xtext:Keyword" value="and"/>

-          <elements xsi:type="xtext:Keyword" value="or"/>

-          <elements xsi:type="xtext:Keyword" value="xor"/>

-          <elements xsi:type="xtext:Keyword" value="implies"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLNavigationOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigationOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="."/>

-          <elements xsi:type="xtext:Keyword" value="->"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="Identifier">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.8"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="StringLiteral">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.4"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="BinaryOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BinaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.25"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.26"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="InfixOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BinaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.20"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigationOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigationOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.21"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnaryOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.19"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLUnrestrictedName">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.22"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnrestrictedName">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.28"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLUnreservedName">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.39"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.37"/>

-        <elements xsi:type="xtext:Keyword" value="Tuple"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnreservedName">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.30"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PathNameCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathNameCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.33"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value="::"/>

-          <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.34"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="FirstPathElementCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="element" operator="=">

-        <terminal xsi:type="xtext:CrossReference">

-          <type metamodel="/2/@metamodelDeclarations.1">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement"/>

-          </type>

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NextPathElementCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="element" operator="=">

-        <terminal xsi:type="xtext:CrossReference">

-          <type metamodel="/2/@metamodelDeclarations.1">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement"/>

-          </type>

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.31"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="URIPathNameCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathNameCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.36"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value="::"/>

-          <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.34"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="URIFirstPathElementCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Assignment" feature="element" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/2/@metamodelDeclarations.1">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/2/@metamodelDeclarations.2">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementWithURICS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="element" operator="=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/2/@metamodelDeclarations.1">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Namespace"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.17"/>

-            </terminal>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveTypeIdentifier">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Keyword" value="Boolean"/>

-        <elements xsi:type="xtext:Keyword" value="Integer"/>

-        <elements xsi:type="xtext:Keyword" value="Real"/>

-        <elements xsi:type="xtext:Keyword" value="String"/>

-        <elements xsi:type="xtext:Keyword" value="UnlimitedNatural"/>

-        <elements xsi:type="xtext:Keyword" value="OclAny"/>

-        <elements xsi:type="xtext:Keyword" value="OclInvalid"/>

-        <elements xsi:type="xtext:Keyword" value="OclVoid"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveTypeCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PrimitiveTypeRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.37"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionTypeIdentifier">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Keyword" value="Set"/>

-        <elements xsi:type="xtext:Keyword" value="Bag"/>

-        <elements xsi:type="xtext:Keyword" value="Sequence"/>

-        <elements xsi:type="xtext:Keyword" value="Collection"/>

-        <elements xsi:type="xtext:Keyword" value="OrderedSet"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionTypeCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//CollectionTypeCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.39"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MultiplicityBoundsCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//MultiplicityBoundsCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="lowerBound" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.10"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=".."/>

-          <elements xsi:type="xtext:Assignment" feature="upperBound" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.11"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MultiplicityCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//MultiplicityCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="["/>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.41"/>

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.43"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="]"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MultiplicityStringCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//MultiplicityStringCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="stringBounds" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="*"/>

-          <elements xsi:type="xtext:Keyword" value="+"/>

-          <elements xsi:type="xtext:Keyword" value="?"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TupleTypeCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TupleTypeCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="Tuple"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.45"/>

-            </elements>

-            <elements xsi:type="xtext:Group" cardinality="*">

-              <elements xsi:type="xtext:Keyword" value=","/>

-              <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.45"/>

-              </elements>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TuplePartCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TuplePartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//CollectionLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.40"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.47"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.47"/>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionLiteralPartCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//CollectionLiteralPartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="expressionCS" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=".."/>

-          <elements xsi:type="xtext:Assignment" feature="lastExpressionCS" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ConstructorPartCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ConstructorPartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="property" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/2/@metamodelDeclarations.1">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//PrimitiveLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.52"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.53"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.54"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.55"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.56"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.57"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TupleLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TupleLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="Tuple"/>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.51"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value=","/>

-          <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.51"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TupleLiteralPartCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TupleLiteralPartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NumberLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NumberLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.12"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="StringLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//StringLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" cardinality="+" feature="name" operator="+=">

-        <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.23"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="BooleanLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BooleanLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="true"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="false"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnlimitedNaturalLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnlimitedNaturalLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/2/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnlimitedNaturalLiteralExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="*"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="InvalidLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InvalidLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/2/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InvalidLiteralExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="invalid"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NullLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NullLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/2/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NullLiteralExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="null"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeLiteralCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.38"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.40"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.44"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeLiteralWithMultiplicityCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.58"/>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="multiplicity" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.42"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TypeLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.59"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeNameExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TypeNameExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="pathName" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.32"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeExpCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.61"/>

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.58"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="multiplicity" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.42"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.64"/>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Action" feature="ownedExpression" operator="+=">

-              <type metamodel="/2/@metamodelDeclarations.3">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InfixExpCS"/>

-              </type>

-            </elements>

-            <elements xsi:type="xtext:Assignment" feature="ownedOperator" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.24"/>

-            </elements>

-            <elements xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Group">

-                <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.64"/>

-                </elements>

-                <elements xsi:type="xtext:Group" cardinality="*">

-                  <elements xsi:type="xtext:Assignment" feature="ownedOperator" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.24"/>

-                  </elements>

-                  <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.64"/>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Group" cardinality="?">

-                  <elements xsi:type="xtext:Assignment" feature="ownedOperator" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.24"/>

-                  </elements>

-                  <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.72"/>

-                  </elements>

-                </elements>

-              </elements>

-              <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.72"/>

-              </elements>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/2/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//PrefixExpCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" cardinality="+" feature="ownedOperator" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.27"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.72"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.72"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrefixedExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/2/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//PrefixExpCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" cardinality="+" feature="ownedOperator" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.27"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.65"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.65"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimaryExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.74"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.71"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.75"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.49"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.50"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.46"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.60"/>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/2/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NameExpCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="pathName" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.32"/>

-          </elements>

-          <elements xsi:type="xtext:Alternatives">

-            <elements xsi:type="xtext:Group">

-              <elements xsi:type="xtext:Action" feature="nameExp" operator="=">

-                <type metamodel="/2/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//IndexExpCS"/>

-                </type>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="["/>

-              <elements xsi:type="xtext:Assignment" feature="firstIndexes" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-              </elements>

-              <elements xsi:type="xtext:Group" cardinality="*">

-                <elements xsi:type="xtext:Keyword" value=","/>

-                <elements xsi:type="xtext:Assignment" feature="firstIndexes" operator="+=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-                </elements>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="]"/>

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Keyword" value="["/>

-                <elements xsi:type="xtext:Assignment" feature="secondIndexes" operator="+=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-                </elements>

-                <elements xsi:type="xtext:Group" cardinality="*">

-                  <elements xsi:type="xtext:Keyword" value=","/>

-                  <elements xsi:type="xtext:Assignment" feature="secondIndexes" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="]"/>

-              </elements>

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Assignment" feature="atPre" operator="?=">

-                  <terminal xsi:type="xtext:Keyword" value="@"/>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="pre"/>

-              </elements>

-            </elements>

-            <elements xsi:type="xtext:Group">

-              <elements xsi:type="xtext:Action" feature="nameExp" operator="=">

-                <type metamodel="/2/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ConstructorExpCS"/>

-                </type>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="{"/>

-              <elements xsi:type="xtext:Alternatives">

-                <elements xsi:type="xtext:Group">

-                  <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.48"/>

-                  </elements>

-                  <elements xsi:type="xtext:Group" cardinality="*">

-                    <elements xsi:type="xtext:Keyword" value=","/>

-                    <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.48"/>

-                    </elements>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Assignment" feature="value" operator="=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.23"/>

-                </elements>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="}"/>

-            </elements>

-            <elements xsi:type="xtext:Group">

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Assignment" feature="atPre" operator="?=">

-                  <terminal xsi:type="xtext:Keyword" value="@"/>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="pre"/>

-              </elements>

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Action" feature="nameExp" operator="=">

-                  <type metamodel="/2/@metamodelDeclarations.3">

-                    <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InvocationExpCS"/>

-                  </type>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="("/>

-                <elements xsi:type="xtext:Group" cardinality="?">

-                  <elements xsi:type="xtext:Assignment" feature="argument" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.66"/>

-                  </elements>

-                  <elements xsi:type="xtext:Assignment" cardinality="*" feature="argument" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.68"/>

-                  </elements>

-                  <elements xsi:type="xtext:Group" cardinality="?">

-                    <elements xsi:type="xtext:Assignment" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.69"/>

-                    </elements>

-                    <elements xsi:type="xtext:Assignment" cardinality="*" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.68"/>

-                    </elements>

-                  </elements>

-                  <elements xsi:type="xtext:Group" cardinality="?">

-                    <elements xsi:type="xtext:Assignment" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.67"/>

-                    </elements>

-                    <elements xsi:type="xtext:Assignment" cardinality="*" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.68"/>

-                    </elements>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value=")"/>

-              </elements>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingArgCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingBarArgCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="prefix" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="|"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingCommaArgCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="prefix" operator="=">

-          <terminal xsi:type="xtext:Keyword" value=","/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingSemiArgCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="prefix" operator="=">

-          <terminal xsi:type="xtext:Keyword" value=";"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingArgExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="IfExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//IfExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="if"/>

-        <elements xsi:type="xtext:Assignment" feature="condition" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="then"/>

-        <elements xsi:type="xtext:Assignment" feature="thenExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="else"/>

-        <elements xsi:type="xtext:Assignment" feature="elseExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="endif"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LetExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//LetExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="let"/>

-        <elements xsi:type="xtext:Assignment" feature="variable" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.73"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value=","/>

-          <elements xsi:type="xtext:Assignment" feature="variable" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.73"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="in"/>

-        <elements xsi:type="xtext:Assignment" feature="in" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LetVariableCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//LetVariableCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NestedExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NestedExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="("/>

-        <elements xsi:type="xtext:Assignment" feature="source" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=")"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="SelfExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//SelfExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/2/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//SelfExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="self"/>

-      </alternatives>

-    </rules>

-  </xtext:Grammar>

-</xmi:XMI>

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/QVTcore.xtextbin b/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/QVTcore.xtextbin
new file mode 100644
index 0000000..a3aad72
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/QVTcore.xtextbin
Binary files differ
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/parser/antlr/internal/InternalQVTcore.tokens b/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/parser/antlr/internal/InternalQVTcore.tokens
index da7b76e..0802cee 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/parser/antlr/internal/InternalQVTcore.tokens
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/parser/antlr/internal/InternalQVTcore.tokens
@@ -1,154 +1,154 @@
-T__42=42

-T__86=86

-T__28=28

-T__57=57

-T__23=23

-T__80=80

-T__51=51

-RULE_LETTER_CHARACTER=9

-T__69=69

-T__47=47

-T__73=73

-T__50=50

-T__21=21

-RULE_ML_SINGLE_QUOTED_STRING=11

-T__65=65

-T__19=19

-T__72=72

-T__70=70

-T__67=67

-T__74=74

-T__39=39

-T__30=30

-T__46=46

-T__52=52

 T__68=68

-T__17=17

+T__69=69

+T__66=66

+T__67=67

+T__64=64

+T__29=29

+T__65=65

+T__28=28

 T__62=62

-RULE_INT=6

 T__27=27

+T__63=63

+T__26=26

+RULE_ESCAPED_CHARACTER=8

+T__25=25

 T__24=24

+T__23=23

+T__22=22

+RULE_ANY_OTHER=15

+T__21=21

+T__20=20

+RULE_ESCAPED_ID=5

+RULE_DOUBLE_QUOTED_STRING=10

+T__61=61

+T__60=60

+T__55=55

+T__56=56

+T__19=19

+T__57=57

+T__58=58

+T__16=16

+T__51=51

+T__52=52

+T__18=18

+T__53=53

+T__17=17

+T__54=54

+T__59=59

+RULE_SIMPLE_ID=4

+RULE_INT=6

+T__50=50

+T__42=42

+T__43=43

+T__40=40

+RULE_ML_SINGLE_QUOTED_STRING=11

+T__41=41

+T__80=80

+T__46=46

+T__81=81

+T__47=47

+T__82=82

+T__44=44

+T__83=83

+T__45=45

+T__48=48

 T__49=49

 RULE_SINGLE_QUOTED_STRING=7

-T__61=61

-RULE_DOUBLE_QUOTED_STRING=10

-T__59=59

-T__48=48

-T__54=54

-T__34=34

-T__56=56

-RULE_ESCAPED_CHARACTER=8

-RULE_ML_COMMENT=12

-T__35=35

-T__78=78

-T__36=36

-T__20=20

-T__58=58

-T__79=79

-T__64=64

-RULE_SIMPLE_ID=4

-T__44=44

-T__66=66

-T__33=33

-T__22=22

-T__77=77

-T__29=29

-T__45=45

-T__55=55

-RULE_ESCAPED_ID=5

-T__84=84

-RULE_WS=14

-T__63=63

-T__75=75

-T__43=43

-T__31=31

-T__40=40

-T__53=53

 T__85=85

-T__16=16

-T__32=32

-T__38=38

-T__76=76

-T__37=37

-RULE_ANY_OTHER=15

-T__82=82

-T__26=26

-T__81=81

-T__25=25

 RULE_SL_COMMENT=13

-T__83=83

-T__60=60

-T__41=41

+T__84=84

+T__86=86

+RULE_ML_COMMENT=12

+RULE_LETTER_CHARACTER=9

+T__30=30

+T__31=31

+T__32=32

 T__71=71

-T__18=18

-'<'=46

-'pre'=80

-'..'=71

-'>'=45

-'transformation'=39

-'let'=85

-'else'=83

-'invalid'=77

-'-'=41

-'Integer'=59

-'String'=61

-'?'=74

-'Bag'=67

-'map'=16

-':='=25

+T__33=33

+T__72=72

+T__34=34

+T__35=35

+T__70=70

+T__36=36

+T__37=37

+T__38=38

+T__39=39

+RULE_WS=14

+T__76=76

+T__75=75

+T__74=74

+T__73=73

+T__79=79

+T__78=78

+T__77=77

 '>='=47

-'<='=48

-'='=49

-'Real'=60

-'Sequence'=68

-'::'=33

-'uses'=28

-'Boolean'=58

-'xor'=53

-'{'=20

-'OclVoid'=65

-'then'=82

-'OrderedSet'=70

-':'=32

-'OclAny'=63

-'Tuple'=57

-'.'=55

-'*'=34

-'<>'=50

-'Set'=66

-'imports'=27

-'}'=22

-'->'=56

-'self'=86

-'where'=21

-';'=26

-'true'=75

-']'=73

-'default'=24

-'false'=76

-','=19

-'endif'=84

-'refines'=18

-'not'=42

-'query'=38

-'['=72

-'or'=52

 '/'=43

-'Collection'=69

-'and'=51

-'implies'=54

-'realize'=40

-'|'=23

-')'=30

-'OclInvalid'=64

-'@'=79

-'import'=31

-'if'=81

-'('=29

+'Sequence'=68

+'where'=21

+'then'=82

 'enforce'=37

-'UnlimitedNatural'=62

-'check'=36

-'in'=17

-'null'=78

+':='=25

+'Real'=60

+'>'=45

+'Integer'=59

+';'=26

+'Boolean'=58

+'<>'=50

+'uses'=28

+'transformation'=39

+'OclInvalid'=64

 '+'=44

+'pre'=80

+'.'=55

 'library'=35

+'imports'=27

+'Set'=66

+'import'=31

+'true'=75

+'else'=83

+'let'=85

+'and'=51

+'{'=20

+'check'=36

+'?'=74

+'OclVoid'=65

+'if'=81

+':'=32

+'('=29

+'not'=42

+'-'=41

+','=19

+'in'=17

+'default'=24

+']'=73

+'query'=38

+'..'=71

+'|'=23

+'OrderedSet'=70

+'UnlimitedNatural'=62

+'null'=78

+'Collection'=69

+'Tuple'=57

+'String'=61

+'='=49

+'map'=16

+'@'=79

+'Bag'=67

+'::'=33

+')'=30

+'xor'=53

+'->'=56

+'}'=22

+'refines'=18

+'<='=48

+'false'=76

+'realize'=40

+'<'=46

+'invalid'=77

+'OclAny'=63

+'['=72

+'*'=34

+'or'=52

+'implies'=54

+'self'=86

+'endif'=84

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/parser/antlr/internal/InternalQVTcoreLexer.java b/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/parser/antlr/internal/InternalQVTcoreLexer.java
index 777c06d..341eba6 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/parser/antlr/internal/InternalQVTcoreLexer.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/parser/antlr/internal/InternalQVTcoreLexer.java
@@ -12,90 +12,90 @@
 
 @SuppressWarnings("all")
 public class InternalQVTcoreLexer extends Lexer {
-    public static final int T__42=42;
-    public static final int T__86=86;
-    public static final int T__28=28;
-    public static final int T__23=23;
-    public static final int T__57=57;
-    public static final int T__51=51;
-    public static final int T__80=80;
-    public static final int RULE_LETTER_CHARACTER=9;
-    public static final int T__47=47;
-    public static final int T__69=69;
-    public static final int T__73=73;
-    public static final int T__50=50;
-    public static final int T__21=21;
-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
-    public static final int T__19=19;
-    public static final int T__65=65;
-    public static final int T__72=72;
-    public static final int T__70=70;
-    public static final int T__67=67;
-    public static final int T__74=74;
-    public static final int T__39=39;
-    public static final int T__30=30;
-    public static final int T__46=46;
-    public static final int T__52=52;
     public static final int T__68=68;
-    public static final int T__17=17;
-    public static final int T__62=62;
-    public static final int RULE_INT=6;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__29=29;
+    public static final int T__64=64;
+    public static final int T__28=28;
+    public static final int T__65=65;
     public static final int T__27=27;
+    public static final int T__62=62;
+    public static final int T__26=26;
+    public static final int T__63=63;
+    public static final int T__25=25;
+    public static final int RULE_ESCAPED_CHARACTER=8;
     public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=15;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int RULE_ESCAPED_ID=5;
+    public static final int RULE_DOUBLE_QUOTED_STRING=10;
+    public static final int T__61=61;
+    public static final int EOF=-1;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__19=19;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__16=16;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__18=18;
+    public static final int T__53=53;
+    public static final int T__17=17;
+    public static final int T__54=54;
+    public static final int T__59=59;
+    public static final int RULE_SIMPLE_ID=4;
+    public static final int RULE_INT=6;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
+    public static final int T__46=46;
+    public static final int T__80=80;
+    public static final int T__47=47;
+    public static final int T__81=81;
+    public static final int T__44=44;
+    public static final int T__82=82;
+    public static final int T__45=45;
+    public static final int T__83=83;
+    public static final int T__48=48;
     public static final int T__49=49;
     public static final int RULE_SINGLE_QUOTED_STRING=7;
-    public static final int T__61=61;
-    public static final int RULE_DOUBLE_QUOTED_STRING=10;
-    public static final int T__59=59;
-    public static final int T__48=48;
-    public static final int T__54=54;
-    public static final int T__34=34;
-    public static final int T__56=56;
-    public static final int RULE_ESCAPED_CHARACTER=8;
-    public static final int RULE_ML_COMMENT=12;
-    public static final int T__35=35;
-    public static final int T__78=78;
-    public static final int T__36=36;
-    public static final int T__20=20;
-    public static final int T__58=58;
-    public static final int T__79=79;
-    public static final int T__64=64;
-    public static final int RULE_SIMPLE_ID=4;
-    public static final int T__44=44;
-    public static final int T__66=66;
-    public static final int T__33=33;
-    public static final int T__22=22;
-    public static final int T__77=77;
-    public static final int T__55=55;
-    public static final int T__45=45;
-    public static final int T__29=29;
-    public static final int RULE_ESCAPED_ID=5;
-    public static final int T__84=84;
-    public static final int T__63=63;
-    public static final int RULE_WS=14;
-    public static final int T__43=43;
-    public static final int T__75=75;
-    public static final int T__31=31;
-    public static final int T__40=40;
-    public static final int EOF=-1;
-    public static final int T__53=53;
-    public static final int T__32=32;
-    public static final int T__16=16;
     public static final int T__85=85;
-    public static final int T__38=38;
-    public static final int T__37=37;
-    public static final int T__76=76;
-    public static final int T__26=26;
-    public static final int T__82=82;
-    public static final int RULE_ANY_OTHER=15;
-    public static final int T__25=25;
-    public static final int T__81=81;
+    public static final int T__84=84;
     public static final int RULE_SL_COMMENT=13;
-    public static final int T__60=60;
-    public static final int T__83=83;
-    public static final int T__41=41;
-    public static final int T__18=18;
+    public static final int T__86=86;
+    public static final int RULE_LETTER_CHARACTER=9;
+    public static final int RULE_ML_COMMENT=12;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
     public static final int T__71=71;
+    public static final int T__34=34;
+    public static final int T__72=72;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__70=70;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int T__76=76;
+    public static final int RULE_WS=14;
+    public static final int T__75=75;
+    public static final int T__74=74;
+    public static final int T__73=73;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__77=77;
 
     // delegates
     // delegators
@@ -2837,7 +2837,7 @@
         "\1\54\3\uffff\1\62\3\uffff\1\65\13\uffff\1\61\1\67\1\66\6\uffff"+
         "\1\30\2\uffff\1\57";
     static final String DFA11_specialS =
-        "\1\2\56\uffff\1\0\1\1\u0114\uffff}>";
+        "\1\1\56\uffff\1\2\1\0\u0114\uffff}>";
     static final String[] DFA11_transitionS = {
             "\11\65\2\64\2\65\1\64\22\65\1\64\1\65\1\57\4\65\1\60\1\15\1"+
             "\16\1\17\1\30\1\4\1\25\1\37\1\27\12\63\1\12\1\13\1\32\1\33\1"+
@@ -3209,16 +3209,6 @@
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA11_47 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA11_47>='\u0000' && LA11_47<='\uFFFF')) ) {s = 120;}
-
-                        else s = 53;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 1 : 
                         int LA11_48 = input.LA(1);
 
                         s = -1;
@@ -3228,7 +3218,7 @@
 
                         if ( s>=0 ) return s;
                         break;
-                    case 2 : 
+                    case 1 : 
                         int LA11_0 = input.LA(1);
 
                         s = -1;
@@ -3340,6 +3330,16 @@
 
                         if ( s>=0 ) return s;
                         break;
+                    case 2 : 
+                        int LA11_47 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA11_47>='\u0000' && LA11_47<='\uFFFF')) ) {s = 120;}
+
+                        else s = 53;
+
+                        if ( s>=0 ) return s;
+                        break;
             }
             NoViableAltException nvae =
                 new NoViableAltException(getDescription(), 11, _s, input);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/parser/antlr/internal/InternalQVTcoreParser.java b/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/parser/antlr/internal/InternalQVTcoreParser.java
index 51f7fbf..2c46f3e 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/parser/antlr/internal/InternalQVTcoreParser.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcore/src-gen/org/eclipse/qvtd/xtext/qvtcore/parser/antlr/internal/InternalQVTcoreParser.java
@@ -24,90 +24,90 @@
     public static final String[] tokenNames = new String[] {

         "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_SIMPLE_ID", "RULE_ESCAPED_ID", "RULE_INT", "RULE_SINGLE_QUOTED_STRING", "RULE_ESCAPED_CHARACTER", "RULE_LETTER_CHARACTER", "RULE_DOUBLE_QUOTED_STRING", "RULE_ML_SINGLE_QUOTED_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'map'", "'in'", "'refines'", "','", "'{'", "'where'", "'}'", "'|'", "'default'", "':='", "';'", "'imports'", "'uses'", "'('", "')'", "'import'", "':'", "'::'", "'*'", "'library'", "'check'", "'enforce'", "'query'", "'transformation'", "'realize'", "'-'", "'not'", "'/'", "'+'", "'>'", "'<'", "'>='", "'<='", "'='", "'<>'", "'and'", "'or'", "'xor'", "'implies'", "'.'", "'->'", "'Tuple'", "'Boolean'", "'Integer'", "'Real'", "'String'", "'UnlimitedNatural'", "'OclAny'", "'OclInvalid'", "'OclVoid'", "'Set'", "'Bag'", "'Sequence'", "'Collection'", "'OrderedSet'", "'..'", "'['", "']'", "'?'", "'true'", "'false'", "'invalid'", "'null'", "'@'", "'pre'", "'if'", "'then'", "'else'", "'endif'", "'let'", "'self'"

     };

-    public static final int T__42=42;

-    public static final int T__86=86;

-    public static final int T__28=28;

-    public static final int T__57=57;

-    public static final int T__23=23;

-    public static final int T__80=80;

-    public static final int T__51=51;

-    public static final int RULE_LETTER_CHARACTER=9;

-    public static final int T__69=69;

-    public static final int T__47=47;

-    public static final int T__73=73;

-    public static final int T__50=50;

-    public static final int T__21=21;

-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

-    public static final int T__65=65;

-    public static final int T__19=19;

-    public static final int T__72=72;

-    public static final int T__70=70;

-    public static final int T__67=67;

-    public static final int T__74=74;

-    public static final int T__39=39;

-    public static final int T__30=30;

-    public static final int T__46=46;

-    public static final int T__52=52;

     public static final int T__68=68;

-    public static final int T__17=17;

+    public static final int T__69=69;

+    public static final int T__66=66;

+    public static final int T__67=67;

+    public static final int T__64=64;

+    public static final int T__29=29;

+    public static final int T__65=65;

+    public static final int T__28=28;

     public static final int T__62=62;

-    public static final int RULE_INT=6;

     public static final int T__27=27;

+    public static final int T__63=63;

+    public static final int T__26=26;

+    public static final int RULE_ESCAPED_CHARACTER=8;

+    public static final int T__25=25;

     public static final int T__24=24;

+    public static final int T__23=23;

+    public static final int T__22=22;

+    public static final int RULE_ANY_OTHER=15;

+    public static final int T__21=21;

+    public static final int T__20=20;

+    public static final int RULE_ESCAPED_ID=5;

+    public static final int RULE_DOUBLE_QUOTED_STRING=10;

+    public static final int T__61=61;

+    public static final int T__60=60;

+    public static final int EOF=-1;

+    public static final int T__55=55;

+    public static final int T__56=56;

+    public static final int T__19=19;

+    public static final int T__57=57;

+    public static final int T__58=58;

+    public static final int T__16=16;

+    public static final int T__51=51;

+    public static final int T__52=52;

+    public static final int T__18=18;

+    public static final int T__53=53;

+    public static final int T__17=17;

+    public static final int T__54=54;

+    public static final int T__59=59;

+    public static final int RULE_SIMPLE_ID=4;

+    public static final int RULE_INT=6;

+    public static final int T__50=50;

+    public static final int T__42=42;

+    public static final int T__43=43;

+    public static final int T__40=40;

+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

+    public static final int T__41=41;

+    public static final int T__80=80;

+    public static final int T__46=46;

+    public static final int T__81=81;

+    public static final int T__47=47;

+    public static final int T__82=82;

+    public static final int T__44=44;

+    public static final int T__83=83;

+    public static final int T__45=45;

+    public static final int T__48=48;

     public static final int T__49=49;

     public static final int RULE_SINGLE_QUOTED_STRING=7;

-    public static final int T__61=61;

-    public static final int RULE_DOUBLE_QUOTED_STRING=10;

-    public static final int T__59=59;

-    public static final int T__48=48;

-    public static final int T__54=54;

-    public static final int T__34=34;

-    public static final int T__56=56;

-    public static final int RULE_ESCAPED_CHARACTER=8;

-    public static final int RULE_ML_COMMENT=12;

-    public static final int T__35=35;

-    public static final int T__78=78;

-    public static final int T__36=36;

-    public static final int T__20=20;

-    public static final int T__58=58;

-    public static final int T__79=79;

-    public static final int T__64=64;

-    public static final int RULE_SIMPLE_ID=4;

-    public static final int T__44=44;

-    public static final int T__66=66;

-    public static final int T__33=33;

-    public static final int T__22=22;

-    public static final int T__77=77;

-    public static final int T__29=29;

-    public static final int T__45=45;

-    public static final int T__55=55;

-    public static final int RULE_ESCAPED_ID=5;

-    public static final int T__84=84;

-    public static final int RULE_WS=14;

-    public static final int T__63=63;

-    public static final int T__75=75;

-    public static final int T__43=43;

-    public static final int T__31=31;

-    public static final int T__40=40;

-    public static final int EOF=-1;

-    public static final int T__53=53;

     public static final int T__85=85;

-    public static final int T__16=16;

-    public static final int T__32=32;

-    public static final int T__38=38;

-    public static final int T__76=76;

-    public static final int T__37=37;

-    public static final int RULE_ANY_OTHER=15;

-    public static final int T__82=82;

-    public static final int T__26=26;

-    public static final int T__81=81;

-    public static final int T__25=25;

     public static final int RULE_SL_COMMENT=13;

-    public static final int T__83=83;

-    public static final int T__60=60;

-    public static final int T__41=41;

+    public static final int T__84=84;

+    public static final int T__86=86;

+    public static final int RULE_ML_COMMENT=12;

+    public static final int RULE_LETTER_CHARACTER=9;

+    public static final int T__30=30;

+    public static final int T__31=31;

+    public static final int T__32=32;

     public static final int T__71=71;

-    public static final int T__18=18;

+    public static final int T__33=33;

+    public static final int T__72=72;

+    public static final int T__34=34;

+    public static final int T__35=35;

+    public static final int T__70=70;

+    public static final int T__36=36;

+    public static final int T__37=37;

+    public static final int T__38=38;

+    public static final int T__39=39;

+    public static final int RULE_WS=14;

+    public static final int T__76=76;

+    public static final int T__75=75;

+    public static final int T__74=74;

+    public static final int T__73=73;

+    public static final int T__79=79;

+    public static final int T__78=78;

+    public static final int T__77=77;

 

     // delegates

     // delegators

@@ -599,16 +599,16 @@
             else if ( (LA3_0==18) ) {

                 int LA3_2 = input.LA(2);

 

-                if ( (LA3_2==18) ) {

+                if ( (LA3_2==17||LA3_2==20) ) {

+                    alt3=1;

+                }

+                else if ( (LA3_2==18) ) {

                     int LA3_4 = input.LA(3);

 

                     if ( ((LA3_4>=RULE_SIMPLE_ID && LA3_4<=RULE_ESCAPED_ID)||LA3_4==16||LA3_4==18||(LA3_4>=27 && LA3_4<=28)||LA3_4==31||(LA3_4>=35 && LA3_4<=40)) ) {

                         alt3=1;

                     }

                 }

-                else if ( (LA3_2==17||LA3_2==20) ) {

-                    alt3=1;

-                }

             }

             switch (alt3) {

                 case 1 :

@@ -1145,12 +1145,12 @@
                     else if ( (LA10_0==40) ) {

                         int LA10_2 = input.LA(2);

 

-                        if ( (LA10_2==32) ) {

-                            alt10=1;

-                        }

-                        else if ( ((LA10_2>=RULE_SIMPLE_ID && LA10_2<=RULE_ESCAPED_ID)||LA10_2==16||LA10_2==18||(LA10_2>=27 && LA10_2<=28)||LA10_2==31||(LA10_2>=35 && LA10_2<=40)) ) {

+                        if ( ((LA10_2>=RULE_SIMPLE_ID && LA10_2<=RULE_ESCAPED_ID)||LA10_2==16||LA10_2==18||(LA10_2>=27 && LA10_2<=28)||LA10_2==31||(LA10_2>=35 && LA10_2<=40)) ) {

                             alt10=2;

                         }

+                        else if ( (LA10_2==32) ) {

+                            alt10=1;

+                        }

                         else {

                             if (state.backtracking>0) {state.failed=true; return current;}

                             NoViableAltException nvae =

@@ -1283,12 +1283,12 @@
                     	    else if ( (LA11_0==40) ) {

                     	        int LA11_2 = input.LA(2);

 

-                    	        if ( ((LA11_2>=RULE_SIMPLE_ID && LA11_2<=RULE_ESCAPED_ID)||LA11_2==16||LA11_2==18||(LA11_2>=27 && LA11_2<=28)||LA11_2==31||(LA11_2>=35 && LA11_2<=40)) ) {

-                    	            alt11=2;

-                    	        }

-                    	        else if ( (LA11_2==32) ) {

+                    	        if ( (LA11_2==32) ) {

                     	            alt11=1;

                     	        }

+                    	        else if ( ((LA11_2>=RULE_SIMPLE_ID && LA11_2<=RULE_ESCAPED_ID)||LA11_2==16||LA11_2==18||(LA11_2>=27 && LA11_2<=28)||LA11_2==31||(LA11_2>=35 && LA11_2<=40)) ) {

+                    	            alt11=2;

+                    	        }

                     	        else {

                     	            if (state.backtracking>0) {state.failed=true; return current;}

                     	            NoViableAltException nvae =

@@ -16940,11 +16940,11 @@
         state.failed=false;

         return success;

     }

-    public final boolean synpred126_InternalQVTcore() {

+    public final boolean synpred124_InternalQVTcore() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred126_InternalQVTcore_fragment(); // can never throw exception

+            synpred124_InternalQVTcore_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

@@ -16954,11 +16954,11 @@
         state.failed=false;

         return success;

     }

-    public final boolean synpred124_InternalQVTcore() {

+    public final boolean synpred126_InternalQVTcore() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred124_InternalQVTcore_fragment(); // can never throw exception

+            synpred126_InternalQVTcore_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

@@ -16983,47 +16983,47 @@
     static final String DFA15_eofS =

         "\21\uffff";

     static final String DFA15_minS =

-        "\1\24\1\4\11\24\1\4\3\24\2\uffff";

+        "\1\24\1\4\1\uffff\11\24\1\4\3\24\1\uffff";

     static final String DFA15_maxS =

-        "\1\24\1\126\15\117\2\uffff";

+        "\1\24\1\126\1\uffff\15\117\1\uffff";

     static final String DFA15_acceptS =

-        "\17\uffff\1\2\1\1";

+        "\2\uffff\1\2\15\uffff\1\1";

     static final String DFA15_specialS =

         "\21\uffff}>";

     static final String[] DFA15_transitionS = {

             "\1\1",

-            "\1\2\1\3\2\17\10\uffff\1\11\1\uffff\1\14\3\uffff\1\17\1\uffff"+

-            "\1\17\2\uffff\1\7\1\16\1\17\1\uffff\1\6\2\uffff\1\17\1\10\1"+

-            "\4\1\5\1\12\1\15\1\13\2\17\16\uffff\16\17\4\uffff\4\17\2\uffff"+

-            "\1\17\3\uffff\2\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

-            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

-            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

-            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

-            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

-            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

-            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

-            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

-            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

-            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\2\20\12\uffff\1\20\1\uffff\1\20\1\uffff\1\17\4\uffff\2\17"+

-            "\2\20\1\17\1\uffff\2\20\2\17\6\20\1\17\1\uffff\16\17\17\uffff"+

-            "\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

-            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

-            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

-            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\3\1\4\2\2\10\uffff\1\12\1\uffff\1\15\3\uffff\1\2\1\uffff"+

+            "\1\2\2\uffff\1\10\1\17\1\2\1\uffff\1\7\2\uffff\1\2\1\11\1\5"+

+            "\1\6\1\13\1\16\1\14\2\2\16\uffff\16\2\4\uffff\4\2\2\uffff\1"+

+            "\2\3\uffff\2\2",

             "",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\2\20\12\uffff\1\20\1\uffff\1\20\1\uffff\1\2\4\uffff\2\2\2"+

+            "\20\1\2\1\uffff\2\20\2\2\6\20\1\2\1\uffff\16\2\17\uffff\1\2"+

+            "\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

             ""

     };

 

@@ -17133,45 +17133,45 @@
     static final String DFA26_eofS =

         "\21\uffff";

     static final String DFA26_minS =

-        "\1\35\1\4\1\uffff\15\24\1\uffff";

+        "\1\35\1\4\15\24\2\uffff";

     static final String DFA26_maxS =

-        "\1\35\1\126\1\uffff\15\117\1\uffff";

+        "\1\35\1\126\15\117\2\uffff";

     static final String DFA26_acceptS =

-        "\2\uffff\1\2\15\uffff\1\1";

+        "\17\uffff\1\2\1\1";

     static final String DFA26_specialS =

         "\21\uffff}>";

     static final String[] DFA26_transitionS = {

             "\1\1",

-            "\1\3\1\4\2\2\10\uffff\1\12\1\uffff\1\15\5\uffff\1\2\2\uffff"+

-            "\1\10\1\17\2\2\1\7\2\uffff\1\2\1\11\1\5\1\6\1\13\1\16\1\14\2"+

-            "\2\16\uffff\16\2\4\uffff\4\2\2\uffff\1\2\3\uffff\2\2",

+            "\1\2\1\3\2\17\10\uffff\1\11\1\uffff\1\14\5\uffff\1\17\2\uffff"+

+            "\1\7\1\16\2\17\1\6\2\uffff\1\17\1\10\1\4\1\5\1\12\1\15\1\13"+

+            "\2\17\16\uffff\16\17\4\uffff\4\17\2\uffff\1\17\3\uffff\2\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\4\uffff\2\17\2\uffff\1\17\2\uffff\1\20\2\17\6\uffff"+

+            "\1\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

             "",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\4\uffff\2\2\2\uffff\1\2\2\uffff\1\20\2\2\6\uffff\1\2"+

-            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

             ""

     };

 

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/AbstractQVTcoreBaseProposalProvider.java b/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/AbstractQVTcoreBaseProposalProvider.java
index 70b95f2..6753317 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/AbstractQVTcoreBaseProposalProvider.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/AbstractQVTcoreBaseProposalProvider.java
@@ -9,7 +9,7 @@
 import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
 
 /**
- * Represents a generated, default implementation of interface {@link IProposalProvider}.
+ * Represents a generated, default implementation of superclass {@link org.eclipse.ocl.examples.xtext.essentialocl.ui.contentassist.EssentialOCLProposalProvider}.
  * Methods are dynamically dispatched on the first parameter, i.e., you can override them 
  * with a more concrete subtype. 
  */
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/antlr/internal/InternalQVTcoreBase.tokens b/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/antlr/internal/InternalQVTcoreBase.tokens
index ae6fab6..8b161a5 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/antlr/internal/InternalQVTcoreBase.tokens
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/antlr/internal/InternalQVTcoreBase.tokens
@@ -1,152 +1,152 @@
-T__42=42

-T__28=28

-T__57=57

-T__23=23

-T__80=80

-T__51=51

-RULE_LETTER_CHARACTER=9

-T__69=69

-T__47=47

-T__73=73

-T__50=50

-T__21=21

-RULE_ML_SINGLE_QUOTED_STRING=11

-T__65=65

-T__19=19

-T__72=72

-T__70=70

-T__67=67

-T__74=74

-T__39=39

-T__30=30

-T__46=46

-T__52=52

 T__68=68

-T__17=17

+T__69=69

+T__66=66

+T__67=67

+T__64=64

+T__29=29

+T__65=65

+T__28=28

 T__62=62

-RULE_INT=4

 T__27=27

+T__63=63

+T__26=26

+RULE_ESCAPED_CHARACTER=8

+T__25=25

 T__24=24

+T__23=23

+T__22=22

+RULE_ANY_OTHER=15

+T__21=21

+T__20=20

+RULE_ESCAPED_ID=7

+RULE_DOUBLE_QUOTED_STRING=10

+T__61=61

+T__60=60

+T__55=55

+T__56=56

+T__19=19

+T__57=57

+T__58=58

+T__16=16

+T__51=51

+T__52=52

+T__18=18

+T__53=53

+T__17=17

+T__54=54

+T__59=59

+RULE_SIMPLE_ID=6

+RULE_INT=4

+T__50=50

+T__42=42

+T__43=43

+T__40=40

+RULE_ML_SINGLE_QUOTED_STRING=11

+T__41=41

+T__80=80

+T__46=46

+T__81=81

+T__47=47

+T__82=82

+T__44=44

+T__83=83

+T__45=45

+T__48=48

 T__49=49

 RULE_SINGLE_QUOTED_STRING=5

-T__61=61

-RULE_DOUBLE_QUOTED_STRING=10

-T__59=59

-T__48=48

-T__54=54

-T__34=34

-T__56=56

-RULE_ESCAPED_CHARACTER=8

-RULE_ML_COMMENT=12

-T__35=35

-T__78=78

-T__36=36

-T__20=20

-T__58=58

-T__79=79

-T__64=64

-RULE_SIMPLE_ID=6

-T__44=44

-T__66=66

-T__33=33

-T__22=22

-T__77=77

-T__29=29

-T__45=45

-T__55=55

-RULE_ESCAPED_ID=7

-T__84=84

-RULE_WS=14

-T__63=63

-T__75=75

-T__43=43

-T__31=31

-T__40=40

-T__53=53

 T__85=85

-T__16=16

-T__32=32

-T__38=38

-T__76=76

-T__37=37

-RULE_ANY_OTHER=15

-T__82=82

-T__26=26

-T__81=81

-T__25=25

 RULE_SL_COMMENT=13

-T__83=83

-T__60=60

-T__41=41

+T__84=84

+RULE_ML_COMMENT=12

+RULE_LETTER_CHARACTER=9

+T__30=30

+T__31=31

+T__32=32

 T__71=71

-T__18=18

-'<'=33

-'pre'=74

-'..'=69

-'>'=32

-'transformation'=25

-'let'=79

-'else'=77

-'invalid'=72

-'-'=28

-'Integer'=46

-'String'=48

-'?'=58

+T__33=33

+T__72=72

+T__34=34

+T__35=35

+T__70=70

+T__36=36

+T__37=37

+T__38=38

+T__39=39

+RULE_WS=14

+T__76=76

+T__75=75

+T__74=74

+T__73=73

+T__79=79

+T__78=78

+T__77=77

 '>='=34

-'map'=21

-'Bag'=54

-':='=64

-'<='=35

-'='=36

-'Real'=47

+'/'=30

 'Sequence'=55

-'::'=68

-'uses'=26

-'Boolean'=45

-'xor'=40

-'{'=59

-'OclVoid'=52

 'then'=76

-'OrderedSet'=57

-':'=67

-'OclAny'=50

-'Tuple'=44

-'.'=42

-'<>'=37

-'*'=27

-'Set'=53

-'imports'=19

-'}'=61

-'->'=43

-'self'=81

+'enforce'=17

+':='=64

+'Real'=47

+'>'=32

+'Integer'=46

 ';'=63

+'Boolean'=45

+'<>'=37

+'uses'=26

+'transformation'=25

+'OclInvalid'=51

+'+'=31

+'pre'=74

+'.'=42

+'imports'=19

+'library'=20

+'import'=18

+'Set'=53

 'true'=83

-'default'=82

-']'=71

-'false'=84

-','=62

-'endif'=78

-'refines'=24

+'else'=77

+'let'=79

+'and'=38

+'{'=59

+'check'=16

+'?'=58

+'OclVoid'=52

+'if'=75

+':'=67

+'('=65

 'not'=29

+'-'=28

+','=62

+'default'=82

+'in'=80

+']'=71

 'query'=22

+'..'=69

+'|'=60

+'OrderedSet'=57

+'UnlimitedNatural'=49

+'null'=73

+'Tuple'=44

+'Collection'=56

+'String'=48

+'='=36

+'map'=21

+'@'=85

+'::'=68

+'Bag'=54

+')'=66

+'xor'=40

+'->'=43

+'}'=61

+'refines'=24

+'<='=35

+'false'=84

+'<'=33

+'realize'=23

+'invalid'=72

+'OclAny'=50

 '['=70

 'or'=39

-'/'=30

-'and'=38

+'*'=27

 'implies'=41

-'Collection'=56

-'realize'=23

-'|'=60

-')'=66

-'OclInvalid'=51

-'@'=85

-'import'=18

-'if'=75

-'('=65

-'enforce'=17

-'UnlimitedNatural'=49

-'check'=16

-'in'=80

-'null'=73

-'+'=31

-'library'=20

+'self'=81

+'endif'=78

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/antlr/internal/InternalQVTcoreBaseLexer.java b/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/antlr/internal/InternalQVTcoreBaseLexer.java
index 65c781b..b8ff7a3 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/antlr/internal/InternalQVTcoreBaseLexer.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/antlr/internal/InternalQVTcoreBaseLexer.java
@@ -12,89 +12,89 @@
 
 @SuppressWarnings("all")
 public class InternalQVTcoreBaseLexer extends Lexer {
-    public static final int T__42=42;
-    public static final int T__28=28;
-    public static final int T__57=57;
-    public static final int T__23=23;
-    public static final int T__51=51;
-    public static final int T__80=80;
-    public static final int RULE_LETTER_CHARACTER=9;
-    public static final int T__47=47;
-    public static final int T__69=69;
-    public static final int T__73=73;
-    public static final int T__50=50;
-    public static final int T__21=21;
-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
-    public static final int T__19=19;
-    public static final int T__65=65;
-    public static final int T__72=72;
-    public static final int T__70=70;
-    public static final int T__67=67;
-    public static final int T__74=74;
-    public static final int T__39=39;
-    public static final int T__30=30;
-    public static final int T__46=46;
-    public static final int T__52=52;
     public static final int T__68=68;
-    public static final int T__17=17;
-    public static final int T__62=62;
-    public static final int RULE_INT=4;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__29=29;
+    public static final int T__64=64;
+    public static final int T__28=28;
+    public static final int T__65=65;
     public static final int T__27=27;
+    public static final int T__62=62;
+    public static final int T__26=26;
+    public static final int T__63=63;
+    public static final int T__25=25;
+    public static final int RULE_ESCAPED_CHARACTER=8;
     public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=15;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int RULE_ESCAPED_ID=7;
+    public static final int RULE_DOUBLE_QUOTED_STRING=10;
+    public static final int T__61=61;
+    public static final int EOF=-1;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__19=19;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__16=16;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__18=18;
+    public static final int T__53=53;
+    public static final int T__17=17;
+    public static final int T__54=54;
+    public static final int T__59=59;
+    public static final int RULE_SIMPLE_ID=6;
+    public static final int RULE_INT=4;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
+    public static final int T__46=46;
+    public static final int T__80=80;
+    public static final int T__47=47;
+    public static final int T__81=81;
+    public static final int T__44=44;
+    public static final int T__82=82;
+    public static final int T__45=45;
+    public static final int T__83=83;
+    public static final int T__48=48;
     public static final int T__49=49;
     public static final int RULE_SINGLE_QUOTED_STRING=5;
-    public static final int T__61=61;
-    public static final int RULE_DOUBLE_QUOTED_STRING=10;
-    public static final int T__59=59;
-    public static final int T__48=48;
-    public static final int T__54=54;
-    public static final int T__34=34;
-    public static final int T__56=56;
-    public static final int RULE_ESCAPED_CHARACTER=8;
-    public static final int RULE_ML_COMMENT=12;
-    public static final int T__35=35;
-    public static final int T__78=78;
-    public static final int T__36=36;
-    public static final int T__20=20;
-    public static final int T__58=58;
-    public static final int T__79=79;
-    public static final int T__64=64;
-    public static final int RULE_SIMPLE_ID=6;
-    public static final int T__44=44;
-    public static final int T__66=66;
-    public static final int T__33=33;
-    public static final int T__22=22;
-    public static final int T__77=77;
-    public static final int T__55=55;
-    public static final int T__45=45;
-    public static final int T__29=29;
-    public static final int RULE_ESCAPED_ID=7;
-    public static final int T__84=84;
-    public static final int T__63=63;
-    public static final int RULE_WS=14;
-    public static final int T__43=43;
-    public static final int T__75=75;
-    public static final int T__31=31;
-    public static final int T__40=40;
-    public static final int EOF=-1;
-    public static final int T__53=53;
-    public static final int T__32=32;
-    public static final int T__16=16;
     public static final int T__85=85;
-    public static final int T__38=38;
-    public static final int T__37=37;
-    public static final int T__76=76;
-    public static final int T__26=26;
-    public static final int T__82=82;
-    public static final int RULE_ANY_OTHER=15;
-    public static final int T__25=25;
-    public static final int T__81=81;
+    public static final int T__84=84;
     public static final int RULE_SL_COMMENT=13;
-    public static final int T__60=60;
-    public static final int T__83=83;
-    public static final int T__41=41;
-    public static final int T__18=18;
+    public static final int RULE_LETTER_CHARACTER=9;
+    public static final int RULE_ML_COMMENT=12;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
     public static final int T__71=71;
+    public static final int T__34=34;
+    public static final int T__72=72;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__70=70;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int T__76=76;
+    public static final int RULE_WS=14;
+    public static final int T__75=75;
+    public static final int T__74=74;
+    public static final int T__73=73;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__77=77;
 
     // delegates
     // delegators
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/antlr/internal/InternalQVTcoreBaseParser.java b/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/antlr/internal/InternalQVTcoreBaseParser.java
index 7dffaf2..76ef6af 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/antlr/internal/InternalQVTcoreBaseParser.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcorebase.ui/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/ui/contentassist/antlr/internal/InternalQVTcoreBaseParser.java
@@ -25,89 +25,89 @@
     public static final String[] tokenNames = new String[] {

         "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_SINGLE_QUOTED_STRING", "RULE_SIMPLE_ID", "RULE_ESCAPED_ID", "RULE_ESCAPED_CHARACTER", "RULE_LETTER_CHARACTER", "RULE_DOUBLE_QUOTED_STRING", "RULE_ML_SINGLE_QUOTED_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'check'", "'enforce'", "'import'", "'imports'", "'library'", "'map'", "'query'", "'realize'", "'refines'", "'transformation'", "'uses'", "'*'", "'-'", "'not'", "'/'", "'+'", "'>'", "'<'", "'>='", "'<='", "'='", "'<>'", "'and'", "'or'", "'xor'", "'implies'", "'.'", "'->'", "'Tuple'", "'Boolean'", "'Integer'", "'Real'", "'String'", "'UnlimitedNatural'", "'OclAny'", "'OclInvalid'", "'OclVoid'", "'Set'", "'Bag'", "'Sequence'", "'Collection'", "'OrderedSet'", "'?'", "'{'", "'|'", "'}'", "','", "';'", "':='", "'('", "')'", "':'", "'::'", "'..'", "'['", "']'", "'invalid'", "'null'", "'pre'", "'if'", "'then'", "'else'", "'endif'", "'let'", "'in'", "'self'", "'default'", "'true'", "'false'", "'@'"

     };

-    public static final int T__42=42;

-    public static final int T__28=28;

-    public static final int T__57=57;

-    public static final int T__23=23;

-    public static final int T__80=80;

-    public static final int T__51=51;

-    public static final int RULE_LETTER_CHARACTER=9;

-    public static final int T__69=69;

-    public static final int T__47=47;

-    public static final int T__73=73;

-    public static final int T__50=50;

-    public static final int T__21=21;

-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

-    public static final int T__65=65;

-    public static final int T__19=19;

-    public static final int T__72=72;

-    public static final int T__70=70;

-    public static final int T__67=67;

-    public static final int T__74=74;

-    public static final int T__39=39;

-    public static final int T__30=30;

-    public static final int T__46=46;

-    public static final int T__52=52;

     public static final int T__68=68;

-    public static final int T__17=17;

+    public static final int T__69=69;

+    public static final int T__66=66;

+    public static final int T__67=67;

+    public static final int T__64=64;

+    public static final int T__29=29;

+    public static final int T__65=65;

+    public static final int T__28=28;

     public static final int T__62=62;

-    public static final int RULE_INT=4;

     public static final int T__27=27;

+    public static final int T__63=63;

+    public static final int T__26=26;

+    public static final int RULE_ESCAPED_CHARACTER=8;

+    public static final int T__25=25;

     public static final int T__24=24;

+    public static final int T__23=23;

+    public static final int T__22=22;

+    public static final int RULE_ANY_OTHER=15;

+    public static final int T__21=21;

+    public static final int T__20=20;

+    public static final int RULE_ESCAPED_ID=7;

+    public static final int RULE_DOUBLE_QUOTED_STRING=10;

+    public static final int T__61=61;

+    public static final int T__60=60;

+    public static final int EOF=-1;

+    public static final int T__55=55;

+    public static final int T__56=56;

+    public static final int T__19=19;

+    public static final int T__57=57;

+    public static final int T__58=58;

+    public static final int T__16=16;

+    public static final int T__51=51;

+    public static final int T__52=52;

+    public static final int T__18=18;

+    public static final int T__53=53;

+    public static final int T__17=17;

+    public static final int T__54=54;

+    public static final int T__59=59;

+    public static final int RULE_SIMPLE_ID=6;

+    public static final int RULE_INT=4;

+    public static final int T__50=50;

+    public static final int T__42=42;

+    public static final int T__43=43;

+    public static final int T__40=40;

+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

+    public static final int T__41=41;

+    public static final int T__80=80;

+    public static final int T__46=46;

+    public static final int T__81=81;

+    public static final int T__47=47;

+    public static final int T__82=82;

+    public static final int T__44=44;

+    public static final int T__83=83;

+    public static final int T__45=45;

+    public static final int T__48=48;

     public static final int T__49=49;

     public static final int RULE_SINGLE_QUOTED_STRING=5;

-    public static final int T__61=61;

-    public static final int RULE_DOUBLE_QUOTED_STRING=10;

-    public static final int T__59=59;

-    public static final int T__48=48;

-    public static final int T__54=54;

-    public static final int T__34=34;

-    public static final int T__56=56;

-    public static final int RULE_ESCAPED_CHARACTER=8;

-    public static final int RULE_ML_COMMENT=12;

-    public static final int T__35=35;

-    public static final int T__78=78;

-    public static final int T__36=36;

-    public static final int T__20=20;

-    public static final int T__58=58;

-    public static final int T__79=79;

-    public static final int T__64=64;

-    public static final int RULE_SIMPLE_ID=6;

-    public static final int T__44=44;

-    public static final int T__66=66;

-    public static final int T__33=33;

-    public static final int T__22=22;

-    public static final int T__77=77;

-    public static final int T__29=29;

-    public static final int T__45=45;

-    public static final int T__55=55;

-    public static final int RULE_ESCAPED_ID=7;

-    public static final int T__84=84;

-    public static final int RULE_WS=14;

-    public static final int T__63=63;

-    public static final int T__75=75;

-    public static final int T__43=43;

-    public static final int T__31=31;

-    public static final int T__40=40;

-    public static final int EOF=-1;

-    public static final int T__53=53;

     public static final int T__85=85;

-    public static final int T__16=16;

-    public static final int T__32=32;

-    public static final int T__38=38;

-    public static final int T__76=76;

-    public static final int T__37=37;

-    public static final int RULE_ANY_OTHER=15;

-    public static final int T__82=82;

-    public static final int T__26=26;

-    public static final int T__81=81;

-    public static final int T__25=25;

     public static final int RULE_SL_COMMENT=13;

-    public static final int T__83=83;

-    public static final int T__60=60;

-    public static final int T__41=41;

+    public static final int T__84=84;

+    public static final int RULE_ML_COMMENT=12;

+    public static final int RULE_LETTER_CHARACTER=9;

+    public static final int T__30=30;

+    public static final int T__31=31;

+    public static final int T__32=32;

     public static final int T__71=71;

-    public static final int T__18=18;

+    public static final int T__33=33;

+    public static final int T__72=72;

+    public static final int T__34=34;

+    public static final int T__35=35;

+    public static final int T__70=70;

+    public static final int T__36=36;

+    public static final int T__37=37;

+    public static final int T__38=38;

+    public static final int T__39=39;

+    public static final int RULE_WS=14;

+    public static final int T__76=76;

+    public static final int T__75=75;

+    public static final int T__74=74;

+    public static final int T__73=73;

+    public static final int T__79=79;

+    public static final int T__78=78;

+    public static final int T__77=77;

 

     // delegates

     // delegators

@@ -6164,12 +6164,12 @@
             else if ( (LA3_0==23) ) {

                 int LA3_2 = input.LA(2);

 

-                if ( ((LA3_2>=RULE_SIMPLE_ID && LA3_2<=RULE_ESCAPED_ID)||(LA3_2>=16 && LA3_2<=26)) ) {

-                    alt3=2;

-                }

-                else if ( (LA3_2==67) ) {

+                if ( (LA3_2==67) ) {

                     alt3=1;

                 }

+                else if ( ((LA3_2>=RULE_SIMPLE_ID && LA3_2<=RULE_ESCAPED_ID)||(LA3_2>=16 && LA3_2<=26)) ) {

+                    alt3=2;

+                }

                 else {

                     if (state.backtracking>0) {state.failed=true; return ;}

                     NoViableAltException nvae =

@@ -36988,11 +36988,11 @@
         state.failed=false;

         return success;

     }

-    public final boolean synpred70_InternalQVTcoreBase() {

+    public final boolean synpred71_InternalQVTcoreBase() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred70_InternalQVTcoreBase_fragment(); // can never throw exception

+            synpred71_InternalQVTcoreBase_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

@@ -37002,11 +37002,11 @@
         state.failed=false;

         return success;

     }

-    public final boolean synpred71_InternalQVTcoreBase() {

+    public final boolean synpred70_InternalQVTcoreBase() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred71_InternalQVTcoreBase_fragment(); // can never throw exception

+            synpred70_InternalQVTcoreBase_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

@@ -37029,45 +37029,45 @@
     static final String DFA2_eofS =

         "\21\uffff";

     static final String DFA2_minS =

-        "\1\73\1\4\1\uffff\11\33\1\6\3\33\1\uffff";

+        "\1\73\1\4\11\33\1\6\3\33\2\uffff";

     static final String DFA2_maxS =

-        "\1\73\1\124\1\uffff\15\125\1\uffff";

+        "\1\73\1\124\15\125\2\uffff";

     static final String DFA2_acceptS =

-        "\2\uffff\1\2\15\uffff\1\1";

+        "\17\uffff\1\2\1\1";

     static final String DFA2_specialS =

         "\21\uffff}>";

     static final String[] DFA2_transitionS = {

             "\1\1",

-            "\2\2\1\3\1\4\10\uffff\1\5\1\6\1\7\1\10\1\11\1\12\1\13\1\14"+

-            "\1\15\1\16\1\17\3\2\16\uffff\16\2\3\uffff\1\2\3\uffff\1\2\6"+

-            "\uffff\2\2\1\uffff\1\2\3\uffff\1\2\1\uffff\4\2",

+            "\2\17\1\2\1\3\10\uffff\1\4\1\5\1\6\1\7\1\10\1\11\1\12\1\13"+

+            "\1\14\1\15\1\16\3\17\16\uffff\16\17\3\uffff\1\17\3\uffff\1\17"+

+            "\6\uffff\2\17\1\uffff\1\17\3\uffff\1\17\1\uffff\4\17",

+            "\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff\3\17\1\uffff\1\20"+

+            "\1\17\1\uffff\1\17\16\uffff\1\17",

+            "\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff\3\17\1\uffff\1\20"+

+            "\1\17\1\uffff\1\17\16\uffff\1\17",

+            "\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff\3\17\1\uffff\1\20"+

+            "\1\17\1\uffff\1\17\16\uffff\1\17",

+            "\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff\3\17\1\uffff\1\20"+

+            "\1\17\1\uffff\1\17\16\uffff\1\17",

+            "\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff\3\17\1\uffff\1\20"+

+            "\1\17\1\uffff\1\17\16\uffff\1\17",

+            "\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff\3\17\1\uffff\1\20"+

+            "\1\17\1\uffff\1\17\16\uffff\1\17",

+            "\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff\3\17\1\uffff\1\20"+

+            "\1\17\1\uffff\1\17\16\uffff\1\17",

+            "\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff\3\17\1\uffff\1\20"+

+            "\1\17\1\uffff\1\17\16\uffff\1\17",

+            "\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff\3\17\1\uffff\1\20"+

+            "\1\17\1\uffff\1\17\16\uffff\1\17",

+            "\2\20\10\uffff\13\20\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff"+

+            "\3\17\1\uffff\1\20\1\17\1\uffff\1\17\16\uffff\1\17",

+            "\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff\3\17\1\uffff\1\20"+

+            "\1\17\1\uffff\1\17\16\uffff\1\17",

+            "\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff\3\17\1\uffff\1\20"+

+            "\1\17\1\uffff\1\17\16\uffff\1\17",

+            "\2\17\1\uffff\16\17\17\uffff\1\17\3\uffff\3\17\1\uffff\1\20"+

+            "\1\17\1\uffff\1\17\16\uffff\1\17",

             "",

-            "\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff\3\2\1\uffff\1\20\1"+

-            "\2\1\uffff\1\2\16\uffff\1\2",

-            "\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff\3\2\1\uffff\1\20\1"+

-            "\2\1\uffff\1\2\16\uffff\1\2",

-            "\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff\3\2\1\uffff\1\20\1"+

-            "\2\1\uffff\1\2\16\uffff\1\2",

-            "\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff\3\2\1\uffff\1\20\1"+

-            "\2\1\uffff\1\2\16\uffff\1\2",

-            "\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff\3\2\1\uffff\1\20\1"+

-            "\2\1\uffff\1\2\16\uffff\1\2",

-            "\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff\3\2\1\uffff\1\20\1"+

-            "\2\1\uffff\1\2\16\uffff\1\2",

-            "\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff\3\2\1\uffff\1\20\1"+

-            "\2\1\uffff\1\2\16\uffff\1\2",

-            "\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff\3\2\1\uffff\1\20\1"+

-            "\2\1\uffff\1\2\16\uffff\1\2",

-            "\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff\3\2\1\uffff\1\20\1"+

-            "\2\1\uffff\1\2\16\uffff\1\2",

-            "\2\20\10\uffff\13\20\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff"+

-            "\3\2\1\uffff\1\20\1\2\1\uffff\1\2\16\uffff\1\2",

-            "\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff\3\2\1\uffff\1\20\1"+

-            "\2\1\uffff\1\2\16\uffff\1\2",

-            "\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff\3\2\1\uffff\1\20\1"+

-            "\2\1\uffff\1\2\16\uffff\1\2",

-            "\2\2\1\uffff\16\2\17\uffff\1\2\3\uffff\3\2\1\uffff\1\20\1"+

-            "\2\1\uffff\1\2\16\uffff\1\2",

             ""

     };

 

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/QVTcoreBase.xmi b/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/QVTcoreBase.xmi
deleted file mode 100644
index 34801ca..0000000
--- a/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/QVTcoreBase.xmi
+++ /dev/null
@@ -1,1613 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>

-<xmi:XMI xmi:version="2.0" 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" xmlns:xtext="http://www.eclipse.org/2008/Xtext">

-  <xtext:Grammar name="org.eclipse.qvtd.xtext.qvtcorebase.QVTcoreBase" usedGrammars="/1">

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">

-      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="base">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/BaseCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="essentialocl">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="pivot">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/Pivot#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtbase">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTbase#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtcorebase">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTcoreBase#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#/"/>

-    </metamodelDeclarations>

-    <rules xsi:type="xtext:ParserRule" name="BottomPatternCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//BottomPatternCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Keyword" value="{"/>

-          <elements xsi:type="xtext:Alternatives">

-            <elements xsi:type="xtext:Assignment" feature="unrealizedVariables" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.11"/>

-            </elements>

-            <elements xsi:type="xtext:Assignment" feature="realizedVariables" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Assignment" feature="unrealizedVariables" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.11"/>

-              </elements>

-              <elements xsi:type="xtext:Assignment" feature="realizedVariables" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/>

-              </elements>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="|"/>

-          <elements xsi:type="xtext:Assignment" cardinality="*" feature="constraints" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="}"/>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/0/@metamodelDeclarations.6">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//BottomPatternCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="{"/>

-          <elements xsi:type="xtext:Assignment" cardinality="*" feature="constraints" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="}"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="AssignmentCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//AssignmentCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="default" operator="?=">

-          <terminal xsi:type="xtext:Keyword" value="default"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="target" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":="/>

-          <elements xsi:type="xtext:Assignment" feature="initialiser" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="DirectionCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DirectionCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/0/@metamodelDeclarations.6">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DirectionCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="imports"/>

-          <elements xsi:type="xtext:Assignment" feature="imports" operator="+=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/0/@metamodelDeclarations.3">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-            </terminal>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="imports" operator="+=">

-              <terminal xsi:type="xtext:CrossReference">

-                <type metamodel="/0/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>

-                </type>

-                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-              </terminal>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="uses"/>

-          <elements xsi:type="xtext:Assignment" feature="uses" operator="+=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/0/@metamodelDeclarations.5">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBase#//CoreDomain"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-            </terminal>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="uses" operator="+=">

-              <terminal xsi:type="xtext:CrossReference">

-                <type metamodel="/0/@metamodelDeclarations.5">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBase#//CoreDomain"/>

-                </type>

-                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-              </terminal>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="GuardPatternCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//GuardPatternCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Assignment" feature="unrealizedVariables" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.11"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="unrealizedVariables" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.11"/>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="|"/>

-          <elements xsi:type="xtext:Assignment" cardinality="*" feature="constraints" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/0/@metamodelDeclarations.6">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//GuardPatternCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Assignment" cardinality="*" feature="constraints" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ImportCS">

-      <type metamodel="/0/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//ImportCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="import"/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.22"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=":"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="pathName" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.35"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="all" operator="?=">

-            <terminal xsi:type="xtext:Keyword" value="::"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="*"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LibraryCS">

-      <type metamodel="/0/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//LibraryCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="library"/>

-        <elements xsi:type="xtext:Assignment" feature="package" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/0/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.17"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NamedDomainCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DomainCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="check" operator="?=">

-          <terminal xsi:type="xtext:Keyword" value="check"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="enforce" operator="?=">

-          <terminal xsi:type="xtext:Keyword" value="enforce"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="direction" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/0/@metamodelDeclarations.4">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTbase#//TypedModel"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="guardPattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="bottomPattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.0"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ParamDeclarationCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//ParamDeclarationCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="QueryCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//QueryCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="query"/>

-        <elements xsi:type="xtext:Assignment" feature="pathName" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="("/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="inputParamDeclaration" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="inputParamDeclaration" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=")"/>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-        </elements>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value=";"/>

-          <elements xsi:type="xtext:Group">

-            <elements xsi:type="xtext:Keyword" value="{"/>

-            <elements xsi:type="xtext:Assignment" feature="expression" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-            </elements>

-            <elements xsi:type="xtext:Keyword" value="}"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ScopeNameCS">

-      <type metamodel="/0/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathNameCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.33"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="::"/>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.34"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="::"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TransformationCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//TransformationCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="transformation"/>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="pathName" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.31"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Assignment" feature="directions" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=";"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnrealizedVariableCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//UnrealizedVariableCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="RealizedVariableCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//RealizedVariableCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="realize"/>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnnamedDomainCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DomainCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/0/@metamodelDeclarations.6">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DomainCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="guardPattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="bottomPattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.0"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnrestrictedName">

-      <type metamodel="/0/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.28"/>

-        <elements xsi:type="xtext:Keyword" value="check"/>

-        <elements xsi:type="xtext:Keyword" value="enforce"/>

-        <elements xsi:type="xtext:Keyword" value="import"/>

-        <elements xsi:type="xtext:Keyword" value="imports"/>

-        <elements xsi:type="xtext:Keyword" value="library"/>

-        <elements xsi:type="xtext:Keyword" value="map"/>

-        <elements xsi:type="xtext:Keyword" value="query"/>

-        <elements xsi:type="xtext:Keyword" value="realize"/>

-        <elements xsi:type="xtext:Keyword" value="refines"/>

-        <elements xsi:type="xtext:Keyword" value="transformation"/>

-        <elements xsi:type="xtext:Keyword" value="uses"/>

-      </alternatives>

-    </rules>

-  </xtext:Grammar>

-  <xtext:Grammar name="org.eclipse.ocl.examples.xtext.essentialocl.EssentialOCL" definesHiddenTokens="true" hiddenTokens="/1/@rules.15 /1/@rules.13 /1/@rules.14">

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">

-      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="pivot">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/Pivot#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="base">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/BaseCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#/"/>

-    </metamodelDeclarations>

-    <rules xsi:type="xtext:ParserRule" name="Model">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ContextCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="ownedExpression" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ESCAPED_CHARACTER" fragment="true">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="\"/>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="b"/>

-          <elements xsi:type="xtext:Keyword" value="t"/>

-          <elements xsi:type="xtext:Keyword" value="n"/>

-          <elements xsi:type="xtext:Keyword" value="f"/>

-          <elements xsi:type="xtext:Keyword" value="r"/>

-          <elements xsi:type="xtext:Keyword" value="u"/>

-          <elements xsi:type="xtext:Keyword" value="&quot;"/>

-          <elements xsi:type="xtext:Keyword" value="'"/>

-          <elements xsi:type="xtext:Keyword" value="\"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="LETTER_CHARACTER" fragment="true">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:CharacterRange">

-          <left value="a"/>

-          <right value="z"/>

-        </elements>

-        <elements xsi:type="xtext:CharacterRange">

-          <left value="A"/>

-          <right value="Z"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="_"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="DOUBLE_QUOTED_STRING">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="&quot;"/>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>

-          <elements xsi:type="xtext:NegatedToken">

-            <terminal xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Keyword" value="\"/>

-              <elements xsi:type="xtext:Keyword" value="&quot;"/>

-            </terminal>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="&quot;"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="SINGLE_QUOTED_STRING">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="'"/>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>

-          <elements xsi:type="xtext:NegatedToken">

-            <terminal xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Keyword" value="\"/>

-              <elements xsi:type="xtext:Keyword" value="'"/>

-            </terminal>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="'"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ML_SINGLE_QUOTED_STRING">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="/'"/>

-        <elements xsi:type="xtext:UntilToken">

-          <terminal xsi:type="xtext:Keyword" value="'/"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="SIMPLE_ID">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>

-          <elements xsi:type="xtext:CharacterRange">

-            <left value="0"/>

-            <right value="9"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ESCAPED_ID">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="_"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.4"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ID">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.6"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.7"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="INT">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:CharacterRange" cardinality="+">

-        <left value="0"/>

-        <right value="9"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LOWER">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.9"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UPPER">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.9"/>

-        <elements xsi:type="xtext:Keyword" value="*"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NUMBER_LITERAL">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BigNumber"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.9"/>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="/*"/>

-        <elements xsi:type="xtext:UntilToken">

-          <terminal xsi:type="xtext:Keyword" value="*/"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="--"/>

-        <elements xsi:type="xtext:NegatedToken" cardinality="*">

-          <terminal xsi:type="xtext:Alternatives">

-            <elements xsi:type="xtext:Keyword" value="&#xA;"/>

-            <elements xsi:type="xtext:Keyword" value="&#xD;"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>

-          <elements xsi:type="xtext:Keyword" value="&#xA;"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="WS">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives" cardinality="+">

-        <elements xsi:type="xtext:Keyword" value=" "/>

-        <elements xsi:type="xtext:Keyword" value="&#x9;"/>

-        <elements xsi:type="xtext:Keyword" value="&#xD;"/>

-        <elements xsi:type="xtext:Keyword" value="&#xA;"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Wildcard"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="URI">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.4"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLReservedKeyword">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Keyword" value="and"/>

-        <elements xsi:type="xtext:Keyword" value="else"/>

-        <elements xsi:type="xtext:Keyword" value="endif"/>

-        <elements xsi:type="xtext:Keyword" value="if"/>

-        <elements xsi:type="xtext:Keyword" value="implies"/>

-        <elements xsi:type="xtext:Keyword" value="in"/>

-        <elements xsi:type="xtext:Keyword" value="let"/>

-        <elements xsi:type="xtext:Keyword" value="not"/>

-        <elements xsi:type="xtext:Keyword" value="or"/>

-        <elements xsi:type="xtext:Keyword" value="then"/>

-        <elements xsi:type="xtext:Keyword" value="xor"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLUnaryOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="-"/>

-          <elements xsi:type="xtext:Keyword" value="not"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLInfixOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BinaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="*"/>

-          <elements xsi:type="xtext:Keyword" value="/"/>

-          <elements xsi:type="xtext:Keyword" value="+"/>

-          <elements xsi:type="xtext:Keyword" value="-"/>

-          <elements xsi:type="xtext:Keyword" value=">"/>

-          <elements xsi:type="xtext:Keyword" value="&lt;"/>

-          <elements xsi:type="xtext:Keyword" value=">="/>

-          <elements xsi:type="xtext:Keyword" value="&lt;="/>

-          <elements xsi:type="xtext:Keyword" value="="/>

-          <elements xsi:type="xtext:Keyword" value="&lt;>"/>

-          <elements xsi:type="xtext:Keyword" value="and"/>

-          <elements xsi:type="xtext:Keyword" value="or"/>

-          <elements xsi:type="xtext:Keyword" value="xor"/>

-          <elements xsi:type="xtext:Keyword" value="implies"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLNavigationOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigationOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="."/>

-          <elements xsi:type="xtext:Keyword" value="->"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="Identifier">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.8"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="StringLiteral">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.4"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="BinaryOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BinaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.25"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.26"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="InfixOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BinaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.20"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigationOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigationOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.21"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnaryOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.19"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLUnrestrictedName">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.22"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnrestrictedName">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.28"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLUnreservedName">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.39"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.37"/>

-        <elements xsi:type="xtext:Keyword" value="Tuple"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnreservedName">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.30"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PathNameCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathNameCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.33"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value="::"/>

-          <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.34"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="FirstPathElementCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="element" operator="=">

-        <terminal xsi:type="xtext:CrossReference">

-          <type metamodel="/1/@metamodelDeclarations.1">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement"/>

-          </type>

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NextPathElementCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="element" operator="=">

-        <terminal xsi:type="xtext:CrossReference">

-          <type metamodel="/1/@metamodelDeclarations.1">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement"/>

-          </type>

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.31"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="URIPathNameCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathNameCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.36"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value="::"/>

-          <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.34"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="URIFirstPathElementCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Assignment" feature="element" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/1/@metamodelDeclarations.1">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/1/@metamodelDeclarations.2">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementWithURICS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="element" operator="=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/1/@metamodelDeclarations.1">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Namespace"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.17"/>

-            </terminal>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveTypeIdentifier">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Keyword" value="Boolean"/>

-        <elements xsi:type="xtext:Keyword" value="Integer"/>

-        <elements xsi:type="xtext:Keyword" value="Real"/>

-        <elements xsi:type="xtext:Keyword" value="String"/>

-        <elements xsi:type="xtext:Keyword" value="UnlimitedNatural"/>

-        <elements xsi:type="xtext:Keyword" value="OclAny"/>

-        <elements xsi:type="xtext:Keyword" value="OclInvalid"/>

-        <elements xsi:type="xtext:Keyword" value="OclVoid"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveTypeCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PrimitiveTypeRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.37"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionTypeIdentifier">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Keyword" value="Set"/>

-        <elements xsi:type="xtext:Keyword" value="Bag"/>

-        <elements xsi:type="xtext:Keyword" value="Sequence"/>

-        <elements xsi:type="xtext:Keyword" value="Collection"/>

-        <elements xsi:type="xtext:Keyword" value="OrderedSet"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionTypeCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//CollectionTypeCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.39"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MultiplicityBoundsCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//MultiplicityBoundsCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="lowerBound" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.10"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=".."/>

-          <elements xsi:type="xtext:Assignment" feature="upperBound" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.11"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MultiplicityCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//MultiplicityCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="["/>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.41"/>

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.43"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="]"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MultiplicityStringCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//MultiplicityStringCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="stringBounds" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="*"/>

-          <elements xsi:type="xtext:Keyword" value="+"/>

-          <elements xsi:type="xtext:Keyword" value="?"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TupleTypeCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TupleTypeCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="Tuple"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.45"/>

-            </elements>

-            <elements xsi:type="xtext:Group" cardinality="*">

-              <elements xsi:type="xtext:Keyword" value=","/>

-              <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.45"/>

-              </elements>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TuplePartCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TuplePartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//CollectionLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.40"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.47"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.47"/>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionLiteralPartCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//CollectionLiteralPartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="expressionCS" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=".."/>

-          <elements xsi:type="xtext:Assignment" feature="lastExpressionCS" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ConstructorPartCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ConstructorPartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="property" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/1/@metamodelDeclarations.1">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//PrimitiveLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.52"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.53"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.54"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.55"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.56"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.57"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TupleLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TupleLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="Tuple"/>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.51"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value=","/>

-          <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.51"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TupleLiteralPartCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TupleLiteralPartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NumberLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NumberLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.12"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="StringLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//StringLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" cardinality="+" feature="name" operator="+=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.23"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="BooleanLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BooleanLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="true"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="false"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnlimitedNaturalLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnlimitedNaturalLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/1/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnlimitedNaturalLiteralExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="*"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="InvalidLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InvalidLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/1/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InvalidLiteralExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="invalid"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NullLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NullLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/1/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NullLiteralExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="null"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeLiteralCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.38"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.40"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.44"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeLiteralWithMultiplicityCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.58"/>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="multiplicity" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.42"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TypeLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.59"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeNameExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TypeNameExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="pathName" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.32"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeExpCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.61"/>

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.58"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="multiplicity" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.42"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.64"/>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Action" feature="ownedExpression" operator="+=">

-              <type metamodel="/1/@metamodelDeclarations.3">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InfixExpCS"/>

-              </type>

-            </elements>

-            <elements xsi:type="xtext:Assignment" feature="ownedOperator" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.24"/>

-            </elements>

-            <elements xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Group">

-                <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.64"/>

-                </elements>

-                <elements xsi:type="xtext:Group" cardinality="*">

-                  <elements xsi:type="xtext:Assignment" feature="ownedOperator" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.24"/>

-                  </elements>

-                  <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.64"/>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Group" cardinality="?">

-                  <elements xsi:type="xtext:Assignment" feature="ownedOperator" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.24"/>

-                  </elements>

-                  <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.72"/>

-                  </elements>

-                </elements>

-              </elements>

-              <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.72"/>

-              </elements>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/1/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//PrefixExpCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" cardinality="+" feature="ownedOperator" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.27"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.72"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.72"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrefixedExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/1/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//PrefixExpCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" cardinality="+" feature="ownedOperator" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.27"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.65"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.65"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimaryExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.74"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.71"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.75"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.49"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.50"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.46"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.60"/>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/1/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NameExpCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="pathName" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.32"/>

-          </elements>

-          <elements xsi:type="xtext:Alternatives">

-            <elements xsi:type="xtext:Group">

-              <elements xsi:type="xtext:Action" feature="nameExp" operator="=">

-                <type metamodel="/1/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//IndexExpCS"/>

-                </type>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="["/>

-              <elements xsi:type="xtext:Assignment" feature="firstIndexes" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-              </elements>

-              <elements xsi:type="xtext:Group" cardinality="*">

-                <elements xsi:type="xtext:Keyword" value=","/>

-                <elements xsi:type="xtext:Assignment" feature="firstIndexes" operator="+=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-                </elements>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="]"/>

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Keyword" value="["/>

-                <elements xsi:type="xtext:Assignment" feature="secondIndexes" operator="+=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-                </elements>

-                <elements xsi:type="xtext:Group" cardinality="*">

-                  <elements xsi:type="xtext:Keyword" value=","/>

-                  <elements xsi:type="xtext:Assignment" feature="secondIndexes" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="]"/>

-              </elements>

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Assignment" feature="atPre" operator="?=">

-                  <terminal xsi:type="xtext:Keyword" value="@"/>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="pre"/>

-              </elements>

-            </elements>

-            <elements xsi:type="xtext:Group">

-              <elements xsi:type="xtext:Action" feature="nameExp" operator="=">

-                <type metamodel="/1/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ConstructorExpCS"/>

-                </type>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="{"/>

-              <elements xsi:type="xtext:Alternatives">

-                <elements xsi:type="xtext:Group">

-                  <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.48"/>

-                  </elements>

-                  <elements xsi:type="xtext:Group" cardinality="*">

-                    <elements xsi:type="xtext:Keyword" value=","/>

-                    <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.48"/>

-                    </elements>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Assignment" feature="value" operator="=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.23"/>

-                </elements>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="}"/>

-            </elements>

-            <elements xsi:type="xtext:Group">

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Assignment" feature="atPre" operator="?=">

-                  <terminal xsi:type="xtext:Keyword" value="@"/>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="pre"/>

-              </elements>

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Action" feature="nameExp" operator="=">

-                  <type metamodel="/1/@metamodelDeclarations.3">

-                    <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InvocationExpCS"/>

-                  </type>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="("/>

-                <elements xsi:type="xtext:Group" cardinality="?">

-                  <elements xsi:type="xtext:Assignment" feature="argument" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.66"/>

-                  </elements>

-                  <elements xsi:type="xtext:Assignment" cardinality="*" feature="argument" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.68"/>

-                  </elements>

-                  <elements xsi:type="xtext:Group" cardinality="?">

-                    <elements xsi:type="xtext:Assignment" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.69"/>

-                    </elements>

-                    <elements xsi:type="xtext:Assignment" cardinality="*" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.68"/>

-                    </elements>

-                  </elements>

-                  <elements xsi:type="xtext:Group" cardinality="?">

-                    <elements xsi:type="xtext:Assignment" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.67"/>

-                    </elements>

-                    <elements xsi:type="xtext:Assignment" cardinality="*" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.68"/>

-                    </elements>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value=")"/>

-              </elements>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingArgCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingBarArgCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="prefix" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="|"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingCommaArgCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="prefix" operator="=">

-          <terminal xsi:type="xtext:Keyword" value=","/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingSemiArgCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="prefix" operator="=">

-          <terminal xsi:type="xtext:Keyword" value=";"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingArgExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="IfExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//IfExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="if"/>

-        <elements xsi:type="xtext:Assignment" feature="condition" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="then"/>

-        <elements xsi:type="xtext:Assignment" feature="thenExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="else"/>

-        <elements xsi:type="xtext:Assignment" feature="elseExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="endif"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LetExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//LetExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="let"/>

-        <elements xsi:type="xtext:Assignment" feature="variable" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.73"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value=","/>

-          <elements xsi:type="xtext:Assignment" feature="variable" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.73"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="in"/>

-        <elements xsi:type="xtext:Assignment" feature="in" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LetVariableCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//LetVariableCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NestedExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NestedExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="("/>

-        <elements xsi:type="xtext:Assignment" feature="source" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=")"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="SelfExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//SelfExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/1/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//SelfExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="self"/>

-      </alternatives>

-    </rules>

-  </xtext:Grammar>

-</xmi:XMI>

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/QVTcoreBase.xtextbin b/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/QVTcoreBase.xtextbin
new file mode 100644
index 0000000..779daf6
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/QVTcoreBase.xtextbin
Binary files differ
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/parser/antlr/internal/InternalQVTcoreBase.tokens b/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/parser/antlr/internal/InternalQVTcoreBase.tokens
index f913eef..61680f8 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/parser/antlr/internal/InternalQVTcoreBase.tokens
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/parser/antlr/internal/InternalQVTcoreBase.tokens
@@ -1,152 +1,152 @@
-T__42=42

-T__28=28

-T__57=57

-T__23=23

-T__80=80

-T__51=51

-RULE_LETTER_CHARACTER=9

-T__69=69

-T__47=47

-T__73=73

-T__50=50

-T__21=21

-RULE_ML_SINGLE_QUOTED_STRING=11

-T__65=65

-T__19=19

-T__72=72

-T__70=70

-T__67=67

-T__74=74

-T__39=39

-T__30=30

-T__46=46

-T__52=52

 T__68=68

-T__17=17

+T__69=69

+T__66=66

+T__67=67

+T__64=64

+T__29=29

+T__65=65

+T__28=28

 T__62=62

-RULE_INT=6

 T__27=27

+T__63=63

+T__26=26

+RULE_ESCAPED_CHARACTER=8

+T__25=25

 T__24=24

+T__23=23

+T__22=22

+RULE_ANY_OTHER=15

+T__21=21

+T__20=20

+RULE_ESCAPED_ID=5

+RULE_DOUBLE_QUOTED_STRING=10

+T__61=61

+T__60=60

+T__55=55

+T__56=56

+T__19=19

+T__57=57

+T__58=58

+T__16=16

+T__51=51

+T__52=52

+T__18=18

+T__53=53

+T__17=17

+T__54=54

+T__59=59

+RULE_SIMPLE_ID=4

+RULE_INT=6

+T__50=50

+T__42=42

+T__43=43

+T__40=40

+RULE_ML_SINGLE_QUOTED_STRING=11

+T__41=41

+T__80=80

+T__46=46

+T__81=81

+T__47=47

+T__82=82

+T__44=44

+T__83=83

+T__45=45

+T__48=48

 T__49=49

 RULE_SINGLE_QUOTED_STRING=7

-T__61=61

-RULE_DOUBLE_QUOTED_STRING=10

-T__59=59

-T__48=48

-T__54=54

-T__34=34

-T__56=56

-RULE_ESCAPED_CHARACTER=8

-RULE_ML_COMMENT=12

-T__35=35

-T__78=78

-T__36=36

-T__20=20

-T__58=58

-T__79=79

-T__64=64

-RULE_SIMPLE_ID=4

-T__44=44

-T__66=66

-T__33=33

-T__22=22

-T__77=77

-T__29=29

-T__45=45

-T__55=55

-RULE_ESCAPED_ID=5

-T__84=84

-RULE_WS=14

-T__63=63

-T__75=75

-T__43=43

-T__31=31

-T__40=40

-T__53=53

 T__85=85

-T__16=16

-T__32=32

-T__38=38

-T__76=76

-T__37=37

-RULE_ANY_OTHER=15

-T__82=82

-T__26=26

-T__81=81

-T__25=25

 RULE_SL_COMMENT=13

-T__83=83

-T__60=60

-T__41=41

+T__84=84

+RULE_ML_COMMENT=12

+RULE_LETTER_CHARACTER=9

+T__30=30

+T__31=31

+T__32=32

 T__71=71

-T__18=18

-'<'=44

-'pre'=78

-'..'=69

-'>'=43

-'transformation'=37

-'let'=83

-'else'=81

-'invalid'=75

-'-'=39

-'Integer'=57

-'String'=59

-'?'=72

-'Bag'=65

-'map'=34

-':='=21

+T__33=33

+T__72=72

+T__34=34

+T__35=35

+T__70=70

+T__36=36

+T__37=37

+T__38=38

+T__39=39

+RULE_WS=14

+T__76=76

+T__75=75

+T__74=74

+T__73=73

+T__79=79

+T__78=78

+T__77=77

 '>='=45

-'<='=46

-'='=47

-'Real'=58

-'Sequence'=66

-'::'=28

-'uses'=24

-'Boolean'=56

-'xor'=51

-'{'=16

-'OclVoid'=63

-'then'=80

-'OrderedSet'=68

-':'=27

-'OclAny'=61

-'Tuple'=55

-'.'=53

-'*'=38

-'<>'=48

-'Set'=64

-'imports'=23

-'}'=19

-'->'=54

-'self'=85

-';'=22

-'true'=73

-']'=71

-'default'=20

-'false'=74

-','=17

-'endif'=82

-'refines'=36

-'not'=40

-'query'=35

-'['=70

-'or'=50

 '/'=41

-'Collection'=67

-'and'=49

-'implies'=52

-'realize'=29

-'|'=18

-')'=26

-'OclInvalid'=62

-'@'=77

-'import'=32

-'if'=79

-'('=25

+'Sequence'=66

+'then'=80

 'enforce'=31

-'UnlimitedNatural'=60

-'check'=30

-'in'=84

-'null'=76

+':='=21

+'Real'=58

+'>'=43

+'Integer'=57

+';'=22

+'Boolean'=56

+'<>'=48

+'uses'=24

+'transformation'=37

+'OclInvalid'=62

 '+'=42

+'pre'=78

+'.'=53

 'library'=33

+'imports'=23

+'import'=32

+'Set'=64

+'true'=73

+'else'=81

+'let'=83

+'and'=49

+'{'=16

+'check'=30

+'?'=72

+'OclVoid'=63

+'if'=79

+'not'=40

+'('=25

+':'=27

+'-'=39

+','=17

+'in'=84

+'default'=20

+']'=71

+'query'=35

+'..'=69

+'|'=18

+'OrderedSet'=68

+'UnlimitedNatural'=60

+'null'=76

+'Collection'=67

+'Tuple'=55

+'String'=59

+'='=47

+'map'=34

+'@'=77

+'Bag'=65

+'::'=28

+')'=26

+'xor'=51

+'->'=54

+'}'=19

+'refines'=36

+'<='=46

+'false'=74

+'realize'=29

+'<'=44

+'invalid'=75

+'OclAny'=61

+'['=70

+'*'=38

+'or'=50

+'implies'=52

+'self'=85

+'endif'=82

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/parser/antlr/internal/InternalQVTcoreBaseLexer.java b/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/parser/antlr/internal/InternalQVTcoreBaseLexer.java
index 9b10fbf..d142146 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/parser/antlr/internal/InternalQVTcoreBaseLexer.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/parser/antlr/internal/InternalQVTcoreBaseLexer.java
@@ -12,89 +12,89 @@
 
 @SuppressWarnings("all")
 public class InternalQVTcoreBaseLexer extends Lexer {
-    public static final int T__42=42;
-    public static final int T__28=28;
-    public static final int T__57=57;
-    public static final int T__23=23;
-    public static final int T__51=51;
-    public static final int T__80=80;
-    public static final int RULE_LETTER_CHARACTER=9;
-    public static final int T__47=47;
-    public static final int T__69=69;
-    public static final int T__73=73;
-    public static final int T__50=50;
-    public static final int T__21=21;
-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
-    public static final int T__19=19;
-    public static final int T__65=65;
-    public static final int T__72=72;
-    public static final int T__70=70;
-    public static final int T__67=67;
-    public static final int T__74=74;
-    public static final int T__39=39;
-    public static final int T__30=30;
-    public static final int T__46=46;
-    public static final int T__52=52;
     public static final int T__68=68;
-    public static final int T__17=17;
-    public static final int T__62=62;
-    public static final int RULE_INT=6;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__29=29;
+    public static final int T__64=64;
+    public static final int T__28=28;
+    public static final int T__65=65;
     public static final int T__27=27;
+    public static final int T__62=62;
+    public static final int T__26=26;
+    public static final int T__63=63;
+    public static final int T__25=25;
+    public static final int RULE_ESCAPED_CHARACTER=8;
     public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=15;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int RULE_ESCAPED_ID=5;
+    public static final int RULE_DOUBLE_QUOTED_STRING=10;
+    public static final int T__61=61;
+    public static final int EOF=-1;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__19=19;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__16=16;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__18=18;
+    public static final int T__53=53;
+    public static final int T__17=17;
+    public static final int T__54=54;
+    public static final int T__59=59;
+    public static final int RULE_SIMPLE_ID=4;
+    public static final int RULE_INT=6;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
+    public static final int T__46=46;
+    public static final int T__80=80;
+    public static final int T__47=47;
+    public static final int T__81=81;
+    public static final int T__44=44;
+    public static final int T__82=82;
+    public static final int T__45=45;
+    public static final int T__83=83;
+    public static final int T__48=48;
     public static final int T__49=49;
     public static final int RULE_SINGLE_QUOTED_STRING=7;
-    public static final int T__61=61;
-    public static final int RULE_DOUBLE_QUOTED_STRING=10;
-    public static final int T__59=59;
-    public static final int T__48=48;
-    public static final int T__54=54;
-    public static final int T__34=34;
-    public static final int T__56=56;
-    public static final int RULE_ESCAPED_CHARACTER=8;
-    public static final int RULE_ML_COMMENT=12;
-    public static final int T__35=35;
-    public static final int T__78=78;
-    public static final int T__36=36;
-    public static final int T__20=20;
-    public static final int T__58=58;
-    public static final int T__79=79;
-    public static final int T__64=64;
-    public static final int RULE_SIMPLE_ID=4;
-    public static final int T__44=44;
-    public static final int T__66=66;
-    public static final int T__33=33;
-    public static final int T__22=22;
-    public static final int T__77=77;
-    public static final int T__55=55;
-    public static final int T__45=45;
-    public static final int T__29=29;
-    public static final int RULE_ESCAPED_ID=5;
-    public static final int T__84=84;
-    public static final int T__63=63;
-    public static final int RULE_WS=14;
-    public static final int T__43=43;
-    public static final int T__75=75;
-    public static final int T__31=31;
-    public static final int T__40=40;
-    public static final int EOF=-1;
-    public static final int T__53=53;
-    public static final int T__32=32;
-    public static final int T__16=16;
     public static final int T__85=85;
-    public static final int T__38=38;
-    public static final int T__37=37;
-    public static final int T__76=76;
-    public static final int T__26=26;
-    public static final int T__82=82;
-    public static final int RULE_ANY_OTHER=15;
-    public static final int T__25=25;
-    public static final int T__81=81;
+    public static final int T__84=84;
     public static final int RULE_SL_COMMENT=13;
-    public static final int T__60=60;
-    public static final int T__83=83;
-    public static final int T__41=41;
-    public static final int T__18=18;
+    public static final int RULE_LETTER_CHARACTER=9;
+    public static final int RULE_ML_COMMENT=12;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
     public static final int T__71=71;
+    public static final int T__34=34;
+    public static final int T__72=72;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__70=70;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int T__76=76;
+    public static final int RULE_WS=14;
+    public static final int T__75=75;
+    public static final int T__74=74;
+    public static final int T__73=73;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__77=77;
 
     // delegates
     // delegators
@@ -2805,7 +2805,7 @@
         "\1\uffff\1\51\1\52\3\uffff\1\60\3\uffff\1\63\13\uffff\1\57\1\65"+
         "\1\64\6\uffff\1\26\2\uffff\1\55";
     static final String DFA11_specialS =
-        "\1\1\55\uffff\1\2\1\0\u010f\uffff}>";
+        "\1\0\55\uffff\1\2\1\1\u010f\uffff}>";
     static final String[] DFA11_transitionS = {
             "\11\64\2\63\2\64\1\63\22\64\1\63\1\64\1\56\4\64\1\57\1\12\1"+
             "\13\1\23\1\27\1\2\1\24\1\36\1\26\12\62\1\6\1\7\1\31\1\32\1\30"+
@@ -3171,16 +3171,6 @@
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA11_47 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA11_47>='\u0000' && LA11_47<='\uFFFF')) ) {s = 119;}
-
-                        else s = 52;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 1 : 
                         int LA11_0 = input.LA(1);
 
                         s = -1;
@@ -3290,6 +3280,16 @@
 
                         if ( s>=0 ) return s;
                         break;
+                    case 1 : 
+                        int LA11_47 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA11_47>='\u0000' && LA11_47<='\uFFFF')) ) {s = 119;}
+
+                        else s = 52;
+
+                        if ( s>=0 ) return s;
+                        break;
                     case 2 : 
                         int LA11_46 = input.LA(1);
 
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/parser/antlr/internal/InternalQVTcoreBaseParser.java b/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/parser/antlr/internal/InternalQVTcoreBaseParser.java
index 636f3e1..1039c5f 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/parser/antlr/internal/InternalQVTcoreBaseParser.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtcorebase/src-gen/org/eclipse/qvtd/xtext/qvtcorebase/parser/antlr/internal/InternalQVTcoreBaseParser.java
@@ -24,89 +24,89 @@
     public static final String[] tokenNames = new String[] {

         "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_SIMPLE_ID", "RULE_ESCAPED_ID", "RULE_INT", "RULE_SINGLE_QUOTED_STRING", "RULE_ESCAPED_CHARACTER", "RULE_LETTER_CHARACTER", "RULE_DOUBLE_QUOTED_STRING", "RULE_ML_SINGLE_QUOTED_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'{'", "','", "'|'", "'}'", "'default'", "':='", "';'", "'imports'", "'uses'", "'('", "')'", "':'", "'::'", "'realize'", "'check'", "'enforce'", "'import'", "'library'", "'map'", "'query'", "'refines'", "'transformation'", "'*'", "'-'", "'not'", "'/'", "'+'", "'>'", "'<'", "'>='", "'<='", "'='", "'<>'", "'and'", "'or'", "'xor'", "'implies'", "'.'", "'->'", "'Tuple'", "'Boolean'", "'Integer'", "'Real'", "'String'", "'UnlimitedNatural'", "'OclAny'", "'OclInvalid'", "'OclVoid'", "'Set'", "'Bag'", "'Sequence'", "'Collection'", "'OrderedSet'", "'..'", "'['", "']'", "'?'", "'true'", "'false'", "'invalid'", "'null'", "'@'", "'pre'", "'if'", "'then'", "'else'", "'endif'", "'let'", "'in'", "'self'"

     };

-    public static final int T__42=42;

-    public static final int T__28=28;

-    public static final int T__57=57;

-    public static final int T__23=23;

-    public static final int T__80=80;

-    public static final int T__51=51;

-    public static final int RULE_LETTER_CHARACTER=9;

-    public static final int T__69=69;

-    public static final int T__47=47;

-    public static final int T__73=73;

-    public static final int T__50=50;

-    public static final int T__21=21;

-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

-    public static final int T__65=65;

-    public static final int T__19=19;

-    public static final int T__72=72;

-    public static final int T__70=70;

-    public static final int T__67=67;

-    public static final int T__74=74;

-    public static final int T__39=39;

-    public static final int T__30=30;

-    public static final int T__46=46;

-    public static final int T__52=52;

     public static final int T__68=68;

-    public static final int T__17=17;

+    public static final int T__69=69;

+    public static final int T__66=66;

+    public static final int T__67=67;

+    public static final int T__64=64;

+    public static final int T__29=29;

+    public static final int T__65=65;

+    public static final int T__28=28;

     public static final int T__62=62;

-    public static final int RULE_INT=6;

     public static final int T__27=27;

+    public static final int T__63=63;

+    public static final int T__26=26;

+    public static final int RULE_ESCAPED_CHARACTER=8;

+    public static final int T__25=25;

     public static final int T__24=24;

+    public static final int T__23=23;

+    public static final int T__22=22;

+    public static final int RULE_ANY_OTHER=15;

+    public static final int T__21=21;

+    public static final int T__20=20;

+    public static final int RULE_ESCAPED_ID=5;

+    public static final int RULE_DOUBLE_QUOTED_STRING=10;

+    public static final int T__61=61;

+    public static final int T__60=60;

+    public static final int EOF=-1;

+    public static final int T__55=55;

+    public static final int T__56=56;

+    public static final int T__19=19;

+    public static final int T__57=57;

+    public static final int T__58=58;

+    public static final int T__16=16;

+    public static final int T__51=51;

+    public static final int T__52=52;

+    public static final int T__18=18;

+    public static final int T__53=53;

+    public static final int T__17=17;

+    public static final int T__54=54;

+    public static final int T__59=59;

+    public static final int RULE_SIMPLE_ID=4;

+    public static final int RULE_INT=6;

+    public static final int T__50=50;

+    public static final int T__42=42;

+    public static final int T__43=43;

+    public static final int T__40=40;

+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

+    public static final int T__41=41;

+    public static final int T__80=80;

+    public static final int T__46=46;

+    public static final int T__81=81;

+    public static final int T__47=47;

+    public static final int T__82=82;

+    public static final int T__44=44;

+    public static final int T__83=83;

+    public static final int T__45=45;

+    public static final int T__48=48;

     public static final int T__49=49;

     public static final int RULE_SINGLE_QUOTED_STRING=7;

-    public static final int T__61=61;

-    public static final int RULE_DOUBLE_QUOTED_STRING=10;

-    public static final int T__59=59;

-    public static final int T__48=48;

-    public static final int T__54=54;

-    public static final int T__34=34;

-    public static final int T__56=56;

-    public static final int RULE_ESCAPED_CHARACTER=8;

-    public static final int RULE_ML_COMMENT=12;

-    public static final int T__35=35;

-    public static final int T__78=78;

-    public static final int T__36=36;

-    public static final int T__20=20;

-    public static final int T__58=58;

-    public static final int T__79=79;

-    public static final int T__64=64;

-    public static final int RULE_SIMPLE_ID=4;

-    public static final int T__44=44;

-    public static final int T__66=66;

-    public static final int T__33=33;

-    public static final int T__22=22;

-    public static final int T__77=77;

-    public static final int T__29=29;

-    public static final int T__45=45;

-    public static final int T__55=55;

-    public static final int RULE_ESCAPED_ID=5;

-    public static final int T__84=84;

-    public static final int RULE_WS=14;

-    public static final int T__63=63;

-    public static final int T__75=75;

-    public static final int T__43=43;

-    public static final int T__31=31;

-    public static final int T__40=40;

-    public static final int EOF=-1;

-    public static final int T__53=53;

     public static final int T__85=85;

-    public static final int T__16=16;

-    public static final int T__32=32;

-    public static final int T__38=38;

-    public static final int T__76=76;

-    public static final int T__37=37;

-    public static final int RULE_ANY_OTHER=15;

-    public static final int T__82=82;

-    public static final int T__26=26;

-    public static final int T__81=81;

-    public static final int T__25=25;

     public static final int RULE_SL_COMMENT=13;

-    public static final int T__83=83;

-    public static final int T__60=60;

-    public static final int T__41=41;

+    public static final int T__84=84;

+    public static final int RULE_ML_COMMENT=12;

+    public static final int RULE_LETTER_CHARACTER=9;

+    public static final int T__30=30;

+    public static final int T__31=31;

+    public static final int T__32=32;

     public static final int T__71=71;

-    public static final int T__18=18;

+    public static final int T__33=33;

+    public static final int T__72=72;

+    public static final int T__34=34;

+    public static final int T__35=35;

+    public static final int T__70=70;

+    public static final int T__36=36;

+    public static final int T__37=37;

+    public static final int T__38=38;

+    public static final int T__39=39;

+    public static final int RULE_WS=14;

+    public static final int T__76=76;

+    public static final int T__75=75;

+    public static final int T__74=74;

+    public static final int T__73=73;

+    public static final int T__79=79;

+    public static final int T__78=78;

+    public static final int T__77=77;

 

     // delegates

     // delegators

@@ -14522,11 +14522,11 @@
 

     // Delegated rules

 

-    public final boolean synpred103_InternalQVTcoreBase() {

+    public final boolean synpred104_InternalQVTcoreBase() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred103_InternalQVTcoreBase_fragment(); // can never throw exception

+            synpred104_InternalQVTcoreBase_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

@@ -14550,11 +14550,11 @@
         state.failed=false;

         return success;

     }

-    public final boolean synpred104_InternalQVTcoreBase() {

+    public final boolean synpred103_InternalQVTcoreBase() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred104_InternalQVTcoreBase_fragment(); // can never throw exception

+            synpred103_InternalQVTcoreBase_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

@@ -14716,45 +14716,45 @@
     static final String DFA17_eofS =

         "\21\uffff";

     static final String DFA17_minS =

-        "\1\31\1\4\15\20\2\uffff";

+        "\1\31\1\4\1\uffff\15\20\1\uffff";

     static final String DFA17_maxS =

-        "\1\31\1\125\15\115\2\uffff";

+        "\1\31\1\125\1\uffff\15\115\1\uffff";

     static final String DFA17_acceptS =

-        "\17\uffff\1\2\1\1";

+        "\2\uffff\1\2\15\uffff\1\1";

     static final String DFA17_specialS =

         "\21\uffff}>";

     static final String[] DFA17_transitionS = {

             "\1\1",

-            "\1\2\1\3\2\17\14\uffff\1\17\2\uffff\1\7\1\16\2\17\2\uffff"+

-            "\1\13\1\4\1\5\1\6\1\10\1\11\1\12\1\14\1\15\3\17\16\uffff\16"+

-            "\17\4\uffff\4\17\2\uffff\1\17\3\uffff\1\17\1\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

-            "\1\17\4\uffff\2\17\2\uffff\1\17\1\uffff\1\20\1\17\11\uffff"+

-            "\2\17\1\uffff\16\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\3\1\4\2\2\14\uffff\1\2\2\uffff\1\10\1\17\2\2\2\uffff\1"+

+            "\14\1\5\1\6\1\7\1\11\1\12\1\13\1\15\1\16\3\2\16\uffff\16\2\4"+

+            "\uffff\4\2\2\uffff\1\2\3\uffff\1\2\1\uffff\1\2",

             "",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

+            "\1\2\4\uffff\2\2\2\uffff\1\2\1\uffff\1\20\1\2\11\uffff\2\2"+

+            "\1\uffff\16\2\17\uffff\1\2\6\uffff\1\2",

             ""

     };

 

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/AbstractQVTimperativeProposalProvider.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/AbstractQVTimperativeProposalProvider.java
index e027ba9..2ff5c25 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/AbstractQVTimperativeProposalProvider.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/AbstractQVTimperativeProposalProvider.java
@@ -9,7 +9,7 @@
 import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
 
 /**
- * Represents a generated, default implementation of interface {@link IProposalProvider}.
+ * Represents a generated, default implementation of superclass {@link org.eclipse.qvtd.xtext.qvtcorebase.ui.contentassist.QVTcoreBaseProposalProvider}.
  * Methods are dynamically dispatched on the first parameter, i.e., you can override them 
  * with a more concrete subtype. 
  */
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/antlr/internal/InternalQVTimperative.tokens b/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/antlr/internal/InternalQVTimperative.tokens
index e2f408e..4d9ee7a 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/antlr/internal/InternalQVTimperative.tokens
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/antlr/internal/InternalQVTimperative.tokens
@@ -1,154 +1,154 @@
-T__42=42

-T__86=86

-T__28=28

-T__57=57

-T__23=23

-T__80=80

-T__51=51

-RULE_LETTER_CHARACTER=9

-T__69=69

-T__47=47

-T__73=73

-T__50=50

-T__21=21

-RULE_ML_SINGLE_QUOTED_STRING=11

-T__65=65

-T__19=19

-T__72=72

-T__70=70

-T__67=67

-T__74=74

-T__39=39

-T__30=30

-T__46=46

-T__52=52

 T__68=68

-T__17=17

+T__69=69

+T__66=66

+T__67=67

+T__64=64

+T__29=29

+T__65=65

+T__28=28

 T__62=62

-RULE_INT=4

 T__27=27

+T__63=63

+T__26=26

+RULE_ESCAPED_CHARACTER=8

+T__25=25

 T__24=24

+T__23=23

+T__22=22

+RULE_ANY_OTHER=15

+T__21=21

+T__20=20

+RULE_ESCAPED_ID=7

+RULE_DOUBLE_QUOTED_STRING=10

+T__61=61

+T__60=60

+T__55=55

+T__56=56

+T__19=19

+T__57=57

+T__58=58

+T__16=16

+T__51=51

+T__52=52

+T__18=18

+T__53=53

+T__17=17

+T__54=54

+T__59=59

+RULE_SIMPLE_ID=6

+RULE_INT=4

+T__50=50

+T__42=42

+T__43=43

+T__40=40

+RULE_ML_SINGLE_QUOTED_STRING=11

+T__41=41

+T__80=80

+T__46=46

+T__81=81

+T__47=47

+T__82=82

+T__44=44

+T__83=83

+T__45=45

+T__48=48

 T__49=49

 RULE_SINGLE_QUOTED_STRING=5

-T__61=61

-RULE_DOUBLE_QUOTED_STRING=10

-T__59=59

-T__48=48

-T__54=54

-T__34=34

-T__56=56

-RULE_ESCAPED_CHARACTER=8

-RULE_ML_COMMENT=12

-T__35=35

-T__78=78

-T__36=36

-T__20=20

-T__58=58

-T__79=79

-T__64=64

-RULE_SIMPLE_ID=6

-T__44=44

-T__66=66

-T__33=33

-T__22=22

-T__77=77

-T__29=29

-T__45=45

-T__55=55

-RULE_ESCAPED_ID=7

-T__84=84

-RULE_WS=14

-T__63=63

-T__75=75

-T__43=43

-T__31=31

-T__40=40

-T__53=53

 T__85=85

-T__16=16

-T__32=32

-T__38=38

-T__76=76

-T__37=37

-RULE_ANY_OTHER=15

-T__82=82

-T__26=26

-T__81=81

-T__25=25

 RULE_SL_COMMENT=13

-T__83=83

-T__60=60

-T__41=41

+T__84=84

+T__86=86

+RULE_ML_COMMENT=12

+RULE_LETTER_CHARACTER=9

+T__30=30

+T__31=31

+T__32=32

 T__71=71

-T__18=18

-'<'=35

-'pre'=76

-'..'=71

-'>'=34

-'transformation'=27

-'let'=81

-'else'=79

-'invalid'=74

-'-'=30

-'Integer'=48

-'String'=50

-'?'=60

+T__33=33

+T__72=72

+T__34=34

+T__35=35

+T__70=70

+T__36=36

+T__37=37

+T__38=38

+T__39=39

+RULE_WS=14

+T__76=76

+T__75=75

+T__74=74

+T__73=73

+T__79=79

+T__78=78

+T__77=77

 '>='=36

-':='=16

-'map'=23

-'Bag'=56

-'<='=37

-'='=38

-'Real'=49

-'Sequence'=57

-'::'=70

-'uses'=28

-'Boolean'=47

-'xor'=42

-'{'=61

-'OclVoid'=54

-'then'=78

-'OrderedSet'=59

-':'=69

-'OclAny'=52

-'Tuple'=46

-'.'=44

-'<>'=39

-'*'=29

-'Set'=55

-'imports'=21

-'}'=62

-'->'=45

-'self'=82

-'where'=64

-';'=17

-'true'=84

-'default'=83

-']'=73

-'false'=85

-','=66

-'endif'=80

-'refines'=26

-'not'=31

-'query'=24

-'['=72

-'or'=41

 '/'=32

-'and'=40

-'implies'=43

-'Collection'=58

-'|'=65

-'realize'=25

-')'=68

-'OclInvalid'=53

-'@'=86

-'import'=20

-'if'=77

-'('=67

+'Sequence'=57

+'where'=64

+'then'=78

+':='=16

 'enforce'=19

-'UnlimitedNatural'=51

-'check'=18

-'in'=63

-'null'=75

+'Real'=49

+'>'=34

+'Integer'=48

+';'=17

+'Boolean'=47

+'<>'=39

+'uses'=28

+'transformation'=27

+'OclInvalid'=53

 '+'=33

+'pre'=76

+'.'=44

+'imports'=21

 'library'=22

+'import'=20

+'Set'=55

+'true'=84

+'else'=79

+'let'=81

+'and'=40

+'{'=61

+'check'=18

+'?'=60

+'OclVoid'=54

+'if'=77

+':'=69

+'('=67

+'not'=31

+'-'=30

+','=66

+'default'=83

+'in'=63

+']'=73

+'query'=24

+'..'=71

+'|'=65

+'OrderedSet'=59

+'UnlimitedNatural'=51

+'null'=75

+'Tuple'=46

+'Collection'=58

+'String'=50

+'='=38

+'map'=23

+'@'=86

+'::'=70

+'Bag'=56

+')'=68

+'xor'=42

+'->'=45

+'}'=62

+'refines'=26

+'<='=37

+'false'=85

+'<'=35

+'realize'=25

+'invalid'=74

+'OclAny'=52

+'['=72

+'*'=29

+'or'=41

+'implies'=43

+'self'=82

+'endif'=80

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/antlr/internal/InternalQVTimperativeLexer.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/antlr/internal/InternalQVTimperativeLexer.java
index 8212a6a..72eb5dc 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/antlr/internal/InternalQVTimperativeLexer.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/antlr/internal/InternalQVTimperativeLexer.java
@@ -12,90 +12,90 @@
 
 @SuppressWarnings("all")
 public class InternalQVTimperativeLexer extends Lexer {
-    public static final int T__42=42;
-    public static final int T__86=86;
-    public static final int T__28=28;
-    public static final int T__23=23;
-    public static final int T__57=57;
-    public static final int T__51=51;
-    public static final int T__80=80;
-    public static final int RULE_LETTER_CHARACTER=9;
-    public static final int T__47=47;
-    public static final int T__69=69;
-    public static final int T__73=73;
-    public static final int T__50=50;
-    public static final int T__21=21;
-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
-    public static final int T__19=19;
-    public static final int T__65=65;
-    public static final int T__72=72;
-    public static final int T__70=70;
-    public static final int T__67=67;
-    public static final int T__74=74;
-    public static final int T__39=39;
-    public static final int T__30=30;
-    public static final int T__46=46;
-    public static final int T__52=52;
     public static final int T__68=68;
-    public static final int T__17=17;
-    public static final int T__62=62;
-    public static final int RULE_INT=4;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__29=29;
+    public static final int T__64=64;
+    public static final int T__28=28;
+    public static final int T__65=65;
     public static final int T__27=27;
+    public static final int T__62=62;
+    public static final int T__26=26;
+    public static final int T__63=63;
+    public static final int T__25=25;
+    public static final int RULE_ESCAPED_CHARACTER=8;
     public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=15;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int RULE_ESCAPED_ID=7;
+    public static final int RULE_DOUBLE_QUOTED_STRING=10;
+    public static final int T__61=61;
+    public static final int EOF=-1;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__19=19;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__16=16;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__18=18;
+    public static final int T__53=53;
+    public static final int T__17=17;
+    public static final int T__54=54;
+    public static final int T__59=59;
+    public static final int RULE_SIMPLE_ID=6;
+    public static final int RULE_INT=4;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
+    public static final int T__46=46;
+    public static final int T__80=80;
+    public static final int T__47=47;
+    public static final int T__81=81;
+    public static final int T__44=44;
+    public static final int T__82=82;
+    public static final int T__45=45;
+    public static final int T__83=83;
+    public static final int T__48=48;
     public static final int T__49=49;
     public static final int RULE_SINGLE_QUOTED_STRING=5;
-    public static final int T__61=61;
-    public static final int RULE_DOUBLE_QUOTED_STRING=10;
-    public static final int T__59=59;
-    public static final int T__48=48;
-    public static final int T__54=54;
-    public static final int T__34=34;
-    public static final int T__56=56;
-    public static final int RULE_ESCAPED_CHARACTER=8;
-    public static final int RULE_ML_COMMENT=12;
-    public static final int T__35=35;
-    public static final int T__78=78;
-    public static final int T__36=36;
-    public static final int T__20=20;
-    public static final int T__58=58;
-    public static final int T__79=79;
-    public static final int T__64=64;
-    public static final int RULE_SIMPLE_ID=6;
-    public static final int T__44=44;
-    public static final int T__66=66;
-    public static final int T__33=33;
-    public static final int T__22=22;
-    public static final int T__77=77;
-    public static final int T__55=55;
-    public static final int T__45=45;
-    public static final int T__29=29;
-    public static final int RULE_ESCAPED_ID=7;
-    public static final int T__84=84;
-    public static final int T__63=63;
-    public static final int RULE_WS=14;
-    public static final int T__43=43;
-    public static final int T__75=75;
-    public static final int T__31=31;
-    public static final int T__40=40;
-    public static final int EOF=-1;
-    public static final int T__53=53;
-    public static final int T__32=32;
-    public static final int T__16=16;
     public static final int T__85=85;
-    public static final int T__38=38;
-    public static final int T__37=37;
-    public static final int T__76=76;
-    public static final int T__26=26;
-    public static final int T__82=82;
-    public static final int RULE_ANY_OTHER=15;
-    public static final int T__25=25;
-    public static final int T__81=81;
+    public static final int T__84=84;
     public static final int RULE_SL_COMMENT=13;
-    public static final int T__60=60;
-    public static final int T__83=83;
-    public static final int T__41=41;
-    public static final int T__18=18;
+    public static final int T__86=86;
+    public static final int RULE_LETTER_CHARACTER=9;
+    public static final int RULE_ML_COMMENT=12;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
     public static final int T__71=71;
+    public static final int T__34=34;
+    public static final int T__72=72;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__70=70;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int T__76=76;
+    public static final int RULE_WS=14;
+    public static final int T__75=75;
+    public static final int T__74=74;
+    public static final int T__73=73;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__77=77;
 
     // delegates
     // delegators
@@ -2834,7 +2834,7 @@
         "\1\40\1\41\3\uffff\1\47\2\uffff\1\104\1\uffff\1\52\13\uffff\1\46"+
         "\1\54\1\53\6\uffff\1\14\2\uffff\1\44";
     static final String DFA11_specialS =
-        "\1\2\56\uffff\1\0\1\1\u0114\uffff}>";
+        "\1\1\56\uffff\1\2\1\0\u0114\uffff}>";
     static final String[] DFA11_transitionS = {
             "\11\65\2\64\2\65\1\64\22\65\1\64\1\65\1\57\4\65\1\60\1\46\1"+
             "\47\1\14\1\20\1\45\1\15\1\27\1\17\12\63\1\1\1\2\1\22\1\23\1"+
@@ -3208,16 +3208,6 @@
         	int _s = s;
             switch ( s ) {
                     case 0 : 
-                        int LA11_47 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA11_47>='\u0000' && LA11_47<='\uFFFF')) ) {s = 120;}
-
-                        else s = 53;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 1 : 
                         int LA11_48 = input.LA(1);
 
                         s = -1;
@@ -3227,7 +3217,7 @@
 
                         if ( s>=0 ) return s;
                         break;
-                    case 2 : 
+                    case 1 : 
                         int LA11_0 = input.LA(1);
 
                         s = -1;
@@ -3339,6 +3329,16 @@
 
                         if ( s>=0 ) return s;
                         break;
+                    case 2 : 
+                        int LA11_47 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA11_47>='\u0000' && LA11_47<='\uFFFF')) ) {s = 120;}
+
+                        else s = 53;
+
+                        if ( s>=0 ) return s;
+                        break;
             }
             NoViableAltException nvae =
                 new NoViableAltException(getDescription(), 11, _s, input);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/antlr/internal/InternalQVTimperativeParser.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/antlr/internal/InternalQVTimperativeParser.java
index 4c00467..0663cbd 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/antlr/internal/InternalQVTimperativeParser.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative.ui/src-gen/org/eclipse/qvtd/xtext/qvtimperative/ui/contentassist/antlr/internal/InternalQVTimperativeParser.java
@@ -25,90 +25,90 @@
     public static final String[] tokenNames = new String[] {

         "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_SINGLE_QUOTED_STRING", "RULE_SIMPLE_ID", "RULE_ESCAPED_ID", "RULE_ESCAPED_CHARACTER", "RULE_LETTER_CHARACTER", "RULE_DOUBLE_QUOTED_STRING", "RULE_ML_SINGLE_QUOTED_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "':='", "';'", "'check'", "'enforce'", "'import'", "'imports'", "'library'", "'map'", "'query'", "'realize'", "'refines'", "'transformation'", "'uses'", "'*'", "'-'", "'not'", "'/'", "'+'", "'>'", "'<'", "'>='", "'<='", "'='", "'<>'", "'and'", "'or'", "'xor'", "'implies'", "'.'", "'->'", "'Tuple'", "'Boolean'", "'Integer'", "'Real'", "'String'", "'UnlimitedNatural'", "'OclAny'", "'OclInvalid'", "'OclVoid'", "'Set'", "'Bag'", "'Sequence'", "'Collection'", "'OrderedSet'", "'?'", "'{'", "'}'", "'in'", "'where'", "'|'", "','", "'('", "')'", "':'", "'::'", "'..'", "'['", "']'", "'invalid'", "'null'", "'pre'", "'if'", "'then'", "'else'", "'endif'", "'let'", "'self'", "'default'", "'true'", "'false'", "'@'"

     };

-    public static final int T__42=42;

-    public static final int T__86=86;

-    public static final int T__28=28;

-    public static final int T__57=57;

-    public static final int T__23=23;

-    public static final int T__80=80;

-    public static final int T__51=51;

-    public static final int RULE_LETTER_CHARACTER=9;

-    public static final int T__69=69;

-    public static final int T__47=47;

-    public static final int T__73=73;

-    public static final int T__50=50;

-    public static final int T__21=21;

-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

-    public static final int T__65=65;

-    public static final int T__19=19;

-    public static final int T__72=72;

-    public static final int T__70=70;

-    public static final int T__67=67;

-    public static final int T__74=74;

-    public static final int T__39=39;

-    public static final int T__30=30;

-    public static final int T__46=46;

-    public static final int T__52=52;

     public static final int T__68=68;

-    public static final int T__17=17;

+    public static final int T__69=69;

+    public static final int T__66=66;

+    public static final int T__67=67;

+    public static final int T__64=64;

+    public static final int T__29=29;

+    public static final int T__65=65;

+    public static final int T__28=28;

     public static final int T__62=62;

-    public static final int RULE_INT=4;

     public static final int T__27=27;

+    public static final int T__63=63;

+    public static final int T__26=26;

+    public static final int RULE_ESCAPED_CHARACTER=8;

+    public static final int T__25=25;

     public static final int T__24=24;

+    public static final int T__23=23;

+    public static final int T__22=22;

+    public static final int RULE_ANY_OTHER=15;

+    public static final int T__21=21;

+    public static final int T__20=20;

+    public static final int RULE_ESCAPED_ID=7;

+    public static final int RULE_DOUBLE_QUOTED_STRING=10;

+    public static final int T__61=61;

+    public static final int T__60=60;

+    public static final int EOF=-1;

+    public static final int T__55=55;

+    public static final int T__56=56;

+    public static final int T__19=19;

+    public static final int T__57=57;

+    public static final int T__58=58;

+    public static final int T__16=16;

+    public static final int T__51=51;

+    public static final int T__52=52;

+    public static final int T__18=18;

+    public static final int T__53=53;

+    public static final int T__17=17;

+    public static final int T__54=54;

+    public static final int T__59=59;

+    public static final int RULE_SIMPLE_ID=6;

+    public static final int RULE_INT=4;

+    public static final int T__50=50;

+    public static final int T__42=42;

+    public static final int T__43=43;

+    public static final int T__40=40;

+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

+    public static final int T__41=41;

+    public static final int T__80=80;

+    public static final int T__46=46;

+    public static final int T__81=81;

+    public static final int T__47=47;

+    public static final int T__82=82;

+    public static final int T__44=44;

+    public static final int T__83=83;

+    public static final int T__45=45;

+    public static final int T__48=48;

     public static final int T__49=49;

     public static final int RULE_SINGLE_QUOTED_STRING=5;

-    public static final int T__61=61;

-    public static final int RULE_DOUBLE_QUOTED_STRING=10;

-    public static final int T__59=59;

-    public static final int T__48=48;

-    public static final int T__54=54;

-    public static final int T__34=34;

-    public static final int T__56=56;

-    public static final int RULE_ESCAPED_CHARACTER=8;

-    public static final int RULE_ML_COMMENT=12;

-    public static final int T__35=35;

-    public static final int T__78=78;

-    public static final int T__36=36;

-    public static final int T__20=20;

-    public static final int T__58=58;

-    public static final int T__79=79;

-    public static final int T__64=64;

-    public static final int RULE_SIMPLE_ID=6;

-    public static final int T__44=44;

-    public static final int T__66=66;

-    public static final int T__33=33;

-    public static final int T__22=22;

-    public static final int T__77=77;

-    public static final int T__29=29;

-    public static final int T__45=45;

-    public static final int T__55=55;

-    public static final int RULE_ESCAPED_ID=7;

-    public static final int T__84=84;

-    public static final int RULE_WS=14;

-    public static final int T__63=63;

-    public static final int T__75=75;

-    public static final int T__43=43;

-    public static final int T__31=31;

-    public static final int T__40=40;

-    public static final int EOF=-1;

-    public static final int T__53=53;

     public static final int T__85=85;

-    public static final int T__16=16;

-    public static final int T__32=32;

-    public static final int T__38=38;

-    public static final int T__76=76;

-    public static final int T__37=37;

-    public static final int RULE_ANY_OTHER=15;

-    public static final int T__82=82;

-    public static final int T__26=26;

-    public static final int T__81=81;

-    public static final int T__25=25;

     public static final int RULE_SL_COMMENT=13;

-    public static final int T__83=83;

-    public static final int T__60=60;

-    public static final int T__41=41;

+    public static final int T__84=84;

+    public static final int T__86=86;

+    public static final int RULE_ML_COMMENT=12;

+    public static final int RULE_LETTER_CHARACTER=9;

+    public static final int T__30=30;

+    public static final int T__31=31;

+    public static final int T__32=32;

     public static final int T__71=71;

-    public static final int T__18=18;

+    public static final int T__33=33;

+    public static final int T__72=72;

+    public static final int T__34=34;

+    public static final int T__35=35;

+    public static final int T__70=70;

+    public static final int T__36=36;

+    public static final int T__37=37;

+    public static final int T__38=38;

+    public static final int T__39=39;

+    public static final int RULE_WS=14;

+    public static final int T__76=76;

+    public static final int T__75=75;

+    public static final int T__74=74;

+    public static final int T__73=73;

+    public static final int T__79=79;

+    public static final int T__78=78;

+    public static final int T__77=77;

 

     // delegates

     // delegators

@@ -45909,11 +45909,11 @@
 

     // Delegated rules

 

-    public final boolean synpred76_InternalQVTimperative() {

+    public final boolean synpred77_InternalQVTimperative() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred76_InternalQVTimperative_fragment(); // can never throw exception

+            synpred77_InternalQVTimperative_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

@@ -45937,11 +45937,11 @@
         state.failed=false;

         return success;

     }

-    public final boolean synpred77_InternalQVTimperative() {

+    public final boolean synpred76_InternalQVTimperative() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred77_InternalQVTimperative_fragment(); // can never throw exception

+            synpred76_InternalQVTimperative_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/QVTimperative.xmi b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/QVTimperative.xmi
deleted file mode 100644
index a189162..0000000
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/QVTimperative.xmi
+++ /dev/null
@@ -1,1757 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>

-<xmi:XMI xmi:version="2.0" 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" xmlns:xtext="http://www.eclipse.org/2008/Xtext">

-  <xtext:Grammar name="org.eclipse.qvtd.xtext.qvtimperative.QVTimperative" usedGrammars="/1">

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">

-      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="base">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/BaseCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="essentialocl">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="pivot">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/Pivot#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtbase">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTbase#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtcorebase">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTcoreBase#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtimperative">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTimperatve#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTimperativeCST#/"/>

-    </metamodelDeclarations>

-    <rules xsi:type="xtext:ParserRule" name="TopLevelCS">

-      <type metamodel="/0/@metamodelDeclarations.7">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTimperativeCST#//TopLevelCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:Assignment" feature="ownedImport" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.4"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="ownedLibrary" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.5"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:Assignment" feature="mappings" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="transformations" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.10"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="queries" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.8"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MappingCS">

-      <type metamodel="/0/@metamodelDeclarations.7">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTimperativeCST#//MappingCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/0/@metamodelDeclarations.7">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTimperativeCST#//MappingCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="map"/>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="in"/>

-          <elements xsi:type="xtext:Assignment" feature="in" operator="=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/0/@metamodelDeclarations.4">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTbase#//Transformation"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-            </terminal>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Assignment" cardinality="*" feature="domains" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.6"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="where"/>

-          <elements xsi:type="xtext:Assignment" feature="middle" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.13"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="*" feature="mappingCalls" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MappingCallCS">

-      <type metamodel="/0/@metamodelDeclarations.7">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTimperativeCST#//MappingCallCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/0/@metamodelDeclarations.7">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTimperativeCST#//MappingCallCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="map"/>

-        <elements xsi:type="xtext:Assignment" feature="referredMapping" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/0/@metamodelDeclarations.6">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTimperatve#//Mapping"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Assignment" cardinality="*" feature="bindings" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MappingCallBindingCS">

-      <type metamodel="/0/@metamodelDeclarations.7">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTimperativeCST#//MappingCallBindingCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="referredVariable" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/0/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value=":="/>

-          <elements xsi:type="xtext:Assignment" feature="isLoop" operator="?=">

-            <terminal xsi:type="xtext:Keyword" value="&lt;="/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="value" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-  </xtext:Grammar>

-  <xtext:Grammar name="org.eclipse.qvtd.xtext.qvtcorebase.QVTcoreBase" usedGrammars="/2">

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">

-      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="base">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/BaseCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="essentialocl">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="pivot">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/Pivot#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtbase">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTbase#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtcorebase">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTcoreBase#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#/"/>

-    </metamodelDeclarations>

-    <rules xsi:type="xtext:ParserRule" name="BottomPatternCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//BottomPatternCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Keyword" value="{"/>

-          <elements xsi:type="xtext:Alternatives">

-            <elements xsi:type="xtext:Assignment" feature="unrealizedVariables" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.11"/>

-            </elements>

-            <elements xsi:type="xtext:Assignment" feature="realizedVariables" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.12"/>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Assignment" feature="unrealizedVariables" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.11"/>

-              </elements>

-              <elements xsi:type="xtext:Assignment" feature="realizedVariables" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.12"/>

-              </elements>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="|"/>

-          <elements xsi:type="xtext:Assignment" cardinality="*" feature="constraints" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="}"/>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/1/@metamodelDeclarations.6">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//BottomPatternCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="{"/>

-          <elements xsi:type="xtext:Assignment" cardinality="*" feature="constraints" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="}"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="AssignmentCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//AssignmentCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="default" operator="?=">

-          <terminal xsi:type="xtext:Keyword" value="default"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="target" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":="/>

-          <elements xsi:type="xtext:Assignment" feature="initialiser" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="DirectionCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DirectionCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/1/@metamodelDeclarations.6">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DirectionCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="imports"/>

-          <elements xsi:type="xtext:Assignment" feature="imports" operator="+=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/1/@metamodelDeclarations.3">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-            </terminal>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="imports" operator="+=">

-              <terminal xsi:type="xtext:CrossReference">

-                <type metamodel="/1/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>

-                </type>

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-              </terminal>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="uses"/>

-          <elements xsi:type="xtext:Assignment" feature="uses" operator="+=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/1/@metamodelDeclarations.5">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBase#//CoreDomain"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-            </terminal>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="uses" operator="+=">

-              <terminal xsi:type="xtext:CrossReference">

-                <type metamodel="/1/@metamodelDeclarations.5">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBase#//CoreDomain"/>

-                </type>

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-              </terminal>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="GuardPatternCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//GuardPatternCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Assignment" feature="unrealizedVariables" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.11"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="unrealizedVariables" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.11"/>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="|"/>

-          <elements xsi:type="xtext:Assignment" cardinality="*" feature="constraints" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/1/@metamodelDeclarations.6">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//GuardPatternCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Assignment" cardinality="*" feature="constraints" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ImportCS">

-      <type metamodel="/1/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//ImportCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="import"/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.22"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=":"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="pathName" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.35"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="all" operator="?=">

-            <terminal xsi:type="xtext:Keyword" value="::"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="*"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LibraryCS">

-      <type metamodel="/1/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//LibraryCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="library"/>

-        <elements xsi:type="xtext:Assignment" feature="package" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/1/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.17"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NamedDomainCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DomainCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="check" operator="?=">

-          <terminal xsi:type="xtext:Keyword" value="check"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="enforce" operator="?=">

-          <terminal xsi:type="xtext:Keyword" value="enforce"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="direction" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/1/@metamodelDeclarations.4">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTbase#//TypedModel"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="guardPattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.3"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="bottomPattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ParamDeclarationCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//ParamDeclarationCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="QueryCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//QueryCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="query"/>

-        <elements xsi:type="xtext:Assignment" feature="pathName" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.9"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="("/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="inputParamDeclaration" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="inputParamDeclaration" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.7"/>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=")"/>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-        </elements>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value=";"/>

-          <elements xsi:type="xtext:Group">

-            <elements xsi:type="xtext:Keyword" value="{"/>

-            <elements xsi:type="xtext:Assignment" feature="expression" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-            </elements>

-            <elements xsi:type="xtext:Keyword" value="}"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ScopeNameCS">

-      <type metamodel="/1/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathNameCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.33"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="::"/>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.34"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="::"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TransformationCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//TransformationCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="transformation"/>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="pathName" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.9"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.31"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Assignment" feature="directions" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=";"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnrealizedVariableCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//UnrealizedVariableCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="RealizedVariableCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//RealizedVariableCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="realize"/>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnnamedDomainCS">

-      <type metamodel="/1/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DomainCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/1/@metamodelDeclarations.6">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTcoreBaseCST#//DomainCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="guardPattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.3"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="bottomPattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.0"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnrestrictedName">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.28"/>

-        <elements xsi:type="xtext:Keyword" value="check"/>

-        <elements xsi:type="xtext:Keyword" value="enforce"/>

-        <elements xsi:type="xtext:Keyword" value="import"/>

-        <elements xsi:type="xtext:Keyword" value="imports"/>

-        <elements xsi:type="xtext:Keyword" value="library"/>

-        <elements xsi:type="xtext:Keyword" value="map"/>

-        <elements xsi:type="xtext:Keyword" value="query"/>

-        <elements xsi:type="xtext:Keyword" value="realize"/>

-        <elements xsi:type="xtext:Keyword" value="refines"/>

-        <elements xsi:type="xtext:Keyword" value="transformation"/>

-        <elements xsi:type="xtext:Keyword" value="uses"/>

-      </alternatives>

-    </rules>

-  </xtext:Grammar>

-  <xtext:Grammar name="org.eclipse.ocl.examples.xtext.essentialocl.EssentialOCL" definesHiddenTokens="true" hiddenTokens="/2/@rules.15 /2/@rules.13 /2/@rules.14">

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">

-      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="pivot">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/Pivot#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="base">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/BaseCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#/"/>

-    </metamodelDeclarations>

-    <rules xsi:type="xtext:ParserRule" name="Model">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ContextCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="ownedExpression" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ESCAPED_CHARACTER" fragment="true">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="\"/>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="b"/>

-          <elements xsi:type="xtext:Keyword" value="t"/>

-          <elements xsi:type="xtext:Keyword" value="n"/>

-          <elements xsi:type="xtext:Keyword" value="f"/>

-          <elements xsi:type="xtext:Keyword" value="r"/>

-          <elements xsi:type="xtext:Keyword" value="u"/>

-          <elements xsi:type="xtext:Keyword" value="&quot;"/>

-          <elements xsi:type="xtext:Keyword" value="'"/>

-          <elements xsi:type="xtext:Keyword" value="\"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="LETTER_CHARACTER" fragment="true">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:CharacterRange">

-          <left value="a"/>

-          <right value="z"/>

-        </elements>

-        <elements xsi:type="xtext:CharacterRange">

-          <left value="A"/>

-          <right value="Z"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="_"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="DOUBLE_QUOTED_STRING">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="&quot;"/>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.1"/>

-          <elements xsi:type="xtext:NegatedToken">

-            <terminal xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Keyword" value="\"/>

-              <elements xsi:type="xtext:Keyword" value="&quot;"/>

-            </terminal>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="&quot;"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="SINGLE_QUOTED_STRING">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="'"/>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.1"/>

-          <elements xsi:type="xtext:NegatedToken">

-            <terminal xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Keyword" value="\"/>

-              <elements xsi:type="xtext:Keyword" value="'"/>

-            </terminal>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="'"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ML_SINGLE_QUOTED_STRING">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="/'"/>

-        <elements xsi:type="xtext:UntilToken">

-          <terminal xsi:type="xtext:Keyword" value="'/"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="SIMPLE_ID">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.2"/>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.2"/>

-          <elements xsi:type="xtext:CharacterRange">

-            <left value="0"/>

-            <right value="9"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ESCAPED_ID">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="_"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.4"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ID">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.6"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.7"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="INT">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:CharacterRange" cardinality="+">

-        <left value="0"/>

-        <right value="9"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LOWER">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.9"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UPPER">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.9"/>

-        <elements xsi:type="xtext:Keyword" value="*"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NUMBER_LITERAL">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BigNumber"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.9"/>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="/*"/>

-        <elements xsi:type="xtext:UntilToken">

-          <terminal xsi:type="xtext:Keyword" value="*/"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="--"/>

-        <elements xsi:type="xtext:NegatedToken" cardinality="*">

-          <terminal xsi:type="xtext:Alternatives">

-            <elements xsi:type="xtext:Keyword" value="&#xA;"/>

-            <elements xsi:type="xtext:Keyword" value="&#xD;"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>

-          <elements xsi:type="xtext:Keyword" value="&#xA;"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="WS">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives" cardinality="+">

-        <elements xsi:type="xtext:Keyword" value=" "/>

-        <elements xsi:type="xtext:Keyword" value="&#x9;"/>

-        <elements xsi:type="xtext:Keyword" value="&#xD;"/>

-        <elements xsi:type="xtext:Keyword" value="&#xA;"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Wildcard"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="URI">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.4"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLReservedKeyword">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Keyword" value="and"/>

-        <elements xsi:type="xtext:Keyword" value="else"/>

-        <elements xsi:type="xtext:Keyword" value="endif"/>

-        <elements xsi:type="xtext:Keyword" value="if"/>

-        <elements xsi:type="xtext:Keyword" value="implies"/>

-        <elements xsi:type="xtext:Keyword" value="in"/>

-        <elements xsi:type="xtext:Keyword" value="let"/>

-        <elements xsi:type="xtext:Keyword" value="not"/>

-        <elements xsi:type="xtext:Keyword" value="or"/>

-        <elements xsi:type="xtext:Keyword" value="then"/>

-        <elements xsi:type="xtext:Keyword" value="xor"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLUnaryOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="-"/>

-          <elements xsi:type="xtext:Keyword" value="not"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLInfixOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BinaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="*"/>

-          <elements xsi:type="xtext:Keyword" value="/"/>

-          <elements xsi:type="xtext:Keyword" value="+"/>

-          <elements xsi:type="xtext:Keyword" value="-"/>

-          <elements xsi:type="xtext:Keyword" value=">"/>

-          <elements xsi:type="xtext:Keyword" value="&lt;"/>

-          <elements xsi:type="xtext:Keyword" value=">="/>

-          <elements xsi:type="xtext:Keyword" value="&lt;="/>

-          <elements xsi:type="xtext:Keyword" value="="/>

-          <elements xsi:type="xtext:Keyword" value="&lt;>"/>

-          <elements xsi:type="xtext:Keyword" value="and"/>

-          <elements xsi:type="xtext:Keyword" value="or"/>

-          <elements xsi:type="xtext:Keyword" value="xor"/>

-          <elements xsi:type="xtext:Keyword" value="implies"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLNavigationOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigationOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="."/>

-          <elements xsi:type="xtext:Keyword" value="->"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="Identifier">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.8"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="StringLiteral">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.4"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="BinaryOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BinaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.25"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.26"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="InfixOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BinaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.20"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigationOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigationOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.21"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnaryOperatorCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.19"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLUnrestrictedName">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.22"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnrestrictedName">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.28"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLUnreservedName">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.39"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.37"/>

-        <elements xsi:type="xtext:Keyword" value="Tuple"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnreservedName">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.30"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PathNameCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathNameCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.33"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value="::"/>

-          <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.34"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="FirstPathElementCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="element" operator="=">

-        <terminal xsi:type="xtext:CrossReference">

-          <type metamodel="/2/@metamodelDeclarations.1">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement"/>

-          </type>

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NextPathElementCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="element" operator="=">

-        <terminal xsi:type="xtext:CrossReference">

-          <type metamodel="/2/@metamodelDeclarations.1">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement"/>

-          </type>

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.31"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="URIPathNameCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathNameCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.36"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value="::"/>

-          <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.34"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="URIFirstPathElementCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Assignment" feature="element" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/2/@metamodelDeclarations.1">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/2/@metamodelDeclarations.2">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementWithURICS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="element" operator="=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/2/@metamodelDeclarations.1">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Namespace"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.17"/>

-            </terminal>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveTypeIdentifier">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Keyword" value="Boolean"/>

-        <elements xsi:type="xtext:Keyword" value="Integer"/>

-        <elements xsi:type="xtext:Keyword" value="Real"/>

-        <elements xsi:type="xtext:Keyword" value="String"/>

-        <elements xsi:type="xtext:Keyword" value="UnlimitedNatural"/>

-        <elements xsi:type="xtext:Keyword" value="OclAny"/>

-        <elements xsi:type="xtext:Keyword" value="OclInvalid"/>

-        <elements xsi:type="xtext:Keyword" value="OclVoid"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveTypeCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PrimitiveTypeRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.37"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionTypeIdentifier">

-      <type metamodel="/2/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Keyword" value="Set"/>

-        <elements xsi:type="xtext:Keyword" value="Bag"/>

-        <elements xsi:type="xtext:Keyword" value="Sequence"/>

-        <elements xsi:type="xtext:Keyword" value="Collection"/>

-        <elements xsi:type="xtext:Keyword" value="OrderedSet"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionTypeCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//CollectionTypeCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.39"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MultiplicityBoundsCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//MultiplicityBoundsCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="lowerBound" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.10"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=".."/>

-          <elements xsi:type="xtext:Assignment" feature="upperBound" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.11"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MultiplicityCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//MultiplicityCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="["/>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.41"/>

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.43"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="]"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MultiplicityStringCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//MultiplicityStringCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="stringBounds" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="*"/>

-          <elements xsi:type="xtext:Keyword" value="+"/>

-          <elements xsi:type="xtext:Keyword" value="?"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TupleTypeCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TupleTypeCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="Tuple"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.45"/>

-            </elements>

-            <elements xsi:type="xtext:Group" cardinality="*">

-              <elements xsi:type="xtext:Keyword" value=","/>

-              <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.45"/>

-              </elements>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TuplePartCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TuplePartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//CollectionLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.40"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.47"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.47"/>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionLiteralPartCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//CollectionLiteralPartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="expressionCS" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=".."/>

-          <elements xsi:type="xtext:Assignment" feature="lastExpressionCS" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ConstructorPartCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ConstructorPartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="property" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/2/@metamodelDeclarations.1">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//PrimitiveLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.52"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.53"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.54"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.55"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.56"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.57"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TupleLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TupleLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="Tuple"/>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.51"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value=","/>

-          <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.51"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TupleLiteralPartCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TupleLiteralPartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NumberLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NumberLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.12"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="StringLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//StringLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" cardinality="+" feature="name" operator="+=">

-        <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.23"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="BooleanLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BooleanLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="true"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="false"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnlimitedNaturalLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnlimitedNaturalLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/2/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnlimitedNaturalLiteralExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="*"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="InvalidLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InvalidLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/2/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InvalidLiteralExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="invalid"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NullLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NullLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/2/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NullLiteralExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="null"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeLiteralCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.38"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.40"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.44"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeLiteralWithMultiplicityCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.58"/>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="multiplicity" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.42"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeLiteralExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TypeLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.59"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeNameExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TypeNameExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="pathName" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.32"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeExpCS">

-      <type metamodel="/2/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.61"/>

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.58"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="multiplicity" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.42"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:RuleCall" rule="/2/@rules.64"/>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Action" feature="ownedExpression" operator="+=">

-              <type metamodel="/2/@metamodelDeclarations.3">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InfixExpCS"/>

-              </type>

-            </elements>

-            <elements xsi:type="xtext:Assignment" feature="ownedOperator" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.24"/>

-            </elements>

-            <elements xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Group">

-                <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.64"/>

-                </elements>

-                <elements xsi:type="xtext:Group" cardinality="*">

-                  <elements xsi:type="xtext:Assignment" feature="ownedOperator" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.24"/>

-                  </elements>

-                  <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.64"/>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Group" cardinality="?">

-                  <elements xsi:type="xtext:Assignment" feature="ownedOperator" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.24"/>

-                  </elements>

-                  <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.72"/>

-                  </elements>

-                </elements>

-              </elements>

-              <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.72"/>

-              </elements>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/2/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//PrefixExpCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" cardinality="+" feature="ownedOperator" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.27"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.72"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.72"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrefixedExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/2/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//PrefixExpCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" cardinality="+" feature="ownedOperator" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.27"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.65"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.65"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimaryExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.74"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.71"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.75"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.49"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.50"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.46"/>

-        <elements xsi:type="xtext:RuleCall" rule="/2/@rules.60"/>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/2/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NameExpCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="pathName" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.32"/>

-          </elements>

-          <elements xsi:type="xtext:Alternatives">

-            <elements xsi:type="xtext:Group">

-              <elements xsi:type="xtext:Action" feature="nameExp" operator="=">

-                <type metamodel="/2/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//IndexExpCS"/>

-                </type>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="["/>

-              <elements xsi:type="xtext:Assignment" feature="firstIndexes" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-              </elements>

-              <elements xsi:type="xtext:Group" cardinality="*">

-                <elements xsi:type="xtext:Keyword" value=","/>

-                <elements xsi:type="xtext:Assignment" feature="firstIndexes" operator="+=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-                </elements>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="]"/>

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Keyword" value="["/>

-                <elements xsi:type="xtext:Assignment" feature="secondIndexes" operator="+=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-                </elements>

-                <elements xsi:type="xtext:Group" cardinality="*">

-                  <elements xsi:type="xtext:Keyword" value=","/>

-                  <elements xsi:type="xtext:Assignment" feature="secondIndexes" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="]"/>

-              </elements>

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Assignment" feature="atPre" operator="?=">

-                  <terminal xsi:type="xtext:Keyword" value="@"/>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="pre"/>

-              </elements>

-            </elements>

-            <elements xsi:type="xtext:Group">

-              <elements xsi:type="xtext:Action" feature="nameExp" operator="=">

-                <type metamodel="/2/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ConstructorExpCS"/>

-                </type>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="{"/>

-              <elements xsi:type="xtext:Alternatives">

-                <elements xsi:type="xtext:Group">

-                  <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.48"/>

-                  </elements>

-                  <elements xsi:type="xtext:Group" cardinality="*">

-                    <elements xsi:type="xtext:Keyword" value=","/>

-                    <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.48"/>

-                    </elements>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Assignment" feature="value" operator="=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.23"/>

-                </elements>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="}"/>

-            </elements>

-            <elements xsi:type="xtext:Group">

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Assignment" feature="atPre" operator="?=">

-                  <terminal xsi:type="xtext:Keyword" value="@"/>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="pre"/>

-              </elements>

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Action" feature="nameExp" operator="=">

-                  <type metamodel="/2/@metamodelDeclarations.3">

-                    <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InvocationExpCS"/>

-                  </type>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="("/>

-                <elements xsi:type="xtext:Group" cardinality="?">

-                  <elements xsi:type="xtext:Assignment" feature="argument" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.66"/>

-                  </elements>

-                  <elements xsi:type="xtext:Assignment" cardinality="*" feature="argument" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.68"/>

-                  </elements>

-                  <elements xsi:type="xtext:Group" cardinality="?">

-                    <elements xsi:type="xtext:Assignment" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.69"/>

-                    </elements>

-                    <elements xsi:type="xtext:Assignment" cardinality="*" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.68"/>

-                    </elements>

-                  </elements>

-                  <elements xsi:type="xtext:Group" cardinality="?">

-                    <elements xsi:type="xtext:Assignment" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.67"/>

-                    </elements>

-                    <elements xsi:type="xtext:Assignment" cardinality="*" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.68"/>

-                    </elements>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value=")"/>

-              </elements>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingArgCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingBarArgCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="prefix" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="|"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingCommaArgCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="prefix" operator="=">

-          <terminal xsi:type="xtext:Keyword" value=","/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingSemiArgCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="prefix" operator="=">

-          <terminal xsi:type="xtext:Keyword" value=";"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingArgExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="IfExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//IfExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="if"/>

-        <elements xsi:type="xtext:Assignment" feature="condition" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="then"/>

-        <elements xsi:type="xtext:Assignment" feature="thenExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="else"/>

-        <elements xsi:type="xtext:Assignment" feature="elseExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="endif"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LetExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//LetExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="let"/>

-        <elements xsi:type="xtext:Assignment" feature="variable" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.73"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value=","/>

-          <elements xsi:type="xtext:Assignment" feature="variable" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.73"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="in"/>

-        <elements xsi:type="xtext:Assignment" feature="in" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LetVariableCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//LetVariableCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.14"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.62"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NestedExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NestedExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="("/>

-        <elements xsi:type="xtext:Assignment" feature="source" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/2/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=")"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="SelfExpCS">

-      <type metamodel="/2/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//SelfExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/2/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//SelfExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="self"/>

-      </alternatives>

-    </rules>

-  </xtext:Grammar>

-</xmi:XMI>

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/QVTimperative.xtextbin b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/QVTimperative.xtextbin
new file mode 100644
index 0000000..7e6b88e
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/QVTimperative.xtextbin
Binary files differ
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperative.tokens b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperative.tokens
index ad939d9..7d0d089 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperative.tokens
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperative.tokens
@@ -1,154 +1,154 @@
-T__42=42

-T__86=86

-T__28=28

-T__57=57

-T__23=23

-T__80=80

-T__51=51

-RULE_LETTER_CHARACTER=9

-T__69=69

-T__47=47

-T__73=73

-T__50=50

-T__21=21

-RULE_ML_SINGLE_QUOTED_STRING=11

-T__65=65

-T__19=19

-T__72=72

-T__70=70

-T__67=67

-T__74=74

-T__39=39

-T__30=30

-T__46=46

-T__52=52

 T__68=68

-T__17=17

+T__69=69

+T__66=66

+T__67=67

+T__64=64

+T__29=29

+T__65=65

+T__28=28

 T__62=62

-RULE_INT=6

 T__27=27

+T__63=63

+T__26=26

+RULE_ESCAPED_CHARACTER=8

+T__25=25

 T__24=24

+T__23=23

+T__22=22

+RULE_ANY_OTHER=15

+T__21=21

+T__20=20

+RULE_ESCAPED_ID=5

+RULE_DOUBLE_QUOTED_STRING=10

+T__61=61

+T__60=60

+T__55=55

+T__56=56

+T__19=19

+T__57=57

+T__58=58

+T__16=16

+T__51=51

+T__52=52

+T__18=18

+T__53=53

+T__17=17

+T__54=54

+T__59=59

+RULE_SIMPLE_ID=4

+RULE_INT=6

+T__50=50

+T__42=42

+T__43=43

+T__40=40

+RULE_ML_SINGLE_QUOTED_STRING=11

+T__41=41

+T__80=80

+T__46=46

+T__81=81

+T__47=47

+T__82=82

+T__44=44

+T__83=83

+T__45=45

+T__48=48

 T__49=49

 RULE_SINGLE_QUOTED_STRING=7

-T__61=61

-RULE_DOUBLE_QUOTED_STRING=10

-T__59=59

-T__48=48

-T__54=54

-T__34=34

-T__56=56

-RULE_ESCAPED_CHARACTER=8

-RULE_ML_COMMENT=12

-T__35=35

-T__78=78

-T__36=36

-T__20=20

-T__58=58

-T__79=79

-T__64=64

-RULE_SIMPLE_ID=4

-T__44=44

-T__66=66

-T__33=33

-T__22=22

-T__77=77

-T__29=29

-T__45=45

-T__55=55

-RULE_ESCAPED_ID=5

-T__84=84

-RULE_WS=14

-T__63=63

-T__75=75

-T__43=43

-T__31=31

-T__40=40

-T__53=53

 T__85=85

-T__16=16

-T__32=32

-T__38=38

-T__76=76

-T__37=37

-RULE_ANY_OTHER=15

-T__82=82

-T__26=26

-T__81=81

-T__25=25

 RULE_SL_COMMENT=13

-T__83=83

-T__60=60

-T__41=41

+T__84=84

+T__86=86

+RULE_ML_COMMENT=12

+RULE_LETTER_CHARACTER=9

+T__30=30

+T__31=31

+T__32=32

 T__71=71

-T__18=18

-'<'=47

-'pre'=80

-'..'=71

-'>'=46

-'transformation'=39

-'let'=85

-'else'=83

-'invalid'=77

-'-'=42

-'Integer'=59

-'String'=61

-'?'=74

-'Bag'=67

-'map'=16

-':='=21

+T__33=33

+T__72=72

+T__34=34

+T__35=35

+T__70=70

+T__36=36

+T__37=37

+T__38=38

+T__39=39

+RULE_WS=14

+T__76=76

+T__75=75

+T__74=74

+T__73=73

+T__79=79

+T__78=78

+T__77=77

 '>='=48

-'<='=22

-'='=49

-'Real'=60

-'Sequence'=68

-'::'=33

-'uses'=28

-'Boolean'=58

-'xor'=53

-'{'=18

-'OclVoid'=65

-'then'=82

-'OrderedSet'=70

-':'=32

-'OclAny'=63

-'Tuple'=57

-'.'=55

-'*'=34

-'<>'=50

-'Set'=66

-'imports'=27

-'}'=20

-'->'=56

-'self'=86

-'where'=19

-';'=23

-'true'=75

-']'=73

-'default'=26

-'false'=76

-','=24

-'endif'=84

-'refines'=41

-'not'=43

-'query'=38

-'['=72

-'or'=52

 '/'=44

-'Collection'=69

-'and'=51

-'implies'=54

-'realize'=40

-'|'=25

-')'=30

-'OclInvalid'=64

-'@'=79

-'import'=31

-'if'=81

-'('=29

+'Sequence'=68

+'where'=19

+'then'=82

 'enforce'=37

-'UnlimitedNatural'=62

-'check'=36

-'in'=17

-'null'=78

+':='=21

+'Real'=60

+'>'=46

+'Integer'=59

+';'=23

+'Boolean'=58

+'<>'=50

+'uses'=28

+'transformation'=39

+'OclInvalid'=64

 '+'=45

+'pre'=80

+'.'=55

 'library'=35

+'imports'=27

+'Set'=66

+'import'=31

+'true'=75

+'else'=83

+'let'=85

+'and'=51

+'{'=18

+'check'=36

+'?'=74

+'OclVoid'=65

+'if'=81

+':'=32

+'('=29

+'not'=43

+'-'=42

+','=24

+'in'=17

+'default'=26

+']'=73

+'query'=38

+'..'=71

+'|'=25

+'OrderedSet'=70

+'UnlimitedNatural'=62

+'null'=78

+'Collection'=69

+'Tuple'=57

+'String'=61

+'='=49

+'map'=16

+'@'=79

+'Bag'=67

+'::'=33

+')'=30

+'xor'=53

+'->'=56

+'}'=20

+'refines'=41

+'<='=22

+'false'=76

+'realize'=40

+'<'=47

+'invalid'=77

+'OclAny'=63

+'['=72

+'*'=34

+'or'=52

+'implies'=54

+'self'=86

+'endif'=84

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperativeLexer.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperativeLexer.java
index 0c89b0e..986037e 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperativeLexer.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperativeLexer.java
@@ -12,90 +12,90 @@
 
 @SuppressWarnings("all")
 public class InternalQVTimperativeLexer extends Lexer {
-    public static final int T__42=42;
-    public static final int T__86=86;
-    public static final int T__28=28;
-    public static final int T__23=23;
-    public static final int T__57=57;
-    public static final int T__51=51;
-    public static final int T__80=80;
-    public static final int RULE_LETTER_CHARACTER=9;
-    public static final int T__47=47;
-    public static final int T__69=69;
-    public static final int T__73=73;
-    public static final int T__50=50;
-    public static final int T__21=21;
-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
-    public static final int T__19=19;
-    public static final int T__65=65;
-    public static final int T__72=72;
-    public static final int T__70=70;
-    public static final int T__67=67;
-    public static final int T__74=74;
-    public static final int T__39=39;
-    public static final int T__30=30;
-    public static final int T__46=46;
-    public static final int T__52=52;
     public static final int T__68=68;
-    public static final int T__17=17;
-    public static final int T__62=62;
-    public static final int RULE_INT=6;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__29=29;
+    public static final int T__64=64;
+    public static final int T__28=28;
+    public static final int T__65=65;
     public static final int T__27=27;
+    public static final int T__62=62;
+    public static final int T__26=26;
+    public static final int T__63=63;
+    public static final int T__25=25;
+    public static final int RULE_ESCAPED_CHARACTER=8;
     public static final int T__24=24;
+    public static final int T__23=23;
+    public static final int T__22=22;
+    public static final int RULE_ANY_OTHER=15;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int RULE_ESCAPED_ID=5;
+    public static final int RULE_DOUBLE_QUOTED_STRING=10;
+    public static final int T__61=61;
+    public static final int EOF=-1;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__19=19;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__16=16;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__18=18;
+    public static final int T__53=53;
+    public static final int T__17=17;
+    public static final int T__54=54;
+    public static final int T__59=59;
+    public static final int RULE_SIMPLE_ID=4;
+    public static final int RULE_INT=6;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
+    public static final int T__46=46;
+    public static final int T__80=80;
+    public static final int T__47=47;
+    public static final int T__81=81;
+    public static final int T__44=44;
+    public static final int T__82=82;
+    public static final int T__45=45;
+    public static final int T__83=83;
+    public static final int T__48=48;
     public static final int T__49=49;
     public static final int RULE_SINGLE_QUOTED_STRING=7;
-    public static final int T__61=61;
-    public static final int RULE_DOUBLE_QUOTED_STRING=10;
-    public static final int T__59=59;
-    public static final int T__48=48;
-    public static final int T__54=54;
-    public static final int T__34=34;
-    public static final int T__56=56;
-    public static final int RULE_ESCAPED_CHARACTER=8;
-    public static final int RULE_ML_COMMENT=12;
-    public static final int T__35=35;
-    public static final int T__78=78;
-    public static final int T__36=36;
-    public static final int T__20=20;
-    public static final int T__58=58;
-    public static final int T__79=79;
-    public static final int T__64=64;
-    public static final int RULE_SIMPLE_ID=4;
-    public static final int T__44=44;
-    public static final int T__66=66;
-    public static final int T__33=33;
-    public static final int T__22=22;
-    public static final int T__77=77;
-    public static final int T__55=55;
-    public static final int T__45=45;
-    public static final int T__29=29;
-    public static final int RULE_ESCAPED_ID=5;
-    public static final int T__84=84;
-    public static final int T__63=63;
-    public static final int RULE_WS=14;
-    public static final int T__43=43;
-    public static final int T__75=75;
-    public static final int T__31=31;
-    public static final int T__40=40;
-    public static final int EOF=-1;
-    public static final int T__53=53;
-    public static final int T__32=32;
-    public static final int T__16=16;
     public static final int T__85=85;
-    public static final int T__38=38;
-    public static final int T__37=37;
-    public static final int T__76=76;
-    public static final int T__26=26;
-    public static final int T__82=82;
-    public static final int RULE_ANY_OTHER=15;
-    public static final int T__25=25;
-    public static final int T__81=81;
+    public static final int T__84=84;
     public static final int RULE_SL_COMMENT=13;
-    public static final int T__60=60;
-    public static final int T__83=83;
-    public static final int T__41=41;
-    public static final int T__18=18;
+    public static final int T__86=86;
+    public static final int RULE_LETTER_CHARACTER=9;
+    public static final int RULE_ML_COMMENT=12;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
     public static final int T__71=71;
+    public static final int T__34=34;
+    public static final int T__72=72;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__70=70;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int T__76=76;
+    public static final int RULE_WS=14;
+    public static final int T__75=75;
+    public static final int T__74=74;
+    public static final int T__73=73;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__77=77;
 
     // delegates
     // delegators
@@ -2838,7 +2838,7 @@
         "\1\54\3\uffff\1\62\3\uffff\1\65\13\uffff\1\61\1\67\1\66\6\uffff"+
         "\1\30\2\uffff\1\57";
     static final String DFA11_specialS =
-        "\1\0\56\uffff\1\1\1\2\u0114\uffff}>";
+        "\1\2\56\uffff\1\1\1\0\u0114\uffff}>";
     static final String[] DFA11_transitionS = {
             "\11\65\2\64\2\65\1\64\22\65\1\64\1\65\1\57\4\65\1\60\1\15\1"+
             "\16\1\17\1\31\1\11\1\26\1\37\1\30\12\63\1\6\1\10\1\7\1\33\1"+
@@ -3210,6 +3210,26 @@
         	int _s = s;
             switch ( s ) {
                     case 0 : 
+                        int LA11_48 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA11_48>='\u0000' && LA11_48<='\uFFFF')) ) {s = 121;}
+
+                        else s = 53;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 1 : 
+                        int LA11_47 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA11_47>='\u0000' && LA11_47<='\uFFFF')) ) {s = 120;}
+
+                        else s = 53;
+
+                        if ( s>=0 ) return s;
+                        break;
+                    case 2 : 
                         int LA11_0 = input.LA(1);
 
                         s = -1;
@@ -3321,26 +3341,6 @@
 
                         if ( s>=0 ) return s;
                         break;
-                    case 1 : 
-                        int LA11_47 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA11_47>='\u0000' && LA11_47<='\uFFFF')) ) {s = 120;}
-
-                        else s = 53;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
-                        int LA11_48 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA11_48>='\u0000' && LA11_48<='\uFFFF')) ) {s = 121;}
-
-                        else s = 53;
-
-                        if ( s>=0 ) return s;
-                        break;
             }
             NoViableAltException nvae =
                 new NoViableAltException(getDescription(), 11, _s, input);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperativeParser.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperativeParser.java
index 9e3b69a..b22bf42 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperativeParser.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src-gen/org/eclipse/qvtd/xtext/qvtimperative/parser/antlr/internal/InternalQVTimperativeParser.java
@@ -24,90 +24,90 @@
     public static final String[] tokenNames = new String[] {

         "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_SIMPLE_ID", "RULE_ESCAPED_ID", "RULE_INT", "RULE_SINGLE_QUOTED_STRING", "RULE_ESCAPED_CHARACTER", "RULE_LETTER_CHARACTER", "RULE_DOUBLE_QUOTED_STRING", "RULE_ML_SINGLE_QUOTED_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'map'", "'in'", "'{'", "'where'", "'}'", "':='", "'<='", "';'", "','", "'|'", "'default'", "'imports'", "'uses'", "'('", "')'", "'import'", "':'", "'::'", "'*'", "'library'", "'check'", "'enforce'", "'query'", "'transformation'", "'realize'", "'refines'", "'-'", "'not'", "'/'", "'+'", "'>'", "'<'", "'>='", "'='", "'<>'", "'and'", "'or'", "'xor'", "'implies'", "'.'", "'->'", "'Tuple'", "'Boolean'", "'Integer'", "'Real'", "'String'", "'UnlimitedNatural'", "'OclAny'", "'OclInvalid'", "'OclVoid'", "'Set'", "'Bag'", "'Sequence'", "'Collection'", "'OrderedSet'", "'..'", "'['", "']'", "'?'", "'true'", "'false'", "'invalid'", "'null'", "'@'", "'pre'", "'if'", "'then'", "'else'", "'endif'", "'let'", "'self'"

     };

-    public static final int T__42=42;

-    public static final int T__86=86;

-    public static final int T__28=28;

-    public static final int T__57=57;

-    public static final int T__23=23;

-    public static final int T__80=80;

-    public static final int T__51=51;

-    public static final int RULE_LETTER_CHARACTER=9;

-    public static final int T__69=69;

-    public static final int T__47=47;

-    public static final int T__73=73;

-    public static final int T__50=50;

-    public static final int T__21=21;

-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

-    public static final int T__65=65;

-    public static final int T__19=19;

-    public static final int T__72=72;

-    public static final int T__70=70;

-    public static final int T__67=67;

-    public static final int T__74=74;

-    public static final int T__39=39;

-    public static final int T__30=30;

-    public static final int T__46=46;

-    public static final int T__52=52;

     public static final int T__68=68;

-    public static final int T__17=17;

+    public static final int T__69=69;

+    public static final int T__66=66;

+    public static final int T__67=67;

+    public static final int T__64=64;

+    public static final int T__29=29;

+    public static final int T__65=65;

+    public static final int T__28=28;

     public static final int T__62=62;

-    public static final int RULE_INT=6;

     public static final int T__27=27;

+    public static final int T__63=63;

+    public static final int T__26=26;

+    public static final int RULE_ESCAPED_CHARACTER=8;

+    public static final int T__25=25;

     public static final int T__24=24;

+    public static final int T__23=23;

+    public static final int T__22=22;

+    public static final int RULE_ANY_OTHER=15;

+    public static final int T__21=21;

+    public static final int T__20=20;

+    public static final int RULE_ESCAPED_ID=5;

+    public static final int RULE_DOUBLE_QUOTED_STRING=10;

+    public static final int T__61=61;

+    public static final int T__60=60;

+    public static final int EOF=-1;

+    public static final int T__55=55;

+    public static final int T__56=56;

+    public static final int T__19=19;

+    public static final int T__57=57;

+    public static final int T__58=58;

+    public static final int T__16=16;

+    public static final int T__51=51;

+    public static final int T__52=52;

+    public static final int T__18=18;

+    public static final int T__53=53;

+    public static final int T__17=17;

+    public static final int T__54=54;

+    public static final int T__59=59;

+    public static final int RULE_SIMPLE_ID=4;

+    public static final int RULE_INT=6;

+    public static final int T__50=50;

+    public static final int T__42=42;

+    public static final int T__43=43;

+    public static final int T__40=40;

+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

+    public static final int T__41=41;

+    public static final int T__80=80;

+    public static final int T__46=46;

+    public static final int T__81=81;

+    public static final int T__47=47;

+    public static final int T__82=82;

+    public static final int T__44=44;

+    public static final int T__83=83;

+    public static final int T__45=45;

+    public static final int T__48=48;

     public static final int T__49=49;

     public static final int RULE_SINGLE_QUOTED_STRING=7;

-    public static final int T__61=61;

-    public static final int RULE_DOUBLE_QUOTED_STRING=10;

-    public static final int T__59=59;

-    public static final int T__48=48;

-    public static final int T__54=54;

-    public static final int T__34=34;

-    public static final int T__56=56;

-    public static final int RULE_ESCAPED_CHARACTER=8;

-    public static final int RULE_ML_COMMENT=12;

-    public static final int T__35=35;

-    public static final int T__78=78;

-    public static final int T__36=36;

-    public static final int T__20=20;

-    public static final int T__58=58;

-    public static final int T__79=79;

-    public static final int T__64=64;

-    public static final int RULE_SIMPLE_ID=4;

-    public static final int T__44=44;

-    public static final int T__66=66;

-    public static final int T__33=33;

-    public static final int T__22=22;

-    public static final int T__77=77;

-    public static final int T__29=29;

-    public static final int T__45=45;

-    public static final int T__55=55;

-    public static final int RULE_ESCAPED_ID=5;

-    public static final int T__84=84;

-    public static final int RULE_WS=14;

-    public static final int T__63=63;

-    public static final int T__75=75;

-    public static final int T__43=43;

-    public static final int T__31=31;

-    public static final int T__40=40;

-    public static final int EOF=-1;

-    public static final int T__53=53;

     public static final int T__85=85;

-    public static final int T__16=16;

-    public static final int T__32=32;

-    public static final int T__38=38;

-    public static final int T__76=76;

-    public static final int T__37=37;

-    public static final int RULE_ANY_OTHER=15;

-    public static final int T__82=82;

-    public static final int T__26=26;

-    public static final int T__81=81;

-    public static final int T__25=25;

     public static final int RULE_SL_COMMENT=13;

-    public static final int T__83=83;

-    public static final int T__60=60;

-    public static final int T__41=41;

+    public static final int T__84=84;

+    public static final int T__86=86;

+    public static final int RULE_ML_COMMENT=12;

+    public static final int RULE_LETTER_CHARACTER=9;

+    public static final int T__30=30;

+    public static final int T__31=31;

+    public static final int T__32=32;

     public static final int T__71=71;

-    public static final int T__18=18;

+    public static final int T__33=33;

+    public static final int T__72=72;

+    public static final int T__34=34;

+    public static final int T__35=35;

+    public static final int T__70=70;

+    public static final int T__36=36;

+    public static final int T__37=37;

+    public static final int T__38=38;

+    public static final int T__39=39;

+    public static final int RULE_WS=14;

+    public static final int T__76=76;

+    public static final int T__75=75;

+    public static final int T__74=74;

+    public static final int T__73=73;

+    public static final int T__79=79;

+    public static final int T__78=78;

+    public static final int T__77=77;

 

     // delegates

     // delegators

@@ -17205,11 +17205,11 @@
 

     // Delegated rules

 

-    public final boolean synpred125_InternalQVTimperative() {

+    public final boolean synpred123_InternalQVTimperative() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred125_InternalQVTimperative_fragment(); // can never throw exception

+            synpred123_InternalQVTimperative_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

@@ -17233,11 +17233,11 @@
         state.failed=false;

         return success;

     }

-    public final boolean synpred123_InternalQVTimperative() {

+    public final boolean synpred125_InternalQVTimperative() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred123_InternalQVTimperative_fragment(); // can never throw exception

+            synpred125_InternalQVTimperative_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

@@ -17262,46 +17262,47 @@
     static final String DFA14_eofS =

         "\21\uffff";

     static final String DFA14_minS =

-        "\1\22\1\4\1\uffff\11\22\1\4\3\22\1\uffff";

+        "\1\22\1\4\11\22\1\4\3\22\2\uffff";

     static final String DFA14_maxS =

-        "\1\22\1\126\1\uffff\15\117\1\uffff";

+        "\1\22\1\126\15\117\2\uffff";

     static final String DFA14_acceptS =

-        "\2\uffff\1\2\15\uffff\1\1";

+        "\17\uffff\1\2\1\1";

     static final String DFA14_specialS =

         "\21\uffff}>";

     static final String[] DFA14_transitionS = {

             "\1\1",

-            "\1\3\1\4\2\2\10\uffff\1\12\3\uffff\1\2\5\uffff\1\2\1\10\1"+

-            "\17\1\2\1\uffff\1\7\2\uffff\1\2\1\11\1\5\1\6\1\13\1\16\1\14"+

-            "\1\15\2\2\15\uffff\16\2\4\uffff\4\2\2\uffff\1\2\3\uffff\2\2",

+            "\1\2\1\3\2\17\10\uffff\1\11\3\uffff\1\17\5\uffff\1\17\1\7"+

+            "\1\16\1\17\1\uffff\1\6\2\uffff\1\17\1\10\1\4\1\5\1\12\1\15\1"+

+            "\13\1\14\2\17\15\uffff\16\17\4\uffff\4\17\2\uffff\1\17\3\uffff"+

+            "\2\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\2\20\12\uffff\1\20\1\uffff\1\17\2\uffff\3\17\3\uffff\2\20"+

+            "\1\17\1\uffff\2\20\2\17\7\20\1\17\1\uffff\15\17\17\uffff\1\17"+

+            "\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

             "",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\2\20\12\uffff\1\20\1\uffff\1\2\2\uffff\3\2\3\uffff\2\20\1"+

-            "\2\1\uffff\2\20\2\2\7\20\1\2\1\uffff\15\2\17\uffff\1\2\6\uffff"+

-            "\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

             ""

     };

 

@@ -17411,45 +17412,45 @@
     static final String DFA25_eofS =

         "\21\uffff";

     static final String DFA25_minS =

-        "\1\35\1\4\1\uffff\15\22\1\uffff";

+        "\1\35\1\4\15\22\2\uffff";

     static final String DFA25_maxS =

-        "\1\35\1\126\1\uffff\15\117\1\uffff";

+        "\1\35\1\126\15\117\2\uffff";

     static final String DFA25_acceptS =

-        "\2\uffff\1\2\15\uffff\1\1";

+        "\17\uffff\1\2\1\1";

     static final String DFA25_specialS =

         "\21\uffff}>";

     static final String[] DFA25_transitionS = {

             "\1\1",

-            "\1\3\1\4\2\2\10\uffff\1\12\11\uffff\1\2\1\10\1\17\2\2\1\7"+

-            "\2\uffff\1\2\1\11\1\5\1\6\1\13\1\16\1\14\1\15\2\2\15\uffff\16"+

-            "\2\4\uffff\4\2\2\uffff\1\2\3\uffff\2\2",

+            "\1\2\1\3\2\17\10\uffff\1\11\11\uffff\1\17\1\7\1\16\2\17\1"+

+            "\6\2\uffff\1\17\1\10\1\4\1\5\1\12\1\15\1\13\1\14\2\17\15\uffff"+

+            "\16\17\4\uffff\4\17\2\uffff\1\17\3\uffff\2\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

+            "\1\17\2\uffff\3\17\5\uffff\1\17\2\uffff\1\20\2\17\7\uffff"+

+            "\1\17\1\uffff\15\17\17\uffff\1\17\6\uffff\1\17",

             "",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

-            "\1\2\2\uffff\3\2\5\uffff\1\2\2\uffff\1\20\2\2\7\uffff\1\2"+

-            "\1\uffff\15\2\17\uffff\1\2\6\uffff\1\2",

             ""

     };

 

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/AbstractQVTrelationProposalProvider.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/AbstractQVTrelationProposalProvider.java
index 17f8ac7..23aaeb1 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/AbstractQVTrelationProposalProvider.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/AbstractQVTrelationProposalProvider.java
@@ -9,7 +9,7 @@
 import org.eclipse.xtext.ui.editor.contentassist.ContentAssistContext;
 
 /**
- * Represents a generated, default implementation of interface {@link IProposalProvider}.
+ * Represents a generated, default implementation of superclass {@link org.eclipse.ocl.examples.xtext.essentialocl.ui.contentassist.EssentialOCLProposalProvider}.
  * Methods are dynamically dispatched on the first parameter, i.e., you can override them 
  * with a more concrete subtype. 
  */
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/antlr/internal/InternalQVTrelation.tokens b/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/antlr/internal/InternalQVTrelation.tokens
index 490493c..10e4f60 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/antlr/internal/InternalQVTrelation.tokens
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/antlr/internal/InternalQVTrelation.tokens
@@ -1,166 +1,166 @@
-T__42=42

-T__47=47

-T__73=73

-T__21=21

-RULE_ML_SINGLE_QUOTED_STRING=11

-T__72=72

-T__70=70

-T__39=39

-T__30=30

-T__46=46

-T__49=49

-RULE_DOUBLE_QUOTED_STRING=10

-T__54=54

-T__48=48

-RULE_ESCAPED_CHARACTER=8

-T__89=89

-T__20=20

-T__79=79

-T__64=64

-T__44=44

-T__66=66

-T__92=92

-T__88=88

-T__22=22

-RULE_ESCAPED_ID=7

-T__90=90

-T__63=63

-RULE_WS=14

-T__43=43

-T__91=91

-T__40=40

-T__85=85

+T__29=29

+T__28=28

+T__27=27

 T__26=26

 T__25=25

-RULE_SL_COMMENT=13

-T__60=60

-T__41=41

-T__86=86

-T__28=28

-T__23=23

-T__57=57

-T__51=51

-T__80=80

-RULE_LETTER_CHARACTER=9

-T__69=69

-T__50=50

-T__19=19

-T__65=65

-T__67=67

-T__87=87

-T__74=74

-T__52=52

-T__68=68

-T__17=17

-T__62=62

-RULE_INT=4

-T__27=27

+RULE_ESCAPED_CHARACTER=8

 T__24=24

-T__61=61

-RULE_SINGLE_QUOTED_STRING=5

-T__59=59

-T__34=34

-T__56=56

-RULE_ML_COMMENT=12

-T__35=35

-T__78=78

-T__36=36

-T__58=58

-RULE_SIMPLE_ID=6

-T__33=33

-T__77=77

-T__55=55

-T__45=45

-T__29=29

-T__84=84

-T__75=75

-T__31=31

-T__53=53

-T__32=32

-T__16=16

-T__38=38

-T__37=37

-T__76=76

+T__23=23

+T__22=22

 RULE_ANY_OTHER=15

-T__82=82

-T__81=81

-T__83=83

+T__21=21

+T__20=20

+RULE_ESCAPED_ID=7

+RULE_DOUBLE_QUOTED_STRING=10

+T__19=19

+T__91=91

+T__92=92

+T__16=16

+T__90=90

 T__18=18

+T__17=17

+RULE_SIMPLE_ID=6

+T__80=80

+T__81=81

+T__82=82

+T__83=83

+RULE_SINGLE_QUOTED_STRING=5

+T__85=85

+T__84=84

+T__87=87

+T__86=86

+T__89=89

+T__88=88

+RULE_LETTER_CHARACTER=9

+RULE_ML_COMMENT=12

 T__71=71

-'<'=42

-'pre'=81

-'..'=76

-'>'=41

-'transformation'=33

-'checkonly'=19

-'let'=86

-'else'=84

-'domain'=21

-'key'=27

-'invalid'=79

-'-'=37

-'Integer'=55

-'String'=57

-'?'=67

+T__72=72

+T__70=70

+T__76=76

+T__75=75

+T__74=74

+T__73=73

+T__79=79

+T__78=78

+T__77=77

+T__68=68

+T__69=69

+T__66=66

+T__67=67

+T__64=64

+T__65=65

+T__62=62

+T__63=63

+T__61=61

+T__60=60

+T__55=55

+T__56=56

+T__57=57

+T__58=58

+T__51=51

+T__52=52

+T__53=53

+T__54=54

+T__59=59

+RULE_INT=4

+T__50=50

+T__42=42

+T__43=43

+T__40=40

+T__41=41

+RULE_ML_SINGLE_QUOTED_STRING=11

+T__46=46

+T__47=47

+T__44=44

+T__45=45

+T__48=48

+T__49=49

+RULE_SL_COMMENT=13

+T__30=30

+T__31=31

+T__32=32

+T__33=33

+T__34=34

+T__35=35

+T__36=36

+T__37=37

+T__38=38

+T__39=39

+RULE_WS=14

 '>='=43

-'Bag'=63

-'<='=44

-'='=45

-'Real'=56

-'Sequence'=64

-'::'=75

-'implementedby'=24

-'Boolean'=54

-'++'=71

-'xor'=49

-'{'=69

-'OclVoid'=61

-'then'=83

-'overrides'=28

-'OrderedSet'=66

-':'=68

-'OclAny'=59

-'Tuple'=53

-'.'=51

-'*'=36

-'<>'=46

-'Set'=62

-'}'=70

-'->'=52

-'self'=88

-'relation'=31

-'where'=35

-';'=18

-'true'=89

-']'=78

-'replace'=17

-'false'=90

-','=72

-'endif'=85

-'not'=38

-'query'=30

-'['=77

-'or'=48

-'/'=39

-'Collection'=65

-'and'=47

-'implies'=50

-'|'=92

-')'=74

-'top'=32

 'primitive'=29

-'_'=16

+'/'=39

+'where'=35

+'Sequence'=64

+'then'=83

+'enforce'=22

+'Real'=56

+'top'=32

+'>'=41

+'Integer'=55

+';'=18

+'Boolean'=54

+'<>'=46

+'transformation'=33

 'OclInvalid'=60

-'@'=91

+'+'=40

+'pre'=81

+'.'=51

+'library'=26

 'import'=25

+'Set'=62

+'++'=71

+'true'=89

+'else'=84

+'extends'=23

+'let'=86

+'key'=27

+'and'=47

+'{'=69

+'?'=67

+'domain'=21

+'OclVoid'=61

 'if'=82

 '('=73

-'when'=34

-'enforce'=22

-'UnlimitedNatural'=58

-'extends'=23

+':'=68

+'not'=38

+'-'=37

+'checkonly'=19

+','=72

 'in'=87

-'null'=80

-'+'=40

-'library'=26

+']'=78

+'query'=30

+'..'=76

+'|'=92

+'when'=34

+'OrderedSet'=66

 'default_values'=20

+'UnlimitedNatural'=58

+'null'=80

+'implementedby'=24

+'Collection'=65

+'Tuple'=53

+'String'=57

+'='=45

+'@'=91

+'::'=75

+'replace'=17

+'Bag'=63

+'_'=16

+')'=74

+'xor'=49

+'->'=52

+'}'=70

+'overrides'=28

+'<='=44

+'false'=90

+'<'=42

+'invalid'=79

+'OclAny'=59

+'['=77

+'*'=36

+'or'=48

+'implies'=50

+'self'=88

+'endif'=85

+'relation'=31

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/antlr/internal/InternalQVTrelationLexer.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/antlr/internal/InternalQVTrelationLexer.java
index 5113f31..0163435 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/antlr/internal/InternalQVTrelationLexer.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/antlr/internal/InternalQVTrelationLexer.java
@@ -12,96 +12,96 @@
 
 @SuppressWarnings("all")
 public class InternalQVTrelationLexer extends Lexer {
-    public static final int T__42=42;
-    public static final int T__47=47;
-    public static final int T__73=73;
-    public static final int T__21=21;
-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
-    public static final int T__72=72;
-    public static final int T__70=70;
-    public static final int T__39=39;
-    public static final int T__30=30;
-    public static final int T__46=46;
-    public static final int T__49=49;
-    public static final int RULE_DOUBLE_QUOTED_STRING=10;
-    public static final int T__54=54;
-    public static final int T__48=48;
-    public static final int RULE_ESCAPED_CHARACTER=8;
-    public static final int T__89=89;
-    public static final int T__20=20;
-    public static final int T__79=79;
-    public static final int T__64=64;
-    public static final int T__44=44;
-    public static final int T__66=66;
-    public static final int T__92=92;
-    public static final int T__88=88;
-    public static final int T__22=22;
-    public static final int RULE_ESCAPED_ID=7;
-    public static final int T__90=90;
-    public static final int RULE_WS=14;
-    public static final int T__63=63;
-    public static final int T__91=91;
-    public static final int T__43=43;
-    public static final int T__40=40;
-    public static final int T__85=85;
+    public static final int T__29=29;
+    public static final int T__28=28;
+    public static final int T__27=27;
     public static final int T__26=26;
     public static final int T__25=25;
-    public static final int RULE_SL_COMMENT=13;
-    public static final int T__60=60;
-    public static final int T__41=41;
-    public static final int T__86=86;
-    public static final int T__28=28;
-    public static final int T__23=23;
-    public static final int T__57=57;
-    public static final int T__51=51;
-    public static final int T__80=80;
-    public static final int RULE_LETTER_CHARACTER=9;
-    public static final int T__69=69;
-    public static final int T__50=50;
-    public static final int T__19=19;
-    public static final int T__65=65;
-    public static final int T__67=67;
-    public static final int T__87=87;
-    public static final int T__74=74;
-    public static final int T__52=52;
-    public static final int T__68=68;
-    public static final int T__17=17;
-    public static final int T__62=62;
-    public static final int RULE_INT=4;
-    public static final int T__27=27;
+    public static final int RULE_ESCAPED_CHARACTER=8;
     public static final int T__24=24;
-    public static final int T__61=61;
-    public static final int RULE_SINGLE_QUOTED_STRING=5;
-    public static final int T__59=59;
-    public static final int T__34=34;
-    public static final int T__56=56;
-    public static final int RULE_ML_COMMENT=12;
-    public static final int T__35=35;
-    public static final int T__78=78;
-    public static final int T__36=36;
-    public static final int T__58=58;
-    public static final int RULE_SIMPLE_ID=6;
-    public static final int T__33=33;
-    public static final int T__77=77;
-    public static final int T__55=55;
-    public static final int T__45=45;
-    public static final int T__29=29;
-    public static final int T__84=84;
-    public static final int T__75=75;
-    public static final int T__31=31;
-    public static final int EOF=-1;
-    public static final int T__53=53;
-    public static final int T__32=32;
-    public static final int T__16=16;
-    public static final int T__38=38;
-    public static final int T__37=37;
-    public static final int T__76=76;
+    public static final int T__23=23;
+    public static final int T__22=22;
     public static final int RULE_ANY_OTHER=15;
-    public static final int T__82=82;
-    public static final int T__81=81;
-    public static final int T__83=83;
-    public static final int T__71=71;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int RULE_ESCAPED_ID=7;
+    public static final int RULE_DOUBLE_QUOTED_STRING=10;
+    public static final int EOF=-1;
+    public static final int T__19=19;
+    public static final int T__91=91;
+    public static final int T__92=92;
+    public static final int T__16=16;
+    public static final int T__90=90;
     public static final int T__18=18;
+    public static final int T__17=17;
+    public static final int RULE_SIMPLE_ID=6;
+    public static final int T__80=80;
+    public static final int T__81=81;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int RULE_SINGLE_QUOTED_STRING=5;
+    public static final int T__85=85;
+    public static final int T__84=84;
+    public static final int T__87=87;
+    public static final int T__86=86;
+    public static final int T__89=89;
+    public static final int T__88=88;
+    public static final int RULE_ML_COMMENT=12;
+    public static final int RULE_LETTER_CHARACTER=9;
+    public static final int T__71=71;
+    public static final int T__72=72;
+    public static final int T__70=70;
+    public static final int T__76=76;
+    public static final int T__75=75;
+    public static final int T__74=74;
+    public static final int T__73=73;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__77=77;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__64=64;
+    public static final int T__65=65;
+    public static final int T__62=62;
+    public static final int T__63=63;
+    public static final int T__61=61;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__59=59;
+    public static final int RULE_INT=4;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int RULE_SL_COMMENT=13;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int RULE_WS=14;
 
     // delegates
     // delegators
@@ -2921,25 +2921,25 @@
 
     protected DFA11 dfa11 = new DFA11(this);
     static final String DFA11_eotS =
-        "\1\uffff\1\65\1\66\1\uffff\13\66\1\uffff\1\121\1\66\1\126\1\130"+
-        "\1\132\1\135\1\uffff\2\66\1\142\10\66\1\uffff\1\160\7\uffff\2\66"+
-        "\2\uffff\2\64\7\uffff\1\66\1\uffff\7\66\1\u008b\1\u008c\4\66\1\u0091"+
-        "\6\66\4\uffff\2\66\13\uffff\2\66\2\uffff\13\66\12\uffff\2\66\6\uffff"+
-        "\13\66\2\uffff\1\66\1\u00b9\1\u00ba\1\66\1\uffff\1\66\1\u00bd\1"+
-        "\66\1\u00bf\4\66\1\u00c5\1\66\1\u00c7\1\u00c8\2\66\1\u00cb\3\66"+
-        "\1\u00cf\17\66\1\u00e1\4\66\2\uffff\2\66\1\uffff\1\66\1\uffff\1"+
-        "\66\1\u00eb\1\u00ec\1\u00ed\1\66\1\uffff\1\u00ef\2\uffff\2\66\1"+
-        "\uffff\1\66\1\u00f3\1\66\1\uffff\7\66\1\u00fc\7\66\1\u0104\1\66"+
-        "\1\uffff\7\66\1\u010d\1\66\3\uffff\1\u010f\1\uffff\1\u0110\2\66"+
-        "\1\uffff\10\66\1\uffff\1\u011b\4\66\1\u0120\1\66\1\uffff\3\66\1"+
-        "\u0125\4\66\1\uffff\1\66\2\uffff\2\66\1\u012d\2\66\1\u0130\4\66"+
-        "\1\uffff\1\u0135\3\66\1\uffff\1\u0139\1\u013a\1\66\1\u013c\1\uffff"+
-        "\1\u013d\1\u013e\3\66\1\u0142\1\u0143\1\uffff\2\66\1\uffff\1\66"+
-        "\1\u0147\2\66\1\uffff\1\u014a\2\66\2\uffff\1\66\3\uffff\3\66\2\uffff"+
-        "\1\u0151\2\66\1\uffff\2\66\1\uffff\1\u0156\2\66\1\u0159\1\u015a"+
-        "\1\66\1\uffff\4\66\1\uffff\2\66\2\uffff\2\66\1\u0164\1\u0165\1\u0166"+
-        "\4\66\3\uffff\5\66\1\u0170\2\66\1\u0173\1\uffff\1\u0174\1\66\2\uffff"+
-        "\1\66\1\u0177\1\uffff";
+        "\1\uffff\1\65\1\67\1\uffff\13\67\1\uffff\1\121\1\67\1\126\1\130"+
+        "\1\132\1\135\1\uffff\2\67\1\142\10\67\1\uffff\1\160\7\uffff\2\67"+
+        "\2\uffff\2\64\7\uffff\1\67\1\uffff\7\67\1\u008b\1\u008c\4\67\1\u0091"+
+        "\6\67\4\uffff\2\67\13\uffff\2\67\2\uffff\13\67\12\uffff\2\67\6\uffff"+
+        "\13\67\2\uffff\1\67\1\u00b9\1\u00ba\1\67\1\uffff\1\67\1\u00bd\1"+
+        "\67\1\u00bf\4\67\1\u00c5\1\67\1\u00c7\1\u00c8\2\67\1\u00cb\3\67"+
+        "\1\u00cf\17\67\1\u00e1\4\67\2\uffff\2\67\1\uffff\1\67\1\uffff\1"+
+        "\67\1\u00eb\1\u00ec\1\u00ed\1\67\1\uffff\1\u00ef\2\uffff\2\67\1"+
+        "\uffff\1\67\1\u00f3\1\67\1\uffff\7\67\1\u00fc\7\67\1\u0104\1\67"+
+        "\1\uffff\7\67\1\u010d\1\67\3\uffff\1\u010f\1\uffff\1\u0110\2\67"+
+        "\1\uffff\10\67\1\uffff\1\u011b\4\67\1\u0120\1\67\1\uffff\3\67\1"+
+        "\u0125\4\67\1\uffff\1\67\2\uffff\2\67\1\u012d\2\67\1\u0130\4\67"+
+        "\1\uffff\1\u0135\3\67\1\uffff\1\u0139\1\u013a\1\67\1\u013c\1\uffff"+
+        "\1\u013d\1\u013e\3\67\1\u0142\1\u0143\1\uffff\2\67\1\uffff\1\67"+
+        "\1\u0147\2\67\1\uffff\1\u014a\2\67\2\uffff\1\67\3\uffff\3\67\2\uffff"+
+        "\1\u0151\2\67\1\uffff\2\67\1\uffff\1\u0156\2\67\1\u0159\1\u015a"+
+        "\1\67\1\uffff\4\67\1\uffff\2\67\2\uffff\2\67\1\u0164\1\u0165\1\u0166"+
+        "\4\67\3\uffff\5\67\1\u0170\2\67\1\u0173\1\uffff\1\u0174\1\67\2\uffff"+
+        "\1\67\1\u0177\1\uffff";
     static final String DFA11_eofS =
         "\u0178\uffff";
     static final String DFA11_minS =
@@ -3005,7 +3005,7 @@
     static final String DFA11_acceptS =
         "\3\uffff\1\3\13\uffff\1\25\6\uffff\1\36\13\uffff\1\64\1\uffff\1"+
         "\66\1\67\1\71\1\72\1\73\1\76\1\77\2\uffff\1\114\1\115\2\uffff\1"+
-        "\121\1\123\1\126\1\127\1\1\1\121\1\122\1\uffff\1\3\24\uffff\1\25"+
+        "\121\1\123\1\126\1\127\1\1\1\122\1\121\1\uffff\1\3\24\uffff\1\25"+
         "\1\45\1\125\1\26\2\uffff\1\120\1\124\1\30\1\70\1\31\1\34\1\32\1"+
         "\35\1\37\1\33\1\36\2\uffff\1\75\1\44\13\uffff\1\64\1\74\1\65\1\66"+
         "\1\67\1\71\1\72\1\73\1\76\1\77\2\uffff\1\114\1\115\1\116\1\117\1"+
@@ -3019,7 +3019,7 @@
         "\uffff\1\4\2\uffff\1\15\1\16\11\uffff\1\55\1\63\1\62\11\uffff\1"+
         "\11\2\uffff\1\5\1\22\2\uffff\1\53";
     static final String DFA11_specialS =
-        "\1\2\56\uffff\1\0\1\1\u0147\uffff}>";
+        "\1\1\56\uffff\1\0\1\2\u0147\uffff}>";
     static final String[] DFA11_transitionS = {
             "\11\64\2\63\2\64\1\63\22\64\1\63\1\64\1\57\4\64\1\60\1\47\1"+
             "\50\1\17\1\23\1\46\1\20\1\31\1\22\12\62\1\43\1\3\1\25\1\26\1"+
@@ -3028,8 +3028,8 @@
             "\4\1\5\1\6\1\54\2\61\1\7\1\61\1\11\1\10\1\61\1\21\1\12\1\13"+
             "\1\14\1\2\1\53\1\15\2\61\1\16\1\30\2\61\1\44\1\56\1\45\uff82"+
             "\64",
-            "\1\67\10\uffff\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32"+
-            "\66",
+            "\1\66\10\uffff\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32"+
+            "\67",
             "\1\70",
             "",
             "\1\72",
@@ -3093,14 +3093,14 @@
             "\1\u0087",
             "\1\u0088",
             "\1\u0089",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\25\66\1\u008a\4"+
-            "\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\25\67\1\u008a\4"+
+            "\67",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u008d",
             "\1\u008e",
             "\1\u008f",
             "\1\u0090",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0093\3\uffff\1\u0092",
             "\1\u0094",
             "\1\u0095",
@@ -3171,29 +3171,29 @@
             "",
             "",
             "\1\u00b8",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u00bb",
             "",
             "\1\u00bc",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u00be",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u00c0",
             "\1\u00c1",
             "\1\u00c2",
             "\1\u00c3\3\uffff\1\u00c4",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u00c6",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u00c9",
             "\1\u00ca",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u00cc",
             "\1\u00cd",
             "\1\u00ce",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u00d0",
             "\1\u00d1",
             "\1\u00d2\7\uffff\1\u00d3\14\uffff\1\u00d4",
@@ -3209,7 +3209,7 @@
             "\1\u00de",
             "\1\u00df",
             "\1\u00e0",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u00e2\3\uffff\1\u00e3",
             "\1\u00e4",
             "\1\u00e5",
@@ -3222,19 +3222,19 @@
             "\1\u00e9",
             "",
             "\1\u00ea",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u00ee",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
             "",
             "\1\u00f0",
             "\1\u00f1",
             "",
             "\1\u00f2",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u00f4",
             "",
             "\1\u00f5",
@@ -3244,7 +3244,7 @@
             "\1\u00f9",
             "\1\u00fa",
             "\1\u00fb",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u00fd",
             "\1\u00fe",
             "\1\u00ff",
@@ -3252,7 +3252,7 @@
             "\1\u0101",
             "\1\u0102",
             "\1\u0103",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0105",
             "",
             "\1\u0106",
@@ -3262,14 +3262,14 @@
             "\1\u010a",
             "\1\u010b",
             "\1\u010c",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u010e",
             "",
             "",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0111",
             "\1\u0112",
             "",
@@ -3282,18 +3282,18 @@
             "\1\u0119",
             "\1\u011a",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u011c",
             "\1\u011d",
             "\1\u011e",
             "\1\u011f",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0121",
             "",
             "\1\u0122",
             "\1\u0123",
             "\1\u0124",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0126",
             "\1\u0127",
             "\1\u0128",
@@ -3304,42 +3304,42 @@
             "",
             "\1\u012b",
             "\1\u012c",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u012e",
             "\1\u012f",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0131",
             "\1\u0132",
             "\1\u0133",
             "\1\u0134",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0136",
             "\1\u0137",
             "\1\u0138",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u013b",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u013f",
             "\1\u0140",
             "\1\u0141",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
             "\1\u0144",
             "\1\u0145",
             "",
             "\1\u0146",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0148",
             "\1\u0149",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u014b",
             "\1\u014c",
             "",
@@ -3353,18 +3353,18 @@
             "\1\u0150",
             "",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0152",
             "\1\u0153",
             "",
             "\1\u0154",
             "\1\u0155",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0157",
             "\1\u0158",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u015b",
             "",
             "\1\u015c",
@@ -3378,9 +3378,9 @@
             "",
             "\1\u0162",
             "\1\u0163",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0167",
             "\1\u0168",
             "\1\u0169",
@@ -3393,17 +3393,17 @@
             "\1\u016d",
             "\1\u016e",
             "\1\u016f",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0171",
             "\1\u0172",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             "\1\u0175",
             "",
             "",
             "\1\u0176",
-            "\12\66\7\uffff\32\66\4\uffff\1\66\1\uffff\32\66",
+            "\12\67\7\uffff\32\67\4\uffff\1\67\1\uffff\32\67",
             ""
     };
 
@@ -3454,16 +3454,6 @@
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA11_48 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA11_48>='\u0000' && LA11_48<='\uFFFF')) ) {s = 125;}
-
-                        else s = 52;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
                         int LA11_0 = input.LA(1);
 
                         s = -1;
@@ -3573,6 +3563,16 @@
 
                         if ( s>=0 ) return s;
                         break;
+                    case 2 : 
+                        int LA11_48 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA11_48>='\u0000' && LA11_48<='\uFFFF')) ) {s = 125;}
+
+                        else s = 52;
+
+                        if ( s>=0 ) return s;
+                        break;
             }
             NoViableAltException nvae =
                 new NoViableAltException(getDescription(), 11, _s, input);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/antlr/internal/InternalQVTrelationParser.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/antlr/internal/InternalQVTrelationParser.java
index 3db843d..b3abd13 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/antlr/internal/InternalQVTrelationParser.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation.ui/src-gen/org/eclipse/qvtd/xtext/qvtrelation/ui/contentassist/antlr/internal/InternalQVTrelationParser.java
@@ -25,96 +25,96 @@
     public static final String[] tokenNames = new String[] {

         "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_SINGLE_QUOTED_STRING", "RULE_SIMPLE_ID", "RULE_ESCAPED_ID", "RULE_ESCAPED_CHARACTER", "RULE_LETTER_CHARACTER", "RULE_DOUBLE_QUOTED_STRING", "RULE_ML_SINGLE_QUOTED_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'_'", "'replace'", "';'", "'checkonly'", "'default_values'", "'domain'", "'enforce'", "'extends'", "'implementedby'", "'import'", "'library'", "'key'", "'overrides'", "'primitive'", "'query'", "'relation'", "'top'", "'transformation'", "'when'", "'where'", "'*'", "'-'", "'not'", "'/'", "'+'", "'>'", "'<'", "'>='", "'<='", "'='", "'<>'", "'and'", "'or'", "'xor'", "'implies'", "'.'", "'->'", "'Tuple'", "'Boolean'", "'Integer'", "'Real'", "'String'", "'UnlimitedNatural'", "'OclAny'", "'OclInvalid'", "'OclVoid'", "'Set'", "'Bag'", "'Sequence'", "'Collection'", "'OrderedSet'", "'?'", "':'", "'{'", "'}'", "'++'", "','", "'('", "')'", "'::'", "'..'", "'['", "']'", "'invalid'", "'null'", "'pre'", "'if'", "'then'", "'else'", "'endif'", "'let'", "'in'", "'self'", "'true'", "'false'", "'@'", "'|'"

     };

-    public static final int T__42=42;

-    public static final int T__47=47;

-    public static final int T__73=73;

-    public static final int T__21=21;

-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

-    public static final int T__72=72;

-    public static final int T__70=70;

-    public static final int T__39=39;

-    public static final int T__30=30;

-    public static final int T__46=46;

-    public static final int T__49=49;

-    public static final int RULE_DOUBLE_QUOTED_STRING=10;

-    public static final int T__54=54;

-    public static final int T__48=48;

-    public static final int RULE_ESCAPED_CHARACTER=8;

-    public static final int T__89=89;

-    public static final int T__20=20;

-    public static final int T__79=79;

-    public static final int T__64=64;

-    public static final int T__44=44;

-    public static final int T__66=66;

-    public static final int T__92=92;

-    public static final int T__88=88;

-    public static final int T__22=22;

-    public static final int RULE_ESCAPED_ID=7;

-    public static final int T__90=90;

-    public static final int T__63=63;

-    public static final int RULE_WS=14;

-    public static final int T__43=43;

-    public static final int T__91=91;

-    public static final int T__40=40;

-    public static final int T__85=85;

+    public static final int T__29=29;

+    public static final int T__28=28;

+    public static final int T__27=27;

     public static final int T__26=26;

     public static final int T__25=25;

-    public static final int RULE_SL_COMMENT=13;

-    public static final int T__60=60;

-    public static final int T__41=41;

-    public static final int T__86=86;

-    public static final int T__28=28;

-    public static final int T__23=23;

-    public static final int T__57=57;

-    public static final int T__51=51;

-    public static final int T__80=80;

-    public static final int RULE_LETTER_CHARACTER=9;

-    public static final int T__69=69;

-    public static final int T__50=50;

-    public static final int T__19=19;

-    public static final int T__65=65;

-    public static final int T__67=67;

-    public static final int T__87=87;

-    public static final int T__74=74;

-    public static final int T__52=52;

-    public static final int T__68=68;

-    public static final int T__17=17;

-    public static final int T__62=62;

-    public static final int RULE_INT=4;

-    public static final int T__27=27;

+    public static final int RULE_ESCAPED_CHARACTER=8;

     public static final int T__24=24;

-    public static final int T__61=61;

-    public static final int RULE_SINGLE_QUOTED_STRING=5;

-    public static final int T__59=59;

-    public static final int T__34=34;

-    public static final int T__56=56;

-    public static final int RULE_ML_COMMENT=12;

-    public static final int T__35=35;

-    public static final int T__78=78;

-    public static final int T__36=36;

-    public static final int T__58=58;

-    public static final int RULE_SIMPLE_ID=6;

-    public static final int T__33=33;

-    public static final int T__77=77;

-    public static final int T__55=55;

-    public static final int T__45=45;

-    public static final int T__29=29;

-    public static final int T__84=84;

-    public static final int T__75=75;

-    public static final int T__31=31;

-    public static final int EOF=-1;

-    public static final int T__53=53;

-    public static final int T__32=32;

-    public static final int T__16=16;

-    public static final int T__38=38;

-    public static final int T__37=37;

-    public static final int T__76=76;

+    public static final int T__23=23;

+    public static final int T__22=22;

     public static final int RULE_ANY_OTHER=15;

-    public static final int T__82=82;

-    public static final int T__81=81;

-    public static final int T__83=83;

+    public static final int T__21=21;

+    public static final int T__20=20;

+    public static final int RULE_ESCAPED_ID=7;

+    public static final int RULE_DOUBLE_QUOTED_STRING=10;

+    public static final int EOF=-1;

+    public static final int T__19=19;

+    public static final int T__91=91;

+    public static final int T__92=92;

+    public static final int T__16=16;

+    public static final int T__90=90;

     public static final int T__18=18;

+    public static final int T__17=17;

+    public static final int RULE_SIMPLE_ID=6;

+    public static final int T__80=80;

+    public static final int T__81=81;

+    public static final int T__82=82;

+    public static final int T__83=83;

+    public static final int RULE_SINGLE_QUOTED_STRING=5;

+    public static final int T__85=85;

+    public static final int T__84=84;

+    public static final int T__87=87;

+    public static final int T__86=86;

+    public static final int T__89=89;

+    public static final int T__88=88;

+    public static final int RULE_LETTER_CHARACTER=9;

+    public static final int RULE_ML_COMMENT=12;

     public static final int T__71=71;

+    public static final int T__72=72;

+    public static final int T__70=70;

+    public static final int T__76=76;

+    public static final int T__75=75;

+    public static final int T__74=74;

+    public static final int T__73=73;

+    public static final int T__79=79;

+    public static final int T__78=78;

+    public static final int T__77=77;

+    public static final int T__68=68;

+    public static final int T__69=69;

+    public static final int T__66=66;

+    public static final int T__67=67;

+    public static final int T__64=64;

+    public static final int T__65=65;

+    public static final int T__62=62;

+    public static final int T__63=63;

+    public static final int T__61=61;

+    public static final int T__60=60;

+    public static final int T__55=55;

+    public static final int T__56=56;

+    public static final int T__57=57;

+    public static final int T__58=58;

+    public static final int T__51=51;

+    public static final int T__52=52;

+    public static final int T__53=53;

+    public static final int T__54=54;

+    public static final int T__59=59;

+    public static final int RULE_INT=4;

+    public static final int T__50=50;

+    public static final int T__42=42;

+    public static final int T__43=43;

+    public static final int T__40=40;

+    public static final int T__41=41;

+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

+    public static final int T__46=46;

+    public static final int T__47=47;

+    public static final int T__44=44;

+    public static final int T__45=45;

+    public static final int T__48=48;

+    public static final int T__49=49;

+    public static final int RULE_SL_COMMENT=13;

+    public static final int T__30=30;

+    public static final int T__31=31;

+    public static final int T__32=32;

+    public static final int T__33=33;

+    public static final int T__34=34;

+    public static final int T__35=35;

+    public static final int T__36=36;

+    public static final int T__37=37;

+    public static final int T__38=38;

+    public static final int T__39=39;

+    public static final int RULE_WS=14;

 

     // delegates

     // delegators

@@ -49923,11 +49923,11 @@
 

     // Delegated rules

 

-    public final boolean synpred90_InternalQVTrelation() {

+    public final boolean synpred89_InternalQVTrelation() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred90_InternalQVTrelation_fragment(); // can never throw exception

+            synpred89_InternalQVTrelation_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

@@ -49951,11 +49951,11 @@
         state.failed=false;

         return success;

     }

-    public final boolean synpred12_InternalQVTrelation() {

+    public final boolean synpred90_InternalQVTrelation() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred12_InternalQVTrelation_fragment(); // can never throw exception

+            synpred90_InternalQVTrelation_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

@@ -49965,11 +49965,11 @@
         state.failed=false;

         return success;

     }

-    public final boolean synpred89_InternalQVTrelation() {

+    public final boolean synpred12_InternalQVTrelation() {

         state.backtracking++;

         int start = input.mark();

         try {

-            synpred89_InternalQVTrelation_fragment(); // can never throw exception

+            synpred12_InternalQVTrelation_fragment(); // can never throw exception

         } catch (RecognitionException re) {

             System.err.println("impossible: "+re);

         }

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/QVTrelation.xmi b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/QVTrelation.xmi
deleted file mode 100644
index 7301ad5..0000000
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/QVTrelation.xmi
+++ /dev/null
@@ -1,1865 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>

-<xmi:XMI xmi:version="2.0" 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" xmlns:xtext="http://www.eclipse.org/2008/Xtext">

-  <xtext:Grammar name="org.eclipse.qvtd.xtext.qvtrelation.QVTrelation" usedGrammars="/1">

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">

-      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="base">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/BaseCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="essentialocl">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="pivot">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/Pivot#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtbase">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTbase#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="qvtrelation">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTrelation#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">

-      <ePackage href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#/"/>

-    </metamodelDeclarations>

-    <rules xsi:type="xtext:ParserRule" name="TopLevelCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//TopLevelCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:Assignment" feature="ownedImport" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.18"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="ownedLibrary" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.7"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="*" feature="transformations" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.17"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionTemplateCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//CollectionTemplateCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="type" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.40"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="memberIdentifiers" operator="+=">

-            <terminal xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:RuleCall" rule="/0/@rules.16"/>

-              <elements xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>

-            </terminal>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="memberIdentifiers" operator="+=">

-              <terminal xsi:type="xtext:Alternatives">

-                <elements xsi:type="xtext:RuleCall" rule="/0/@rules.16"/>

-                <elements xsi:type="xtext:RuleCall" rule="/0/@rules.5"/>

-              </terminal>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="++"/>

-          <elements xsi:type="xtext:Alternatives">

-            <elements xsi:type="xtext:Assignment" feature="restIdentifier" operator="=">

-              <terminal xsi:type="xtext:CrossReference">

-                <type metamodel="/0/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>

-                </type>

-                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-              </terminal>

-            </elements>

-            <elements xsi:type="xtext:Keyword" value="_"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="DefaultValueCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//DefaultValueCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="propertyId" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/0/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Variable"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initialiser" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="DomainCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//DomainCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Alternatives" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="checkonly" operator="?=">

-            <terminal xsi:type="xtext:Keyword" value="checkonly"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="enforce" operator="?=">

-            <terminal xsi:type="xtext:Keyword" value="enforce"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="replace"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="domain"/>

-        <elements xsi:type="xtext:Assignment" feature="modelId" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/0/@metamodelDeclarations.4">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTbase#//TypedModel"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="pattern" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.4"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="implementedby"/>

-          <elements xsi:type="xtext:Assignment" feature="implementedBy" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="default_values"/>

-          <elements xsi:type="xtext:Keyword" value="{"/>

-          <elements xsi:type="xtext:Assignment" cardinality="+" feature="defaultValues" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.2"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="}"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="DomainPatternCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//DomainPatternCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="template" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.16"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ElementTemplateCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//ElementTemplateCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/0/@metamodelDeclarations.6">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//ElementTemplateCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="_"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="KeyDeclCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//KeyDeclCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="key"/>

-        <elements xsi:type="xtext:Assignment" feature="pathName" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.32"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Assignment" feature="propertyIds" operator="+=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/0/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value=","/>

-          <elements xsi:type="xtext:Assignment" feature="propertyIds" operator="+=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/0/@metamodelDeclarations.3">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-            </terminal>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LibraryCS">

-      <type metamodel="/0/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//LibraryCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="library"/>

-        <elements xsi:type="xtext:Assignment" feature="package" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/0/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Package"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.17"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ModelDeclCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//ModelDeclCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Assignment" feature="metaModelIds" operator="+=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/0/@metamodelDeclarations.3">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Namespace"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-            </terminal>

-          </elements>

-          <elements xsi:type="xtext:Group">

-            <elements xsi:type="xtext:Keyword" value="{"/>

-            <elements xsi:type="xtext:Assignment" feature="metaModelIds" operator="+=">

-              <terminal xsi:type="xtext:CrossReference">

-                <type metamodel="/0/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Namespace"/>

-                </type>

-                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-              </terminal>

-            </elements>

-            <elements xsi:type="xtext:Group" cardinality="*">

-              <elements xsi:type="xtext:Keyword" value=","/>

-              <elements xsi:type="xtext:Assignment" feature="metaModelIds" operator="+=">

-                <terminal xsi:type="xtext:CrossReference">

-                  <type metamodel="/0/@metamodelDeclarations.3">

-                    <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Namespace"/>

-                  </type>

-                  <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-                </terminal>

-              </elements>

-            </elements>

-            <elements xsi:type="xtext:Keyword" value="}"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ObjectTemplateCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//ObjectTemplateCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="type" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="propertyTemplates" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="propertyTemplates" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.13"/>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ParamDeclarationCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//ParamDeclarationCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PredicateCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//PredicateCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="expr" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveTypeDomainCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//PrimitiveTypeDomainCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="primitive"/>

-        <elements xsi:type="xtext:Keyword" value="domain"/>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="type" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PropertyTemplateCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//PropertyTemplateCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="propertyId" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/0/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="expression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.24"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="QueryCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//QueryCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="query"/>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="("/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="inputParamDeclarations" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.10"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="inputParamDeclarations" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.10"/>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=")"/>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>

-        </elements>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value=";"/>

-          <elements xsi:type="xtext:Group">

-            <elements xsi:type="xtext:Keyword" value="{"/>

-            <elements xsi:type="xtext:Assignment" feature="expression" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-            </elements>

-            <elements xsi:type="xtext:Keyword" value="}"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="RelationCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//RelationCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="top" operator="?=">

-          <terminal xsi:type="xtext:Keyword" value="top"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="relation"/>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="overrides"/>

-          <elements xsi:type="xtext:Assignment" feature="overrides" operator="=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/0/@metamodelDeclarations.5">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelation#//Relation"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-            </terminal>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Assignment" cardinality="*" feature="varDeclarations" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.19"/>

-        </elements>

-        <elements xsi:type="xtext:Alternatives" cardinality="+">

-          <elements xsi:type="xtext:Assignment" feature="domains" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.3"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="domains" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.12"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="when" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.21"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="where" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.22"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TemplateCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//TemplateCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:RuleCall" rule="/0/@rules.1"/>

-          <elements xsi:type="xtext:RuleCall" rule="/0/@rules.9"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="{"/>

-          <elements xsi:type="xtext:Assignment" feature="guardExpression" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value="}"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TransformationCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//TransformationCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="transformation"/>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="("/>

-        <elements xsi:type="xtext:Assignment" feature="modelDecls" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.8"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value=","/>

-          <elements xsi:type="xtext:Assignment" feature="modelDecls" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.8"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=")"/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="extends"/>

-          <elements xsi:type="xtext:Assignment" feature="extends" operator="+=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/0/@metamodelDeclarations.4">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTbase#//Transformation"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-            </terminal>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="extends" operator="+=">

-              <terminal xsi:type="xtext:CrossReference">

-                <type metamodel="/0/@metamodelDeclarations.4">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTbase#//Transformation"/>

-                </type>

-                <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-              </terminal>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Assignment" cardinality="*" feature="keyDecls" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.6"/>

-        </elements>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:Assignment" feature="relation" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.15"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="queries" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.14"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnitCS">

-      <type metamodel="/0/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//ImportCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="import"/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=":"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="pathName" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.35"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="::"/>

-          <elements xsi:type="xtext:Assignment" feature="all" operator="?=">

-            <terminal xsi:type="xtext:Keyword" value="*"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="VarDeclarationCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//VarDeclarationCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="varDeclarationIds" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value=","/>

-          <elements xsi:type="xtext:Assignment" feature="varDeclarationIds" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.20"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="type" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.26"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=";"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="VarDeclarationIdCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//VarDeclarationIdCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="WhenCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//PatternCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/0/@metamodelDeclarations.6">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//PatternCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="when"/>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Assignment" cardinality="*" feature="predicates" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.11"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="WhereCS">

-      <type metamodel="/0/@metamodelDeclarations.6">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//PatternCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/0/@metamodelDeclarations.6">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/qvt/0.9/QVTrelationCST#//PatternCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="where"/>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Assignment" cardinality="*" feature="predicates" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.11"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NameExpCS">

-      <type metamodel="/0/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NameExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="pathName" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.32"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ExpCSOrTemplateCS">

-      <type metamodel="/0/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.16"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypedTypeRefCS">

-      <type metamodel="/0/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedTypeRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="pathName" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.32"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypedRefCS">

-      <type metamodel="/0/@metamodelDeclarations.1">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.38"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.40"/>

-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.25"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnrestrictedName">

-      <type metamodel="/0/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.28"/>

-        <elements xsi:type="xtext:Keyword" value="checkonly"/>

-        <elements xsi:type="xtext:Keyword" value="default_values"/>

-        <elements xsi:type="xtext:Keyword" value="domain"/>

-        <elements xsi:type="xtext:Keyword" value="enforce"/>

-        <elements xsi:type="xtext:Keyword" value="extends"/>

-        <elements xsi:type="xtext:Keyword" value="implementedby"/>

-        <elements xsi:type="xtext:Keyword" value="import"/>

-        <elements xsi:type="xtext:Keyword" value="library"/>

-        <elements xsi:type="xtext:Keyword" value="key"/>

-        <elements xsi:type="xtext:Keyword" value="overrides"/>

-        <elements xsi:type="xtext:Keyword" value="primitive"/>

-        <elements xsi:type="xtext:Keyword" value="query"/>

-        <elements xsi:type="xtext:Keyword" value="relation"/>

-        <elements xsi:type="xtext:Keyword" value="replace"/>

-        <elements xsi:type="xtext:Keyword" value="top"/>

-        <elements xsi:type="xtext:Keyword" value="transformation"/>

-        <elements xsi:type="xtext:Keyword" value="when"/>

-        <elements xsi:type="xtext:Keyword" value="where"/>

-      </alternatives>

-    </rules>

-  </xtext:Grammar>

-  <xtext:Grammar name="org.eclipse.ocl.examples.xtext.essentialocl.EssentialOCL" definesHiddenTokens="true" hiddenTokens="/1/@rules.15 /1/@rules.13 /1/@rules.14">

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="ecore">

-      <ePackage href="http://www.eclipse.org/emf/2002/Ecore#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="pivot">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/Pivot#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel" alias="base">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/BaseCST#/"/>

-    </metamodelDeclarations>

-    <metamodelDeclarations xsi:type="xtext:ReferencedMetamodel">

-      <ePackage href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#/"/>

-    </metamodelDeclarations>

-    <rules xsi:type="xtext:ParserRule" name="Model">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ContextCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="ownedExpression" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ESCAPED_CHARACTER" fragment="true">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="\"/>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="b"/>

-          <elements xsi:type="xtext:Keyword" value="t"/>

-          <elements xsi:type="xtext:Keyword" value="n"/>

-          <elements xsi:type="xtext:Keyword" value="f"/>

-          <elements xsi:type="xtext:Keyword" value="r"/>

-          <elements xsi:type="xtext:Keyword" value="u"/>

-          <elements xsi:type="xtext:Keyword" value="&quot;"/>

-          <elements xsi:type="xtext:Keyword" value="'"/>

-          <elements xsi:type="xtext:Keyword" value="\"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="LETTER_CHARACTER" fragment="true">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:CharacterRange">

-          <left value="a"/>

-          <right value="z"/>

-        </elements>

-        <elements xsi:type="xtext:CharacterRange">

-          <left value="A"/>

-          <right value="Z"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="_"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="DOUBLE_QUOTED_STRING">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="&quot;"/>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>

-          <elements xsi:type="xtext:NegatedToken">

-            <terminal xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Keyword" value="\"/>

-              <elements xsi:type="xtext:Keyword" value="&quot;"/>

-            </terminal>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="&quot;"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="SINGLE_QUOTED_STRING">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="'"/>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.1"/>

-          <elements xsi:type="xtext:NegatedToken">

-            <terminal xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Keyword" value="\"/>

-              <elements xsi:type="xtext:Keyword" value="'"/>

-            </terminal>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="'"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ML_SINGLE_QUOTED_STRING">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="/'"/>

-        <elements xsi:type="xtext:UntilToken">

-          <terminal xsi:type="xtext:Keyword" value="'/"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="SIMPLE_ID">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>

-        <elements xsi:type="xtext:Alternatives" cardinality="*">

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.2"/>

-          <elements xsi:type="xtext:CharacterRange">

-            <left value="0"/>

-            <right value="9"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ESCAPED_ID">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="_"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.4"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ID">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.6"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.7"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="INT">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:CharacterRange" cardinality="+">

-        <left value="0"/>

-        <right value="9"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LOWER">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.9"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UPPER">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EInt"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.9"/>

-        <elements xsi:type="xtext:Keyword" value="*"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NUMBER_LITERAL">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BigNumber"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.9"/>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ML_COMMENT">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="/*"/>

-        <elements xsi:type="xtext:UntilToken">

-          <terminal xsi:type="xtext:Keyword" value="*/"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="SL_COMMENT">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="--"/>

-        <elements xsi:type="xtext:NegatedToken" cardinality="*">

-          <terminal xsi:type="xtext:Alternatives">

-            <elements xsi:type="xtext:Keyword" value="&#xA;"/>

-            <elements xsi:type="xtext:Keyword" value="&#xD;"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" cardinality="?" value="&#xD;"/>

-          <elements xsi:type="xtext:Keyword" value="&#xA;"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="WS">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives" cardinality="+">

-        <elements xsi:type="xtext:Keyword" value=" "/>

-        <elements xsi:type="xtext:Keyword" value="&#x9;"/>

-        <elements xsi:type="xtext:Keyword" value="&#xD;"/>

-        <elements xsi:type="xtext:Keyword" value="&#xA;"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:TerminalRule" name="ANY_OTHER">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Wildcard"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="URI">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.4"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLReservedKeyword">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Keyword" value="and"/>

-        <elements xsi:type="xtext:Keyword" value="else"/>

-        <elements xsi:type="xtext:Keyword" value="endif"/>

-        <elements xsi:type="xtext:Keyword" value="if"/>

-        <elements xsi:type="xtext:Keyword" value="implies"/>

-        <elements xsi:type="xtext:Keyword" value="in"/>

-        <elements xsi:type="xtext:Keyword" value="let"/>

-        <elements xsi:type="xtext:Keyword" value="not"/>

-        <elements xsi:type="xtext:Keyword" value="or"/>

-        <elements xsi:type="xtext:Keyword" value="then"/>

-        <elements xsi:type="xtext:Keyword" value="xor"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLUnaryOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="-"/>

-          <elements xsi:type="xtext:Keyword" value="not"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLInfixOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BinaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="*"/>

-          <elements xsi:type="xtext:Keyword" value="/"/>

-          <elements xsi:type="xtext:Keyword" value="+"/>

-          <elements xsi:type="xtext:Keyword" value="-"/>

-          <elements xsi:type="xtext:Keyword" value=">"/>

-          <elements xsi:type="xtext:Keyword" value="&lt;"/>

-          <elements xsi:type="xtext:Keyword" value=">="/>

-          <elements xsi:type="xtext:Keyword" value="&lt;="/>

-          <elements xsi:type="xtext:Keyword" value="="/>

-          <elements xsi:type="xtext:Keyword" value="&lt;>"/>

-          <elements xsi:type="xtext:Keyword" value="and"/>

-          <elements xsi:type="xtext:Keyword" value="or"/>

-          <elements xsi:type="xtext:Keyword" value="xor"/>

-          <elements xsi:type="xtext:Keyword" value="implies"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLNavigationOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigationOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="."/>

-          <elements xsi:type="xtext:Keyword" value="->"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="Identifier">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.8"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="StringLiteral">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.4"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="BinaryOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BinaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.25"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.26"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="InfixOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BinaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.20"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigationOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigationOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.21"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnaryOperatorCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnaryOperatorCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.19"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLUnrestrictedName">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.22"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnrestrictedName">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.28"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="EssentialOCLUnreservedName">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.39"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.37"/>

-        <elements xsi:type="xtext:Keyword" value="Tuple"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnreservedName">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.30"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PathNameCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathNameCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.33"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value="::"/>

-          <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.34"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="FirstPathElementCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="element" operator="=">

-        <terminal xsi:type="xtext:CrossReference">

-          <type metamodel="/1/@metamodelDeclarations.1">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement"/>

-          </type>

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NextPathElementCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="element" operator="=">

-        <terminal xsi:type="xtext:CrossReference">

-          <type metamodel="/1/@metamodelDeclarations.1">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement"/>

-          </type>

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.31"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="URIPathNameCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathNameCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.36"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value="::"/>

-          <elements xsi:type="xtext:Assignment" feature="path" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.34"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="URIFirstPathElementCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Assignment" feature="element" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/1/@metamodelDeclarations.1">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//NamedElement"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/1/@metamodelDeclarations.2">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PathElementWithURICS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="element" operator="=">

-            <terminal xsi:type="xtext:CrossReference">

-              <type metamodel="/1/@metamodelDeclarations.1">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Namespace"/>

-              </type>

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.17"/>

-            </terminal>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveTypeIdentifier">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Keyword" value="Boolean"/>

-        <elements xsi:type="xtext:Keyword" value="Integer"/>

-        <elements xsi:type="xtext:Keyword" value="Real"/>

-        <elements xsi:type="xtext:Keyword" value="String"/>

-        <elements xsi:type="xtext:Keyword" value="UnlimitedNatural"/>

-        <elements xsi:type="xtext:Keyword" value="OclAny"/>

-        <elements xsi:type="xtext:Keyword" value="OclInvalid"/>

-        <elements xsi:type="xtext:Keyword" value="OclVoid"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveTypeCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//PrimitiveTypeRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.37"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionTypeIdentifier">

-      <type metamodel="/1/@metamodelDeclarations.0">

-        <classifier xsi:type="ecore:EDataType" href="http://www.eclipse.org/emf/2002/Ecore#//EString"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Keyword" value="Set"/>

-        <elements xsi:type="xtext:Keyword" value="Bag"/>

-        <elements xsi:type="xtext:Keyword" value="Sequence"/>

-        <elements xsi:type="xtext:Keyword" value="Collection"/>

-        <elements xsi:type="xtext:Keyword" value="OrderedSet"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionTypeCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//CollectionTypeCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.39"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MultiplicityBoundsCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//MultiplicityBoundsCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="lowerBound" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.10"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=".."/>

-          <elements xsi:type="xtext:Assignment" feature="upperBound" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.11"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MultiplicityCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//MultiplicityCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="["/>

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.41"/>

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.43"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="]"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="MultiplicityStringCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//MultiplicityStringCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="stringBounds" operator="=">

-        <terminal xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:Keyword" value="*"/>

-          <elements xsi:type="xtext:Keyword" value="+"/>

-          <elements xsi:type="xtext:Keyword" value="?"/>

-        </terminal>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TupleTypeCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TupleTypeCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="Tuple"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value="("/>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.45"/>

-            </elements>

-            <elements xsi:type="xtext:Group" cardinality="*">

-              <elements xsi:type="xtext:Keyword" value=","/>

-              <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.45"/>

-              </elements>

-            </elements>

-          </elements>

-          <elements xsi:type="xtext:Keyword" value=")"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TuplePartCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TuplePartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=":"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//CollectionLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.40"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.47"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="*">

-            <elements xsi:type="xtext:Keyword" value=","/>

-            <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.47"/>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="CollectionLiteralPartCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//CollectionLiteralPartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="expressionCS" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=".."/>

-          <elements xsi:type="xtext:Assignment" feature="lastExpressionCS" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ConstructorPartCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ConstructorPartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="property" operator="=">

-          <terminal xsi:type="xtext:CrossReference">

-            <type metamodel="/1/@metamodelDeclarations.1">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/Pivot#//Property"/>

-            </type>

-            <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-          </terminal>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimitiveLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//PrimitiveLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.52"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.53"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.54"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.55"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.56"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.57"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TupleLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TupleLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="Tuple"/>

-        <elements xsi:type="xtext:Keyword" value="{"/>

-        <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.51"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value=","/>

-          <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.51"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="}"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TupleLiteralPartCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TupleLiteralPartCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NumberLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NumberLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="name" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.12"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="StringLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//StringLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" cardinality="+" feature="name" operator="+=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.23"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="BooleanLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//BooleanLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="true"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="false"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="UnlimitedNaturalLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnlimitedNaturalLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/1/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//UnlimitedNaturalLiteralExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="*"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="InvalidLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InvalidLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/1/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InvalidLiteralExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="invalid"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NullLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NullLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/1/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NullLiteralExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="null"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeLiteralCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.38"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.40"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.44"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeLiteralWithMultiplicityCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.58"/>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="multiplicity" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.42"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeLiteralExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TypeLiteralExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.59"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeNameExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//TypeNameExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Assignment" feature="pathName" operator="=">

-        <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.32"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="TypeExpCS">

-      <type metamodel="/1/@metamodelDeclarations.2">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/BaseCST#//TypedRefCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Alternatives">

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.61"/>

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.58"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" cardinality="?" feature="multiplicity" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.42"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="ExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:RuleCall" rule="/1/@rules.64"/>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Action" feature="ownedExpression" operator="+=">

-              <type metamodel="/1/@metamodelDeclarations.3">

-                <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InfixExpCS"/>

-              </type>

-            </elements>

-            <elements xsi:type="xtext:Assignment" feature="ownedOperator" operator="+=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.24"/>

-            </elements>

-            <elements xsi:type="xtext:Alternatives">

-              <elements xsi:type="xtext:Group">

-                <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.64"/>

-                </elements>

-                <elements xsi:type="xtext:Group" cardinality="*">

-                  <elements xsi:type="xtext:Assignment" feature="ownedOperator" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.24"/>

-                  </elements>

-                  <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.64"/>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Group" cardinality="?">

-                  <elements xsi:type="xtext:Assignment" feature="ownedOperator" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.24"/>

-                  </elements>

-                  <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.72"/>

-                  </elements>

-                </elements>

-              </elements>

-              <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.72"/>

-              </elements>

-            </elements>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/1/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//PrefixExpCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" cardinality="+" feature="ownedOperator" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.27"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.72"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.72"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrefixedExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/1/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//PrefixExpCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" cardinality="+" feature="ownedOperator" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.27"/>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="ownedExpression" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.65"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.65"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="PrimaryExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Alternatives">

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.74"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.71"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.75"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.49"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.50"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.46"/>

-        <elements xsi:type="xtext:RuleCall" rule="/1/@rules.60"/>

-        <elements xsi:type="xtext:Group">

-          <elements xsi:type="xtext:Action">

-            <type metamodel="/1/@metamodelDeclarations.3">

-              <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NameExpCS"/>

-            </type>

-          </elements>

-          <elements xsi:type="xtext:Assignment" feature="pathName" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.32"/>

-          </elements>

-          <elements xsi:type="xtext:Alternatives">

-            <elements xsi:type="xtext:Group">

-              <elements xsi:type="xtext:Action" feature="nameExp" operator="=">

-                <type metamodel="/1/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//IndexExpCS"/>

-                </type>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="["/>

-              <elements xsi:type="xtext:Assignment" feature="firstIndexes" operator="+=">

-                <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-              </elements>

-              <elements xsi:type="xtext:Group" cardinality="*">

-                <elements xsi:type="xtext:Keyword" value=","/>

-                <elements xsi:type="xtext:Assignment" feature="firstIndexes" operator="+=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-                </elements>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="]"/>

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Keyword" value="["/>

-                <elements xsi:type="xtext:Assignment" feature="secondIndexes" operator="+=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-                </elements>

-                <elements xsi:type="xtext:Group" cardinality="*">

-                  <elements xsi:type="xtext:Keyword" value=","/>

-                  <elements xsi:type="xtext:Assignment" feature="secondIndexes" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="]"/>

-              </elements>

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Assignment" feature="atPre" operator="?=">

-                  <terminal xsi:type="xtext:Keyword" value="@"/>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="pre"/>

-              </elements>

-            </elements>

-            <elements xsi:type="xtext:Group">

-              <elements xsi:type="xtext:Action" feature="nameExp" operator="=">

-                <type metamodel="/1/@metamodelDeclarations.3">

-                  <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ConstructorExpCS"/>

-                </type>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="{"/>

-              <elements xsi:type="xtext:Alternatives">

-                <elements xsi:type="xtext:Group">

-                  <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.48"/>

-                  </elements>

-                  <elements xsi:type="xtext:Group" cardinality="*">

-                    <elements xsi:type="xtext:Keyword" value=","/>

-                    <elements xsi:type="xtext:Assignment" feature="ownedParts" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.48"/>

-                    </elements>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Assignment" feature="value" operator="=">

-                  <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.23"/>

-                </elements>

-              </elements>

-              <elements xsi:type="xtext:Keyword" value="}"/>

-            </elements>

-            <elements xsi:type="xtext:Group">

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Assignment" feature="atPre" operator="?=">

-                  <terminal xsi:type="xtext:Keyword" value="@"/>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="pre"/>

-              </elements>

-              <elements xsi:type="xtext:Group" cardinality="?">

-                <elements xsi:type="xtext:Action" feature="nameExp" operator="=">

-                  <type metamodel="/1/@metamodelDeclarations.3">

-                    <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//InvocationExpCS"/>

-                  </type>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value="("/>

-                <elements xsi:type="xtext:Group" cardinality="?">

-                  <elements xsi:type="xtext:Assignment" feature="argument" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.66"/>

-                  </elements>

-                  <elements xsi:type="xtext:Assignment" cardinality="*" feature="argument" operator="+=">

-                    <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.68"/>

-                  </elements>

-                  <elements xsi:type="xtext:Group" cardinality="?">

-                    <elements xsi:type="xtext:Assignment" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.69"/>

-                    </elements>

-                    <elements xsi:type="xtext:Assignment" cardinality="*" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.68"/>

-                    </elements>

-                  </elements>

-                  <elements xsi:type="xtext:Group" cardinality="?">

-                    <elements xsi:type="xtext:Assignment" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.67"/>

-                    </elements>

-                    <elements xsi:type="xtext:Assignment" cardinality="*" feature="argument" operator="+=">

-                      <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.68"/>

-                    </elements>

-                  </elements>

-                </elements>

-                <elements xsi:type="xtext:Keyword" value=")"/>

-              </elements>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingArgCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingBarArgCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="prefix" operator="=">

-          <terminal xsi:type="xtext:Keyword" value="|"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingCommaArgCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="prefix" operator="=">

-          <terminal xsi:type="xtext:Keyword" value=","/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingSemiArgCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NavigatingArgCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="prefix" operator="=">

-          <terminal xsi:type="xtext:Keyword" value=";"/>

-        </elements>

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.70"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-          <elements xsi:type="xtext:Group" cardinality="?">

-            <elements xsi:type="xtext:Keyword" value="="/>

-            <elements xsi:type="xtext:Assignment" feature="init" operator="=">

-              <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-            </elements>

-          </elements>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NavigatingArgExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//ExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="IfExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//IfExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="if"/>

-        <elements xsi:type="xtext:Assignment" feature="condition" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="then"/>

-        <elements xsi:type="xtext:Assignment" feature="thenExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="else"/>

-        <elements xsi:type="xtext:Assignment" feature="elseExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="endif"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LetExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//LetExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="let"/>

-        <elements xsi:type="xtext:Assignment" feature="variable" operator="+=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.73"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="*">

-          <elements xsi:type="xtext:Keyword" value=","/>

-          <elements xsi:type="xtext:Assignment" feature="variable" operator="+=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.73"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="in"/>

-        <elements xsi:type="xtext:Assignment" feature="in" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="LetVariableCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//LetVariableCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Assignment" feature="name" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/0/@rules.27"/>

-        </elements>

-        <elements xsi:type="xtext:Group" cardinality="?">

-          <elements xsi:type="xtext:Keyword" value=":"/>

-          <elements xsi:type="xtext:Assignment" feature="ownedType" operator="=">

-            <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.62"/>

-          </elements>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="="/>

-        <elements xsi:type="xtext:Assignment" feature="initExpression" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="NestedExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//NestedExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Keyword" value="("/>

-        <elements xsi:type="xtext:Assignment" feature="source" operator="=">

-          <terminal xsi:type="xtext:RuleCall" rule="/1/@rules.63"/>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value=")"/>

-      </alternatives>

-    </rules>

-    <rules xsi:type="xtext:ParserRule" name="SelfExpCS">

-      <type metamodel="/1/@metamodelDeclarations.3">

-        <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//SelfExpCS"/>

-      </type>

-      <alternatives xsi:type="xtext:Group">

-        <elements xsi:type="xtext:Action">

-          <type metamodel="/1/@metamodelDeclarations.3">

-            <classifier xsi:type="ecore:EClass" href="http://www.eclipse.org/ocl/3.1.0/EssentialOCLCST#//SelfExpCS"/>

-          </type>

-        </elements>

-        <elements xsi:type="xtext:Keyword" value="self"/>

-      </alternatives>

-    </rules>

-  </xtext:Grammar>

-</xmi:XMI>

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/QVTrelation.xtextbin b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/QVTrelation.xtextbin
new file mode 100644
index 0000000..c8f8866
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/QVTrelation.xtextbin
Binary files differ
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelation.tokens b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelation.tokens
index 532252d..93a48d1 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelation.tokens
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelation.tokens
@@ -1,166 +1,166 @@
-T__42=42

-T__47=47

-T__73=73

-T__21=21

-RULE_ML_SINGLE_QUOTED_STRING=11

-T__72=72

-T__70=70

-T__39=39

-T__30=30

-T__46=46

-T__49=49

-RULE_DOUBLE_QUOTED_STRING=10

-T__54=54

-T__48=48

-RULE_ESCAPED_CHARACTER=8

-T__89=89

-T__20=20

-T__79=79

-T__64=64

-T__44=44

-T__66=66

-T__92=92

-T__88=88

-T__22=22

-RULE_ESCAPED_ID=5

-T__90=90

-T__63=63

-RULE_WS=14

-T__43=43

-T__91=91

-T__40=40

-T__85=85

+T__29=29

+T__28=28

+T__27=27

 T__26=26

 T__25=25

-RULE_SL_COMMENT=13

-T__60=60

-T__41=41

-T__86=86

-T__28=28

-T__23=23

-T__57=57

-T__51=51

-T__80=80

-RULE_LETTER_CHARACTER=9

-T__69=69

-T__50=50

-T__19=19

-T__65=65

-T__67=67

-T__87=87

-T__74=74

-T__52=52

-T__68=68

-T__17=17

-T__62=62

-RULE_INT=6

-T__27=27

+RULE_ESCAPED_CHARACTER=8

 T__24=24

-T__61=61

-RULE_SINGLE_QUOTED_STRING=7

-T__59=59

-T__34=34

-T__56=56

-RULE_ML_COMMENT=12

-T__35=35

-T__78=78

-T__36=36

-T__58=58

-RULE_SIMPLE_ID=4

-T__33=33

-T__77=77

-T__55=55

-T__45=45

-T__29=29

-T__84=84

-T__75=75

-T__31=31

-T__53=53

-T__32=32

-T__16=16

-T__38=38

-T__37=37

-T__76=76

+T__23=23

+T__22=22

 RULE_ANY_OTHER=15

-T__82=82

-T__81=81

-T__83=83

+T__21=21

+T__20=20

+RULE_ESCAPED_ID=5

+RULE_DOUBLE_QUOTED_STRING=10

+T__19=19

+T__91=91

+T__92=92

+T__16=16

+T__90=90

 T__18=18

+T__17=17

+RULE_SIMPLE_ID=4

+T__80=80

+T__81=81

+T__82=82

+T__83=83

+RULE_SINGLE_QUOTED_STRING=7

+T__85=85

+T__84=84

+T__87=87

+T__86=86

+T__89=89

+T__88=88

+RULE_LETTER_CHARACTER=9

+RULE_ML_COMMENT=12

 T__71=71

-'<'=51

-'pre'=84

-'..'=75

-'>'=50

-'transformation'=39

-'checkonly'=24

-'let'=90

-'else'=88

-'key'=30

-'domain'=27

-'invalid'=81

-'-'=46

-'String'=65

-'Integer'=63

-'?'=78

-'Bag'=71

+T__72=72

+T__70=70

+T__76=76

+T__75=75

+T__74=74

+T__73=73

+T__79=79

+T__78=78

+T__77=77

+T__68=68

+T__69=69

+T__66=66

+T__67=67

+T__64=64

+T__65=65

+T__62=62

+T__63=63

+T__61=61

+T__60=60

+T__55=55

+T__56=56

+T__57=57

+T__58=58

+T__51=51

+T__52=52

+T__53=53

+T__54=54

+T__59=59

+RULE_INT=6

+T__50=50

+T__42=42

+T__43=43

+T__40=40

+T__41=41

+RULE_ML_SINGLE_QUOTED_STRING=11

+T__46=46

+T__47=47

+T__44=44

+T__45=45

+T__48=48

+T__49=49

+RULE_SL_COMMENT=13

+T__30=30

+T__31=31

+T__32=32

+T__33=33

+T__34=34

+T__35=35

+T__36=36

+T__37=37

+T__38=38

+T__39=39

+RULE_WS=14

 '>='=52

-'<='=53

-'='=22

-'Real'=64

-'Sequence'=72

-'::'=42

-'implementedby'=28

-'Boolean'=62

-'++'=19

-'xor'=57

-'{'=17

-'OclVoid'=69

-'then'=87

-'overrides'=38

-'OrderedSet'=74

-':'=16

-'OclAny'=67

-'Tuple'=61

-'.'=59

-'*'=43

-'<>'=54

-'Set'=70

-'}'=21

-'->'=60

-'self'=92

-'relation'=37

-'where'=45

-';'=23

-'true'=79

-']'=77

-'replace'=26

-'false'=80

-','=18

-'endif'=89

-'not'=47

-'query'=33

-'['=76

-'or'=56

-'/'=48

-'Collection'=73

-'and'=55

-'implies'=58

-'|'=85

-')'=35

-'top'=36

 'primitive'=32

-'_'=20

+'/'=48

+'Sequence'=72

+'where'=45

+'then'=87

+'enforce'=25

+'Real'=64

+'top'=36

+'>'=50

+'Integer'=63

+';'=23

+'Boolean'=62

+'<>'=54

 'OclInvalid'=68

-'@'=83

+'transformation'=39

+'+'=49

+'pre'=84

+'.'=59

+'library'=31

+'Set'=70

 'import'=41

+'++'=19

+'true'=79

+'else'=88

+'extends'=40

+'let'=90

+'key'=30

+'and'=55

+'{'=17

+'?'=78

+'domain'=27

+'OclVoid'=69

 'if'=86

 '('=34

-'when'=44

-'enforce'=25

-'UnlimitedNatural'=66

-'extends'=40

+':'=16

+'not'=47

+'checkonly'=24

+'-'=46

+','=18

 'in'=91

-'null'=82

-'+'=49

-'library'=31

+']'=77

+'query'=33

+'..'=75

+'|'=85

+'when'=44

+'OrderedSet'=74

 'default_values'=29

+'UnlimitedNatural'=66

+'null'=82

+'implementedby'=28

+'Collection'=73

+'Tuple'=61

+'String'=65

+'='=22

+'@'=83

+'Bag'=71

+'replace'=26

+'::'=42

+'_'=20

+')'=35

+'xor'=57

+'->'=60

+'}'=21

+'overrides'=38

+'<='=53

+'false'=80

+'<'=51

+'invalid'=81

+'OclAny'=67

+'['=76

+'*'=43

+'or'=56

+'implies'=58

+'self'=92

+'endif'=89

+'relation'=37

diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelationLexer.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelationLexer.java
index dbe74b9..6500226 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelationLexer.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelationLexer.java
@@ -12,96 +12,96 @@
 
 @SuppressWarnings("all")
 public class InternalQVTrelationLexer extends Lexer {
-    public static final int T__42=42;
-    public static final int T__47=47;
-    public static final int T__73=73;
-    public static final int T__21=21;
-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
-    public static final int T__72=72;
-    public static final int T__70=70;
-    public static final int T__39=39;
-    public static final int T__30=30;
-    public static final int T__46=46;
-    public static final int T__49=49;
-    public static final int RULE_DOUBLE_QUOTED_STRING=10;
-    public static final int T__54=54;
-    public static final int T__48=48;
-    public static final int RULE_ESCAPED_CHARACTER=8;
-    public static final int T__89=89;
-    public static final int T__20=20;
-    public static final int T__79=79;
-    public static final int T__64=64;
-    public static final int T__44=44;
-    public static final int T__66=66;
-    public static final int T__92=92;
-    public static final int T__88=88;
-    public static final int T__22=22;
-    public static final int RULE_ESCAPED_ID=5;
-    public static final int T__90=90;
-    public static final int RULE_WS=14;
-    public static final int T__63=63;
-    public static final int T__91=91;
-    public static final int T__43=43;
-    public static final int T__40=40;
-    public static final int T__85=85;
+    public static final int T__29=29;
+    public static final int T__28=28;
+    public static final int T__27=27;
     public static final int T__26=26;
     public static final int T__25=25;
-    public static final int RULE_SL_COMMENT=13;
-    public static final int T__60=60;
-    public static final int T__41=41;
-    public static final int T__86=86;
-    public static final int T__28=28;
-    public static final int T__23=23;
-    public static final int T__57=57;
-    public static final int T__51=51;
-    public static final int T__80=80;
-    public static final int RULE_LETTER_CHARACTER=9;
-    public static final int T__69=69;
-    public static final int T__50=50;
-    public static final int T__19=19;
-    public static final int T__65=65;
-    public static final int T__67=67;
-    public static final int T__87=87;
-    public static final int T__74=74;
-    public static final int T__52=52;
-    public static final int T__68=68;
-    public static final int T__17=17;
-    public static final int T__62=62;
-    public static final int RULE_INT=6;
-    public static final int T__27=27;
+    public static final int RULE_ESCAPED_CHARACTER=8;
     public static final int T__24=24;
-    public static final int T__61=61;
-    public static final int RULE_SINGLE_QUOTED_STRING=7;
-    public static final int T__59=59;
-    public static final int T__34=34;
-    public static final int T__56=56;
-    public static final int RULE_ML_COMMENT=12;
-    public static final int T__35=35;
-    public static final int T__78=78;
-    public static final int T__36=36;
-    public static final int T__58=58;
-    public static final int RULE_SIMPLE_ID=4;
-    public static final int T__33=33;
-    public static final int T__77=77;
-    public static final int T__55=55;
-    public static final int T__45=45;
-    public static final int T__29=29;
-    public static final int T__84=84;
-    public static final int T__75=75;
-    public static final int T__31=31;
-    public static final int EOF=-1;
-    public static final int T__53=53;
-    public static final int T__32=32;
-    public static final int T__16=16;
-    public static final int T__38=38;
-    public static final int T__37=37;
-    public static final int T__76=76;
+    public static final int T__23=23;
+    public static final int T__22=22;
     public static final int RULE_ANY_OTHER=15;
-    public static final int T__82=82;
-    public static final int T__81=81;
-    public static final int T__83=83;
-    public static final int T__71=71;
+    public static final int T__21=21;
+    public static final int T__20=20;
+    public static final int RULE_ESCAPED_ID=5;
+    public static final int RULE_DOUBLE_QUOTED_STRING=10;
+    public static final int EOF=-1;
+    public static final int T__19=19;
+    public static final int T__91=91;
+    public static final int T__92=92;
+    public static final int T__16=16;
+    public static final int T__90=90;
     public static final int T__18=18;
+    public static final int T__17=17;
+    public static final int RULE_SIMPLE_ID=4;
+    public static final int T__80=80;
+    public static final int T__81=81;
+    public static final int T__82=82;
+    public static final int T__83=83;
+    public static final int RULE_SINGLE_QUOTED_STRING=7;
+    public static final int T__85=85;
+    public static final int T__84=84;
+    public static final int T__87=87;
+    public static final int T__86=86;
+    public static final int T__89=89;
+    public static final int T__88=88;
+    public static final int RULE_ML_COMMENT=12;
+    public static final int RULE_LETTER_CHARACTER=9;
+    public static final int T__71=71;
+    public static final int T__72=72;
+    public static final int T__70=70;
+    public static final int T__76=76;
+    public static final int T__75=75;
+    public static final int T__74=74;
+    public static final int T__73=73;
+    public static final int T__79=79;
+    public static final int T__78=78;
+    public static final int T__77=77;
+    public static final int T__68=68;
+    public static final int T__69=69;
+    public static final int T__66=66;
+    public static final int T__67=67;
+    public static final int T__64=64;
+    public static final int T__65=65;
+    public static final int T__62=62;
+    public static final int T__63=63;
+    public static final int T__61=61;
+    public static final int T__60=60;
+    public static final int T__55=55;
+    public static final int T__56=56;
+    public static final int T__57=57;
+    public static final int T__58=58;
+    public static final int T__51=51;
+    public static final int T__52=52;
+    public static final int T__53=53;
+    public static final int T__54=54;
+    public static final int T__59=59;
+    public static final int RULE_INT=6;
+    public static final int T__50=50;
+    public static final int T__42=42;
+    public static final int T__43=43;
+    public static final int T__40=40;
+    public static final int T__41=41;
+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;
+    public static final int T__46=46;
+    public static final int T__47=47;
+    public static final int T__44=44;
+    public static final int T__45=45;
+    public static final int T__48=48;
+    public static final int T__49=49;
+    public static final int RULE_SL_COMMENT=13;
+    public static final int T__30=30;
+    public static final int T__31=31;
+    public static final int T__32=32;
+    public static final int T__33=33;
+    public static final int T__34=34;
+    public static final int T__35=35;
+    public static final int T__36=36;
+    public static final int T__37=37;
+    public static final int T__38=38;
+    public static final int T__39=39;
+    public static final int RULE_WS=14;
 
     // delegates
     // delegators
@@ -2921,26 +2921,26 @@
 
     protected DFA11 dfa11 = new DFA11(this);
     static final String DFA11_eotS =
-        "\1\uffff\1\66\2\uffff\1\72\1\73\3\uffff\11\74\2\uffff\2\74\1\uffff"+
-        "\1\74\1\133\1\74\1\140\1\142\1\145\2\74\1\151\10\74\3\uffff\1\74"+
-        "\2\uffff\1\74\2\64\20\uffff\10\74\1\u008b\1\u008c\5\74\2\uffff\4"+
-        "\74\1\u0098\1\uffff\1\74\3\uffff\2\74\10\uffff\2\74\2\uffff\13\74"+
-        "\3\uffff\1\74\2\uffff\1\74\4\uffff\13\74\2\uffff\1\u00b8\1\74\1"+
-        "\u00ba\1\74\1\u00bc\1\74\1\u00be\4\74\1\uffff\1\74\1\u00c5\1\74"+
-        "\1\u00c7\1\u00c8\2\74\1\u00cb\3\74\1\u00cf\13\74\1\u00dd\7\74\1"+
-        "\uffff\1\74\1\uffff\1\74\1\uffff\1\74\1\uffff\1\74\1\u00ea\1\u00eb"+
-        "\1\74\1\u00ed\1\74\1\uffff\1\u00ef\2\uffff\2\74\1\uffff\1\74\1\u00f3"+
-        "\1\74\1\uffff\10\74\1\u00fd\2\74\1\u0100\1\74\1\uffff\12\74\1\u010c"+
-        "\1\74\2\uffff\1\74\1\uffff\1\u010f\1\uffff\1\u0110\2\74\1\uffff"+
-        "\10\74\1\u011b\1\uffff\2\74\1\uffff\3\74\1\u0121\3\74\1\u0125\3"+
-        "\74\1\uffff\2\74\2\uffff\2\74\1\u012d\2\74\1\u0130\4\74\1\uffff"+
-        "\1\74\1\u0136\1\u0137\1\u0138\1\74\1\uffff\2\74\1\u013c\1\uffff"+
-        "\1\u013d\1\u013e\3\74\1\u0142\1\u0143\1\uffff\2\74\1\uffff\1\74"+
-        "\1\u0147\3\74\3\uffff\1\u014b\2\74\3\uffff\3\74\2\uffff\1\u0151"+
-        "\2\74\1\uffff\2\74\1\u0156\1\uffff\2\74\1\u0159\1\74\1\u015b\1\uffff"+
-        "\4\74\1\uffff\2\74\1\uffff\1\74\1\uffff\1\74\1\u0164\1\u0165\1\u0166"+
-        "\4\74\3\uffff\5\74\1\u0170\2\74\1\u0173\1\uffff\1\u0174\1\74\2\uffff"+
-        "\1\74\1\u0177\1\uffff";
+        "\1\uffff\1\66\2\uffff\1\72\1\73\3\uffff\11\75\2\uffff\2\75\1\uffff"+
+        "\1\75\1\133\1\75\1\140\1\142\1\145\2\75\1\151\10\75\3\uffff\1\75"+
+        "\2\uffff\1\75\2\64\20\uffff\10\75\1\u008b\1\u008c\5\75\2\uffff\4"+
+        "\75\1\u0098\1\uffff\1\75\3\uffff\2\75\10\uffff\2\75\2\uffff\13\75"+
+        "\3\uffff\1\75\2\uffff\1\75\4\uffff\13\75\2\uffff\1\u00b8\1\75\1"+
+        "\u00ba\1\75\1\u00bc\1\75\1\u00be\4\75\1\uffff\1\75\1\u00c5\1\75"+
+        "\1\u00c7\1\u00c8\2\75\1\u00cb\3\75\1\u00cf\13\75\1\u00dd\7\75\1"+
+        "\uffff\1\75\1\uffff\1\75\1\uffff\1\75\1\uffff\1\75\1\u00ea\1\u00eb"+
+        "\1\75\1\u00ed\1\75\1\uffff\1\u00ef\2\uffff\2\75\1\uffff\1\75\1\u00f3"+
+        "\1\75\1\uffff\10\75\1\u00fd\2\75\1\u0100\1\75\1\uffff\12\75\1\u010c"+
+        "\1\75\2\uffff\1\75\1\uffff\1\u010f\1\uffff\1\u0110\2\75\1\uffff"+
+        "\10\75\1\u011b\1\uffff\2\75\1\uffff\3\75\1\u0121\3\75\1\u0125\3"+
+        "\75\1\uffff\2\75\2\uffff\2\75\1\u012d\2\75\1\u0130\4\75\1\uffff"+
+        "\1\75\1\u0136\1\u0137\1\u0138\1\75\1\uffff\2\75\1\u013c\1\uffff"+
+        "\1\u013d\1\u013e\3\75\1\u0142\1\u0143\1\uffff\2\75\1\uffff\1\75"+
+        "\1\u0147\3\75\3\uffff\1\u014b\2\75\3\uffff\3\75\2\uffff\1\u0151"+
+        "\2\75\1\uffff\2\75\1\u0156\1\uffff\2\75\1\u0159\1\75\1\u015b\1\uffff"+
+        "\4\75\1\uffff\2\75\1\uffff\1\75\1\uffff\1\75\1\u0164\1\u0165\1\u0166"+
+        "\4\75\3\uffff\5\75\1\u0170\2\75\1\u0173\1\uffff\1\u0174\1\75\2\uffff"+
+        "\1\75\1\u0177\1\uffff";
     static final String DFA11_eofS =
         "\u0178\uffff";
     static final String DFA11_minS =
@@ -3007,7 +3007,7 @@
     static final String DFA11_acceptS =
         "\2\uffff\1\2\1\3\2\uffff\1\6\1\7\1\10\11\uffff\1\23\1\24\2\uffff"+
         "\1\34\21\uffff\1\75\1\76\1\77\1\uffff\1\104\1\106\3\uffff\1\121"+
-        "\1\123\1\126\1\127\1\33\1\1\1\2\1\3\1\4\1\42\1\5\1\121\1\122\1\6"+
+        "\1\123\1\126\1\127\1\33\1\1\1\2\1\3\1\4\1\42\1\5\1\122\1\121\1\6"+
         "\1\7\1\10\17\uffff\1\23\1\24\5\uffff\1\34\1\uffff\1\55\1\125\1\37"+
         "\2\uffff\1\120\1\124\1\41\1\45\1\43\1\46\1\47\1\44\2\uffff\1\74"+
         "\1\54\13\uffff\1\75\1\76\1\77\1\uffff\1\104\1\106\1\uffff\1\116"+
@@ -3021,7 +3021,7 @@
         "\1\26\5\uffff\1\71\4\uffff\1\11\2\uffff\1\21\1\uffff\1\27\10\uffff"+
         "\1\65\1\73\1\72\11\uffff\1\15\2\uffff\1\16\1\30\2\uffff\1\63";
     static final String DFA11_specialS =
-        "\1\2\56\uffff\1\0\1\1\u0147\uffff}>";
+        "\1\1\56\uffff\1\0\1\2\u0147\uffff}>";
     static final String[] DFA11_transitionS = {
             "\11\64\2\63\2\64\1\63\22\64\1\63\1\64\1\57\4\64\1\60\1\22\1"+
             "\23\1\26\1\4\1\3\1\30\1\37\1\32\12\62\1\1\1\10\1\34\1\7\1\33"+
@@ -3034,8 +3034,8 @@
             "",
             "",
             "\1\71",
-            "\1\75\10\uffff\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32"+
-            "\74",
+            "\1\74\10\uffff\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32"+
+            "\75",
             "",
             "",
             "",
@@ -3103,9 +3103,9 @@
             "\1\u0087",
             "\1\u0088",
             "\1\u0089",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\25\74\1\u008a\4"+
-            "\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\25\75\1\u008a\4"+
+            "\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u008d",
             "\1\u008e",
             "\1\u008f",
@@ -3117,7 +3117,7 @@
             "\1\u0094\23\uffff\1\u0095",
             "\1\u0096",
             "\1\u0097",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
             "\1\u0099",
             "",
@@ -3172,30 +3172,30 @@
             "\1\u00b7",
             "",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00b9",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00bb",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00bd",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00bf",
             "\1\u00c0",
             "\1\u00c1",
             "\1\u00c2",
             "",
             "\1\u00c3\3\uffff\1\u00c4",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00c6",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00c9",
             "\1\u00ca",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00cc",
             "\1\u00cd",
             "\1\u00ce",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00d0",
             "\1\u00d1",
             "\1\u00d2\7\uffff\1\u00d3\14\uffff\1\u00d4",
@@ -3207,7 +3207,7 @@
             "\1\u00da",
             "\1\u00db",
             "\1\u00dc",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00de",
             "\1\u00df",
             "\1\u00e0",
@@ -3223,20 +3223,20 @@
             "\1\u00e8",
             "",
             "\1\u00e9",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00ec",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00ee",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
             "",
             "\1\u00f0",
             "\1\u00f1",
             "",
             "\1\u00f2",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00f4",
             "",
             "\1\u00f5",
@@ -3247,10 +3247,10 @@
             "\1\u00fa",
             "\1\u00fb",
             "\1\u00fc",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u00fe",
             "\1\u00ff",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u0101",
             "",
             "\1\u0102",
@@ -3263,15 +3263,15 @@
             "\1\u0109",
             "\1\u010a",
             "\1\u010b",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u010d",
             "",
             "",
             "\1\u010e",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u0111",
             "\1\u0112",
             "",
@@ -3283,7 +3283,7 @@
             "\1\u0118",
             "\1\u0119",
             "\1\u011a",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
             "\1\u011c",
             "\1\u011d",
@@ -3291,11 +3291,11 @@
             "\1\u011e",
             "\1\u011f",
             "\1\u0120",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u0122",
             "\1\u0123",
             "\1\u0124",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u0126",
             "\1\u0127",
             "\1\u0128",
@@ -3306,45 +3306,45 @@
             "",
             "\1\u012b",
             "\1\u012c",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u012e",
             "\1\u012f",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u0131",
             "\1\u0132",
             "\1\u0133",
             "\1\u0134",
             "",
             "\1\u0135",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u0139",
             "",
             "\1\u013a",
             "\1\u013b",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u013f",
             "\1\u0140",
             "\1\u0141",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
             "\1\u0144",
             "\1\u0145",
             "",
             "\1\u0146",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u0148",
             "\1\u0149",
             "\1\u014a",
             "",
             "",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u014c",
             "\1\u014d",
             "",
@@ -3355,19 +3355,19 @@
             "\1\u0150",
             "",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u0152",
             "\1\u0153",
             "",
             "\1\u0154",
             "\1\u0155",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
             "\1\u0157",
             "\1\u0158",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u015a",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
             "\1\u015c",
             "\1\u015d",
@@ -3380,9 +3380,9 @@
             "\1\u0162",
             "",
             "\1\u0163",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u0167",
             "\1\u0168",
             "\1\u0169",
@@ -3395,17 +3395,17 @@
             "\1\u016d",
             "\1\u016e",
             "\1\u016f",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u0171",
             "\1\u0172",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             "\1\u0175",
             "",
             "",
             "\1\u0176",
-            "\12\74\7\uffff\32\74\4\uffff\1\74\1\uffff\32\74",
+            "\12\75\7\uffff\32\75\4\uffff\1\75\1\uffff\32\75",
             ""
     };
 
@@ -3456,16 +3456,6 @@
                         if ( s>=0 ) return s;
                         break;
                     case 1 : 
-                        int LA11_48 = input.LA(1);
-
-                        s = -1;
-                        if ( ((LA11_48>='\u0000' && LA11_48<='\uFFFF')) ) {s = 125;}
-
-                        else s = 52;
-
-                        if ( s>=0 ) return s;
-                        break;
-                    case 2 : 
                         int LA11_0 = input.LA(1);
 
                         s = -1;
@@ -3575,6 +3565,16 @@
 
                         if ( s>=0 ) return s;
                         break;
+                    case 2 : 
+                        int LA11_48 = input.LA(1);
+
+                        s = -1;
+                        if ( ((LA11_48>='\u0000' && LA11_48<='\uFFFF')) ) {s = 125;}
+
+                        else s = 52;
+
+                        if ( s>=0 ) return s;
+                        break;
             }
             NoViableAltException nvae =
                 new NoViableAltException(getDescription(), 11, _s, input);
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelationParser.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelationParser.java
index aeb3bad..b9c26f3 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelationParser.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src-gen/org/eclipse/qvtd/xtext/qvtrelation/parser/antlr/internal/InternalQVTrelationParser.java
@@ -24,96 +24,96 @@
     public static final String[] tokenNames = new String[] {

         "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_SIMPLE_ID", "RULE_ESCAPED_ID", "RULE_INT", "RULE_SINGLE_QUOTED_STRING", "RULE_ESCAPED_CHARACTER", "RULE_LETTER_CHARACTER", "RULE_DOUBLE_QUOTED_STRING", "RULE_ML_SINGLE_QUOTED_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "':'", "'{'", "','", "'++'", "'_'", "'}'", "'='", "';'", "'checkonly'", "'enforce'", "'replace'", "'domain'", "'implementedby'", "'default_values'", "'key'", "'library'", "'primitive'", "'query'", "'('", "')'", "'top'", "'relation'", "'overrides'", "'transformation'", "'extends'", "'import'", "'::'", "'*'", "'when'", "'where'", "'-'", "'not'", "'/'", "'+'", "'>'", "'<'", "'>='", "'<='", "'<>'", "'and'", "'or'", "'xor'", "'implies'", "'.'", "'->'", "'Tuple'", "'Boolean'", "'Integer'", "'Real'", "'String'", "'UnlimitedNatural'", "'OclAny'", "'OclInvalid'", "'OclVoid'", "'Set'", "'Bag'", "'Sequence'", "'Collection'", "'OrderedSet'", "'..'", "'['", "']'", "'?'", "'true'", "'false'", "'invalid'", "'null'", "'@'", "'pre'", "'|'", "'if'", "'then'", "'else'", "'endif'", "'let'", "'in'", "'self'"

     };

-    public static final int T__42=42;

-    public static final int T__47=47;

-    public static final int T__73=73;

-    public static final int T__21=21;

-    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

-    public static final int T__72=72;

-    public static final int T__70=70;

-    public static final int T__39=39;

-    public static final int T__30=30;

-    public static final int T__46=46;

-    public static final int T__49=49;

-    public static final int RULE_DOUBLE_QUOTED_STRING=10;

-    public static final int T__54=54;

-    public static final int T__48=48;

-    public static final int RULE_ESCAPED_CHARACTER=8;

-    public static final int T__89=89;

-    public static final int T__20=20;

-    public static final int T__79=79;

-    public static final int T__64=64;

-    public static final int T__44=44;

-    public static final int T__66=66;

-    public static final int T__92=92;

-    public static final int T__88=88;

-    public static final int T__22=22;

-    public static final int RULE_ESCAPED_ID=5;

-    public static final int T__90=90;

-    public static final int T__63=63;

-    public static final int RULE_WS=14;

-    public static final int T__43=43;

-    public static final int T__91=91;

-    public static final int T__40=40;

-    public static final int T__85=85;

+    public static final int T__29=29;

+    public static final int T__28=28;

+    public static final int T__27=27;

     public static final int T__26=26;

     public static final int T__25=25;

-    public static final int RULE_SL_COMMENT=13;

-    public static final int T__60=60;

-    public static final int T__41=41;

-    public static final int T__86=86;

-    public static final int T__28=28;

-    public static final int T__23=23;

-    public static final int T__57=57;

-    public static final int T__51=51;

-    public static final int T__80=80;

-    public static final int RULE_LETTER_CHARACTER=9;

-    public static final int T__69=69;

-    public static final int T__50=50;

-    public static final int T__19=19;

-    public static final int T__65=65;

-    public static final int T__67=67;

-    public static final int T__87=87;

-    public static final int T__74=74;

-    public static final int T__52=52;

-    public static final int T__68=68;

-    public static final int T__17=17;

-    public static final int T__62=62;

-    public static final int RULE_INT=6;

-    public static final int T__27=27;

+    public static final int RULE_ESCAPED_CHARACTER=8;

     public static final int T__24=24;

-    public static final int T__61=61;

-    public static final int RULE_SINGLE_QUOTED_STRING=7;

-    public static final int T__59=59;

-    public static final int T__34=34;

-    public static final int T__56=56;

-    public static final int RULE_ML_COMMENT=12;

-    public static final int T__35=35;

-    public static final int T__78=78;

-    public static final int T__36=36;

-    public static final int T__58=58;

-    public static final int RULE_SIMPLE_ID=4;

-    public static final int T__33=33;

-    public static final int T__77=77;

-    public static final int T__55=55;

-    public static final int T__45=45;

-    public static final int T__29=29;

-    public static final int T__84=84;

-    public static final int T__75=75;

-    public static final int T__31=31;

-    public static final int EOF=-1;

-    public static final int T__53=53;

-    public static final int T__32=32;

-    public static final int T__16=16;

-    public static final int T__38=38;

-    public static final int T__37=37;

-    public static final int T__76=76;

+    public static final int T__23=23;

+    public static final int T__22=22;

     public static final int RULE_ANY_OTHER=15;

-    public static final int T__82=82;

-    public static final int T__81=81;

-    public static final int T__83=83;

+    public static final int T__21=21;

+    public static final int T__20=20;

+    public static final int RULE_ESCAPED_ID=5;

+    public static final int RULE_DOUBLE_QUOTED_STRING=10;

+    public static final int EOF=-1;

+    public static final int T__19=19;

+    public static final int T__91=91;

+    public static final int T__92=92;

+    public static final int T__16=16;

+    public static final int T__90=90;

     public static final int T__18=18;

+    public static final int T__17=17;

+    public static final int RULE_SIMPLE_ID=4;

+    public static final int T__80=80;

+    public static final int T__81=81;

+    public static final int T__82=82;

+    public static final int T__83=83;

+    public static final int RULE_SINGLE_QUOTED_STRING=7;

+    public static final int T__85=85;

+    public static final int T__84=84;

+    public static final int T__87=87;

+    public static final int T__86=86;

+    public static final int T__89=89;

+    public static final int T__88=88;

+    public static final int RULE_LETTER_CHARACTER=9;

+    public static final int RULE_ML_COMMENT=12;

     public static final int T__71=71;

+    public static final int T__72=72;

+    public static final int T__70=70;

+    public static final int T__76=76;

+    public static final int T__75=75;

+    public static final int T__74=74;

+    public static final int T__73=73;

+    public static final int T__79=79;

+    public static final int T__78=78;

+    public static final int T__77=77;

+    public static final int T__68=68;

+    public static final int T__69=69;

+    public static final int T__66=66;

+    public static final int T__67=67;

+    public static final int T__64=64;

+    public static final int T__65=65;

+    public static final int T__62=62;

+    public static final int T__63=63;

+    public static final int T__61=61;

+    public static final int T__60=60;

+    public static final int T__55=55;

+    public static final int T__56=56;

+    public static final int T__57=57;

+    public static final int T__58=58;

+    public static final int T__51=51;

+    public static final int T__52=52;

+    public static final int T__53=53;

+    public static final int T__54=54;

+    public static final int T__59=59;

+    public static final int RULE_INT=6;

+    public static final int T__50=50;

+    public static final int T__42=42;

+    public static final int T__43=43;

+    public static final int T__40=40;

+    public static final int T__41=41;

+    public static final int RULE_ML_SINGLE_QUOTED_STRING=11;

+    public static final int T__46=46;

+    public static final int T__47=47;

+    public static final int T__44=44;

+    public static final int T__45=45;

+    public static final int T__48=48;

+    public static final int T__49=49;

+    public static final int RULE_SL_COMMENT=13;

+    public static final int T__30=30;

+    public static final int T__31=31;

+    public static final int T__32=32;

+    public static final int T__33=33;

+    public static final int T__34=34;

+    public static final int T__35=35;

+    public static final int T__36=36;

+    public static final int T__37=37;

+    public static final int T__38=38;

+    public static final int T__39=39;

+    public static final int RULE_WS=14;

 

     // delegates

     // delegators